all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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/

  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.