[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation error regexp alist doesn't match my compiler anymor

From: Arjan Bos
Subject: Re: Compilation error regexp alist doesn't match my compiler anymor
Date: Wed, 26 May 2004 00:33:22 +0200
User-agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.6) Gecko/20040113

Michael Slass wrote:

,----[ C-h v compilation-error-regexp-alist RET ]
| compilation-error-regexp-alist's value is shown below.
| | Documentation:
| Alist that specifies how to match errors in compiler output.
| If REGEXP matches, the FILE-IDX'th subexpression gives the file name, and
| the LINE-IDX'th subexpression gives the line number.  If COLUMN-IDX is
| given, the COLUMN-IDX'th subexpression gives the column number on that line.
| If any FILE-FORMAT is given, each is a format string to produce a file name to
| try; %s in the string is replaced by the text matching the FILE-IDX'th
| subexpression.
| | Defined in `compile'. | | Value:
| <snip>

I don't know how much that has changed in the cvs version of emacs,
but the explanation below should let you adapt.

I know that it should be sufficient, but I never put enough effort in learning lists in lisp. But it has changed a lot since my previous snapshot (last march).

So, you're pretty close: you've got a regex which captures your
filename (and, incorrectly, the trailing colon) into subexp 1, and the
line number in subexp 2.  You want to add an element to
compilation-error-regexp-alist that includes your regex, the capture
index of the filename, and the capture index of the line number, in
that order:
( "^\\(.*\\.nrx\\):[ \\t]*\\([0-9]+\\)" 1 2)
  --- note the colon moved outside the capture parens
Hmm, should have noticed that meself.

Then you want to add the little list above to the place where
compile-mode will find it, compilation-error-regexp-alist.  You do
that with a function called add-to-list
Try this:

 '("^\\(.*\\.nrx\\):[ \\t]*\\([0-9]+\\)" 1 2))

Make sense?
Yes, thanks a lot, the add-to-list form was missing from my lisp vocabulary.
It does indeed work now.

However, its new value is now (("^\\(.*\\.nrx\\):[ \\t]*\\([0-9]+\\)" 1 2) absoft ada aix ant bash borland caml comma edg-1 edg-2 epc ...)

Where the names somehow point to entries in compilation-error-regexp-alist-alist. So I got lost in thinking that I should add a name in compilation-error-regexp-alist and the regexp in compilation-error-regexp-alist-alist.

Let's hope this current solution is future proof.
If you really want to contact me, then replace the "I see you" text by its three letter accronym, ICU.

Fabricate Diem PVNC, Motto of the Night Watch -- Terry Pratchett

reply via email to

[Prev in Thread] Current Thread [Next in Thread]