From: Daniel Pfeiffer <occitan@esperanto.org>
Subject: help: adapting your library to new M-x compile
Date: Tue, 23 Dec 2003 15:54:35 +0100 [thread overview]
Message-ID: <20031223155435.3c9b50cd.occitan@esperanto.org> (raw)
In-Reply-To: <jwvu14soy2u.fsf-monnier+emacs/pretest@vor.iro.umontreal.ca>
My new compile v0.19
http://dapfy.bei.t-online.de/compile.el
is now nearing completion. RMS has been quite interested in the progress, so this should soon become the successor.
You have written code that uses compile and might be broken or affected by these changes. Since I don't know what your code does, or don't have the programs it calls, I need your help.
- compilation-error-regexp-alist has subtly changed. Most significantly the
regexps must now be anchored with ^ if they match the beginning of a line.
Else the leading .* can be dropped, making them simpler. It now offers
richer possibilities: detecting line/column-ranges and differentiating 3
levels of messages.
- compilation-file-regexp-alist is gone and is also handled by
compilation-error-regexp-alist
- compile-internal (which by name should never have been used) is deprecated.
It is replaced by compilation-start and, if needed, a derived compilation
mode. The new grep-mode is a good example of this.
- compilation-error-list is gone. All locating of errors is done with
compilation-next-error (which uses text-properties).
- There is no longer a parse function you can override. Parsing is now done
by font-lock. It already handles the custom cases I have identified.
An example of the result can be seen when visiting this in Emacs:
http://dapfy.bei.t-online.de/compilation.txt
You can adapt your mode yourself. Or send me a compiler-output it is to parse. This should include all possible formats of error, warning and diagnostic messages and explain what the format is (file name, column numbers, etc.) Also explain anything odd that is going on, which could not be handled by the old compile.
The things that need taking care of are:
- diff-mode.el:
A cleanup is included in my compile.el. The question is why this needs compilation-minor-mode at all, only to override its commands? Even though the concepts don't quite fit, it might be interesting to derive diff-mode from compilation-mode and let that do the parsing.
- diff.el:
This little library messes around in internal variables extensively. IMHO it should be merged into diff-mode, as it offers little extra.
- progmodes/ada-mode.el: ada-compile-goto-error
This apparently deals with multiple file-names to be found in one message. This is now handled by the default compile.
- progmodes/ada-xref.el:
Probably mostly works. Special setup may required a derived gnatfind-mode comparable to grep-mode.
- progmodes/grep.el
(not really a progmode!) A cleanup is included in my compile.el.
- progmodes/vhdl-mode.el: vhdl-compile-init, ...
Probably works, except for vhdl-compiler-alist, which should be improved.
- textmodes/makeinfo.el
Don't know what this is up to...
- textmodes/bibtex.el: bibtex-validate
Reparsing is no longer necessary, nor even possible.
- textmodes/tex-mode.el:
Parsing classical TeX output is impossible to get right. Make TeX use -file-line-error-style or -c-style-errors with normal compile. Making this work together with comint for interaction is under study, and will be handled by my library.
- vc.el: vc-buffer-context, vc-restore-buffer-context
This apparently reparses all compilation buffers pointing to a file reverted by vc? If so, that is no longer necessary: when a buffer gets reverted all markers to it go stale automatically. The code must only be removed.
This requires a fairly recent Emacs 21.3.50 (a few months old should be fine, except if you use M-x grep). Due to the Savannah problems, you can temporarily get it here:
cvs -d:ext:anoncvs@subversions.gnu.org:/cvs-latest/emacs ...
I will be gone for a week after XMas, but will otherwise gladly help you.
coralament / best Grötens / liebe Grüße / best regards / elkorajn salutojn
Daniel Pfeiffer
--
lerne / learn / apprends / läramå Esperanto:
http://lernu.net/
next prev parent reply other threads:[~2003-12-23 14:54 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20031125230305.62ef78ae.occitan@esperanto.org>
[not found] ` <jwvu14soy2u.fsf-monnier+emacs/pretest@vor.iro.umontreal.ca>
2003-12-23 12:01 ` help: Why is font-lock-add-keywords failing in comint??? Daniel Pfeiffer
2003-12-23 14:54 ` Daniel Pfeiffer [this message]
2003-12-25 5:01 ` help: adapting your library to new M-x compile Ian Zimmerman
2003-12-25 16:36 ` Kai Grossjohann
2003-12-25 23:25 ` Ian Zimmerman
2003-12-26 1:11 ` David Kastrup
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20031223155435.3c9b50cd.occitan@esperanto.org \
--to=occitan@esperanto.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.