Next: Highlighting erroneous lines, Previous: Starting the syntax check process, Up: Flymake Implementation [Contents][Index]
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.