Many thanks!
I am not a lisp or emacs guru -- how might one change the code so that it jumped to the error check buffer only when an error was found, and didn't jump to that buffer if the checked code was clean? | [reply] |
Hi,
on my system I can M-x cperl-check-syntax which opens a compilation buffer (with broken font-lock) in which I can then jump to the found error(s) directly.
Regards
Stefan
Regards... |
Stefan
|
you begin bashing the string with a +42 regexp of confusion
|
| [reply] [d/l] |
Sorry for all this lisp stuff, but when I
M-x cperl-check-syntax
I get
Cannot open load file: mode-compile
Again, apologies for being so emacs clueless.
Also, why, Stefan, is the method suggested by this thread not preferred? If the code to be checked involved extensive external modules, wouldn't the 'brute force' syntax check of this method better catch and display any problems using those external dependencies?
Thanks for the insight.
water | [reply] [d/l] [select] |
Hi,
to your first problem: mode-compile ships with XEmacs (which I use) but doesn't seem to be shipped with Gnu Emacs by default (at least not on my system and the (almost) latest download I have lying around. You can try http://www.tls.cena.fr/~boubaker/Emacs/ which seems to be the official download site, but I can't reach it right now.
Other than that there are old versions distributed in elisp-archives (search for mode-compile.el in your favorite search machine ;-) Or you may try the XEmacs version that may be on your system, already.
Once you downloaded it, follow the install instructions in that file. You may skip the byte-compiling which only improves speed, but you have to put the file in one of the directories that the variable load-path holds. Expand you load-path as you like:
(setq load-path
(append
(list
"~/elisp")
load-path))
As to your second question: Although I appreciate, like and do it myself I'd almost always prefer a well-tested and hopefully maintained piece of code from someone else to one quick written hack by myself. What would you do when the other code doesn't do what you want? Well, you'd done it already: get back to the Monastery and post a question. Whereas one could hope that the emacs and xemacs newsgroups and/or the cperl-mode and mode-compile maintainer might do a better job. But this is just my way of handling things. If the code works for you, go ahead and use it.
Ah, and just as a sidenote: you might try getting used to writing emacs-lisp-code. It's fun ;-)
One last: it's stefan k, not Stefan (but I admit that my sig is confusing here)
Regards... |
Stefan
|
you begin bashing the string with a +42 regexp of confusion
|
| [reply] [d/l] [select] |
| [reply] [d/l] [select] |
Let me (again) recommend flymake
http://flymake.sourceforge.net/
It perfoms "perl -cw" checking in the background when you are idle (not typing). Like a spell-checker it highlights your errors, so you can easily spot them (and are not forced to do explicit compiles).
The myperl-check-syntax function could be improved by changing the last if-expression to:
(when (not (equal (substring (buffer-string) -3 -1) "OK"))
(switch-to-buffer "perlsyn")
(compilation-mode)
(goto-char (point-min))))
This enables font-locking and the "hyperlink" feature of the error lines.
| [reply] |