flymake: Parsing the output
5.7 Parsing the output
======================
The output generated by the syntax check tool is parsed in the process
filter/sentinel using the error message patterns stored in the
‘flymake-err-line-patterns’ variable. This variable contains a list of
items of the form ‘(regexp file-idx line-idx err-text-idx)’, used to
determine whether a particular line is an error message and extract file
name, line number and error text, respectively. Error type
(error/warning) is also guessed by matching error text with the
’‘^[wW]arning’’ pattern. Anything that was not classified as a warning
is considered an error. Type is then used to sort error menu items,
which shows error messages first.
Flymake is also able to interpret error message patterns missing
err-text-idx information. This is done by merely taking the rest of the
matched line (‘(substring line (match-end 0))’) as error text. This
trick allows making use of a huge collection of error message line
patterns from ‘compile.el’. All these error patterns are appended to
the end of ‘flymake-err-line-patterns’.
The error information obtained is saved in a buffer local variable.
The buffer for which the process output belongs is determined from the
process-id->buffer mapping updated after every process launch/exit.