(compilation-warning): Inherit from font-lock-variable-name-face.
(compilation-info): Inherit from font-lock-type-face.
(compilation-line-number): Reassign to font-lock-keyword-face.
(compilation-column-number): Reassign to font-lock-doc-face.
(compilation-leave-directory-face): Reassign to font-lock-builtin-face.
New function, extracted from compilation--remove-properties.
(compilation--remove-properties, compilation--parse-region): Use it.
(compilation--previous-directory): Handle one more case.
(compilation-enable-debug-messages): Remove.
(compilation-parse-errors, compilation--flush-parse): Just remove the
left over debug messages.
Add a variable to make the parsing messages introduced in
2011-01-28T22:12:05Z!monnier@iro.umontreal.ca optional.
(compilation-parse-errors, compilation--flush-parse): Use it.
(compilation--previous-directory): New fun.
(compilation--previous-directory-cache): New var.
(compilation--remove-properties): Flush it.
(compilation-directory-properties, compilation-error-properties):
Use the new fun to speed up looking for the current directory.
(compilation-error-regexp-alist-alist): Change handling of makepp
so it preserves the warning/error distinction on subsequent files.
Simplify various rules.
(compilation-directory-properties): Use font-lock-face.
Add a compilation-message property.
(compilation-internal-error-properties): Use font-lock-face.
Don't set the compilation-debug property here.
(compilation--put-prop, compilation--remove-properties)
(compilation--parse-region, compilation--ensure-parse)
(compilation--ensure-parse): New functions.
(compilation-parse-errors): New function, largely inspired of
compilation-mode-font-lock-keywords. Set compilation-debug here.
(compilation--parsed): New var.
(compilation--flush-parse): Use compilation--ensure-parse.
(compilation-start): Don't call font-lock.
(compilation-turn-on-font-lock): Remove.
(compilation-setup): Don't set font-lock-extra-managed-props not change
other font-lock settings, other than keywords.
Don't activate font-lock-mode.
Set change-major-mode-hook and before-change-functions.
(compilation--unsetup): Remove properties and hooks.
(compilation-next-single-property-change): New function.
(compilation-next-error): Use it to parse when needed.
(compile-goto-error): Parse buffer as needed.
(compilation--compat-error-properties): Don't need a dummy `face'
property any more.
(compilation-process-setup-function): Fix docstring's false promises.
(compilation-error-regexp-alist-alist): Catch omake's continuous
recompilation message and avoid reuse of old markers.
(compilation-parse-errors-function): Declare obsolete.
(compilation-buffer-modtime): Remove.
(compilation--make-cdrloc, compilation--loc->col)
(compilation--loc->line, compilation--loc->file-struct)
(compilation--loc->marker, compilation--loc->visited)
(compilation--make-file-struct, compilation--file-struct->file-spec)
(compilation--file-struct->formats)
(compilation--file-struct->loc-tree): New macros. Use them.
(compilation--message): New defstruct. Use them.
(compilation-next-error-function): Don't mess with timestamps to try
and guess when to reparse.
* lisp/progmodes/compile.el: Cleanup text-properties namespace by using
`compilation-message' instead of `message', `compilation-directory'
instead of `directory', and `compilation-debug' instead of `debug'.
(compilation-last-buffer, compilation-parsing-end)
(compilation-error-list, compilation-old-error-list): Move to the
compatibility part of the code.
(compilation-error-properties): If `file' is a function, let it return
a file name.
(compilation-mode-font-lock-keywords): Be more conservative with the
omake "^ *" pattern prefix, to try and minimize the risk of
pathologically slow regexp matching.
(compilation-start): Use inhibit-read-only.
(compilation--unsetup): New function.
(compilation-shell-minor-mode, compilation-minor-mode): Use it.
(compilation-filter): Minor tweaks.
(compilation-next-error-function): Try and avoid abusing variable names.
(compilation--flush-file-structure): New fun.
(compilation-fake-loc): Use it for cleaner behavior when file is reused.
(debug-ignored-errors): Add "Moved past last ...".
(compilation--compat-error-properties)
(compilation--compat-parse-errors): Rename by doubling the "-".
* lisp/progmodes/grep.el (grep-regexp-alist): Tighten regexp.
(grep-mode-font-lock-keywords): Remove regexp that seems like
a left-over from before we used compile.el.
(grep-mode-font-lock-keywords): Call syntax-ppss-flush-cache when
modifying the buffer within with-silent-modifications.
* tool-bar.el (tool-bar-setup): Remove Help button. Remove label
from Search and add a label to Undo.
* vc/vc-dir.el (vc-dir-tool-bar-map): Rearrange, removing
inappropriate buttons and adding :vert-only tags.
* progmodes/compile.el (compilation-mode-tool-bar-map): Adjust to
removal of Help tool-bar button. Remove Undo button for space.
* info.el (info-tool-bar-map): Add :vert-only tags.
* etc/compilation.txt: Add column to gcc-include sample.
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist)
[gcc-include]: Tighten file name match, add match for column
number.
Not a const.
(compilation-error-regexp-alist-alist): Rule out ": " in file names
for the `gnu' messages.
(compilation-set-skip-threshold): New command.
(compilation-start): Use \' rather than $.
(compilation-forget-errors): Use clrhash.
* progmodes/compile.el (compilation-error-regexp-alist-alist):
Remove ruby regexp; handle Ruby errors with gcc-include and gnu.
Recognize leading tab in gcc-include regexp. Ignore names with
leading "from" or "in" in gnu regexp (Bug#6937).
* progmodes/compile.el (compilation-error-regexp-alist-alist):
Give the Ruby rule a lower priority than Gnu (Bug#6778).
* etc/compilation.txt: Make Cucumber test less verbose.
modifications, not on file modifications.
(buffer-modtime): New buffer-local variable:
the buffer modification time, for buffers not associated with files.
(compilation-mode): Create it.
(compilation-filter): Update it.
(compilation-next-error-function): Use it instead of
`visited-file-modtime' for timestamp.