Doc fixes.
(compilation-error-regexp-alist-alist) (compilation-mode-font-lock-keywords): Allow non-ASCII where possible. (compilation-assq): Wrap in eval-when-compile. (compilation-mode-font-lock-keywords): Don't use list*. (compilation-start): Avoid warning. (compilation-compat-error-properties) (compilation-directory-properties): Add keymap property. (compilation-parsing-end): Make it a marker for better compatibility.
This commit is contained in:
parent
eb6fb6e2d5
commit
6f5b76274c
1 changed files with 41 additions and 33 deletions
|
@ -100,7 +100,7 @@ in the compilation output, and should return a transformed file name.")
|
|||
;;;###autoload
|
||||
(defvar compilation-process-setup-function nil
|
||||
"*Function to call to customize the compilation process.
|
||||
This functions is called immediately before the compilation process is
|
||||
This function is called immediately before the compilation process is
|
||||
started. It can be used to set any variables or functions that are used
|
||||
while processing the output of the compilation process. The function
|
||||
is called with variables `compilation-buffer' and `compilation-window'
|
||||
|
@ -187,8 +187,9 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
"^\\([^( \n\t]+\\)(\\([0-9]+\\):\\([0-9]+\\)) :\
|
||||
\\(?:warnin\\(g\\)\\|informationa\\(l\\)\\)?" 1 2 3 (4 . 5))
|
||||
|
||||
;; fixme: should be `mips'
|
||||
(irix
|
||||
"^[a-z0-9/]+: \\(?:[eE]rror\\|[wW]arnin\\(g\\)\\|[iI]nf\\(o\\)\\)[0-9 ]*:\
|
||||
"^[-[:alnum:]_/]+: \\(?:[eE]rror\\|[wW]arnin\\(g\\)\\|[iI]nf\\(o\\)\\)[0-9 ]*:\
|
||||
\\([^,\" \n\t]+\\)\\(?:, line\\|:\\) \\([0-9]+\\):" 3 4 nil (1 . 2))
|
||||
|
||||
(java
|
||||
|
@ -206,7 +207,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
\\(.+\\):\\([0-9]+\\)\\(?:\\(:\\)\\|\\(,\\)\\)?" 1 2 nil (3 . 4))
|
||||
|
||||
(gnu
|
||||
"^\\(?:[a-zA-Z][-a-zA-Z0-9.]+: ?\\)?\
|
||||
"^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\)?\
|
||||
\\([/.]*[a-zA-Z]:?[^ \t\n:]*\\): ?\
|
||||
\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\
|
||||
\\(?:-\\(?:\\([0-9]+\\)\\3\\)?\\.?\\([0-9]+\\)?\\)?:\
|
||||
|
@ -228,6 +229,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
(1 (compilation-error-properties 2 3 nil nil nil 0 nil)
|
||||
append)))
|
||||
|
||||
;; Should be lint-1, lint-2 (SysV lint)
|
||||
(mips-1
|
||||
" (\\([0-9]+\\)) in \\([^ \n]+\\)" 2 1)
|
||||
(mips-2
|
||||
|
@ -261,15 +263,16 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
nil 1 nil (3) nil (2 (compilation-face '(3))))
|
||||
|
||||
(sun
|
||||
": \\(?:ERROR\\|WARNIN\\(G\\)\\|REMAR\\(K\\)\\) \\(?:[a-zA-Z0-9 ]+, \\)?\
|
||||
": \\(?:ERROR\\|WARNIN\\(G\\)\\|REMAR\\(K\\)\\) \\(?:[[:alnum:] ]+, \\)?\
|
||||
File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
|
||||
3 4 5 (1 . 2))
|
||||
|
||||
(sun-ada
|
||||
"^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3)
|
||||
|
||||
(ultrix
|
||||
"^\\(?:cfe\\|fort\\): \\(Warning\\)?[^:\n]*: \\([^ \n]*\\), line \\([0-9]+\\):" 2 3 nil (1))
|
||||
;; Redundant with `mips'
|
||||
;; (ultrix
|
||||
;; "^\\(?:cfe\\|fort\\): \\(Warning\\)?[^:\n]*: \\([^ \n]*\\), line \\([0-9]+\\):" 2 3 nil (1))
|
||||
|
||||
(4bsd
|
||||
"\\(?:^\\|:: \\|\\S ( \\)\\(/[^ \n\t()]+\\)(\\([0-9]+\\))\
|
||||
|
@ -279,14 +282,14 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?"
|
|||
(defcustom compilation-error-regexp-alist
|
||||
(mapcar 'car compilation-error-regexp-alist-alist)
|
||||
"Alist that specifies how to match errors in compiler output.
|
||||
Note that on Unix exerything is a valid filename, so these
|
||||
Note that on Unix everything is a valid filename, so these
|
||||
matchers must make some common sense assumptions, which catch
|
||||
normal cases. A shorter list will be lighter on resource usage.
|
||||
|
||||
Instead of an alist element, you can use a symbol, which is
|
||||
looked up in `compilation-error-regexp-alist-alist'. You can see
|
||||
the predefined symbols and their effects in the file
|
||||
`etc/compilation.txt' (linked below if your are customizing this).
|
||||
`etc/compilation.txt' (linked below if you are customizing this).
|
||||
|
||||
Each elt has the form (REGEXP FILE [LINE COLUMN TYPE HYPERLINK
|
||||
HIGHLIGHT...]). If REGEXP matches, the FILE'th subexpression
|
||||
|
@ -357,7 +360,7 @@ you may also want to change `compilation-page-delimiter'.")
|
|||
(1 font-lock-variable-name-face)
|
||||
(2 (compilation-face '(4 . 3))))
|
||||
;; Command output lines. Recognize `make[n]:' lines too.
|
||||
("^\\([A-Za-z_0-9/.+-]+\\)\\(\\[\\([0-9]+\\)\\]\\)?[ \t]*:"
|
||||
("^\\([[:alnum:]_/.+-]+\\)\\(\\[\\([0-9]+\\)\\]\\)?[ \t]*:"
|
||||
(1 font-lock-function-name-face) (3 compilation-line-face nil t))
|
||||
(" --?o\\(?:utfile\\|utput\\)?[= ]?\\(\\S +\\)" . 1)
|
||||
("^Compilation finished" . compilation-info-face)
|
||||
|
@ -427,7 +430,7 @@ You might also use mode hooks to specify it in certain modes, like this:
|
|||
(defvar compilation-locs ())
|
||||
|
||||
(defvar compilation-debug nil
|
||||
"*Set this to `t' before creating a *compilation* buffer.
|
||||
"*Set this to t before creating a *compilation* buffer.
|
||||
Then every error line will have a debug text property with the matcher that
|
||||
fit this line and the match data. Use `describe-text-properties'.")
|
||||
|
||||
|
@ -494,7 +497,7 @@ Faces `compilation-error-face', `compilation-warning-face',
|
|||
|
||||
|
||||
;; Used for compatibility with the old compile.el.
|
||||
(defvar compilation-parsing-end nil)
|
||||
(defvar compilation-parsing-end (make-marker))
|
||||
(defvar compilation-parse-errors-function nil)
|
||||
(defvar compilation-error-list nil)
|
||||
(defvar compilation-old-error-list nil)
|
||||
|
@ -518,6 +521,7 @@ Faces `compilation-error-face', `compilation-warning-face',
|
|||
'(nil)) ; nil only isn't a property-change
|
||||
(cons (match-string-no-properties idx) dir))
|
||||
mouse-face highlight
|
||||
keymap compilation-button-map
|
||||
help-echo "mouse-2: visit current directory")))
|
||||
|
||||
;; Data type `reverse-ordered-alist' retriever. This function retrieves the
|
||||
|
@ -528,6 +532,7 @@ Faces `compilation-error-face', `compilation-warning-face',
|
|||
;; may be nil. The other KEYs are ordered backwards so that growing line
|
||||
;; numbers can be inserted in front and searching can abort after half the
|
||||
;; list on average.
|
||||
(eval-when-compile ;Don't keep it at runtime if not needed.
|
||||
(defmacro compilation-assq (key alist)
|
||||
`(let* ((l1 ,alist)
|
||||
(l2 (cdr l1)))
|
||||
|
@ -538,7 +543,7 @@ Faces `compilation-error-face', `compilation-warning-face',
|
|||
l2 (cdr l1)))
|
||||
(if l2 (eq ,key (caar l2))))
|
||||
l2
|
||||
(setcdr l1 (cons (list ,key) l2))))))
|
||||
(setcdr l1 (cons (list ,key) l2)))))))
|
||||
|
||||
|
||||
;; This function is the central driver, called when font-locking to gather
|
||||
|
@ -691,9 +696,9 @@ Faces `compilation-error-face', `compilation-warning-face',
|
|||
;; error location. Let's do our best.
|
||||
`(,(car item)
|
||||
(0 (compilation-compat-error-properties
|
||||
(funcall ',line (list* (match-string ,file)
|
||||
default-directory
|
||||
',(nthcdr 4 item))
|
||||
(funcall ',line (cons (match-string ,file)
|
||||
(cons default-directory
|
||||
',(nthcdr 4 item)))
|
||||
,(if col `(match-string ,col)))))
|
||||
(,file compilation-error-face t))
|
||||
|
||||
|
@ -734,7 +739,7 @@ Faces `compilation-error-face', `compilation-warning-face',
|
|||
Runs COMMAND, a shell command, in a separate process asynchronously
|
||||
with output going to the buffer `*compilation*'.
|
||||
|
||||
If optional second arg COMINT is t the buffer will be in comint mode with
|
||||
If optional second arg COMINT is t the buffer will be in Comint mode with
|
||||
`compilation-shell-minor-mode'.
|
||||
|
||||
You can then use the command \\[next-error] to find the next error message
|
||||
|
@ -767,8 +772,8 @@ to a function that generates a unique name."
|
|||
;; run compile with the default command line
|
||||
(defun recompile ()
|
||||
"Re-compile the program including the current buffer.
|
||||
If this is run in a compilation-mode buffer, re-use the arguments from the
|
||||
original use. Otherwise, it recompiles using `compile-command'."
|
||||
If this is run in a Compilation mode buffer, re-use the arguments from the
|
||||
original use. Otherwise, recompile using `compile-command'."
|
||||
(interactive)
|
||||
(save-some-buffers (not compilation-ask-about-save) nil)
|
||||
(let ((default-directory (or compilation-directory default-directory)))
|
||||
|
@ -778,9 +783,9 @@ original use. Otherwise, it recompiles using `compile-command'."
|
|||
(defcustom compilation-scroll-output nil
|
||||
"*Non-nil to scroll the *compilation* buffer window as output appears.
|
||||
|
||||
Setting it causes the compilation-mode commands to put point at the
|
||||
Setting it causes the Compilation mode commands to put point at the
|
||||
end of their output window so that the end of the output is always
|
||||
visible rather than the begining."
|
||||
visible rather than the beginning."
|
||||
:type 'boolean
|
||||
:version "20.3"
|
||||
:group 'compilation)
|
||||
|
@ -827,11 +832,11 @@ Otherwise, construct a buffer name from MODE-NAME."
|
|||
The rest of the arguments are optional; for them, nil means use the default.
|
||||
|
||||
MODE is the major mode to set in the compilation buffer. Mode
|
||||
may also be `t' meaning `compilation-shell-minor-mode' under `comint-mode'.
|
||||
may also be t meaning use `compilation-shell-minor-mode' under `comint-mode'.
|
||||
NAME-FUNCTION is a function called to name the buffer.
|
||||
|
||||
If HIGHLIGHT-REGEXP is non-nil, `next-error' will temporarily highlight
|
||||
matching section of the visited source line; the default is to use the
|
||||
the matching section of the visited source line; the default is to use the
|
||||
global value of `compilation-highlight-regexp'.
|
||||
|
||||
Returns the compilation buffer created."
|
||||
|
@ -843,8 +848,8 @@ Returns the compilation buffer created."
|
|||
(process-environment
|
||||
(append
|
||||
compilation-environment
|
||||
(if (and (boundp 'system-uses-terminfo)
|
||||
system-uses-terminfo)
|
||||
(if (if (boundp 'system-uses-terminfo) ; `if' for compiler warning
|
||||
system-uses-terminfo)
|
||||
(list "TERM=dumb" "TERMCAP="
|
||||
(format "COLUMNS=%d" (window-width)))
|
||||
(list "TERM=emacs"
|
||||
|
@ -1141,7 +1146,9 @@ The global commands next/previous/first-error/goto-error use this.")
|
|||
(defconst compilation-turn-on-font-lock 'turn-on-font-lock)
|
||||
|
||||
(defun compilation-setup (&optional minor)
|
||||
"Prepare the buffer for the compilation parsing commands to work."
|
||||
"Prepare the buffer for the compilation parsing commands to work.
|
||||
Optional argument MINOR indicates this is called from
|
||||
`compilation-minor-mode'."
|
||||
(make-local-variable 'compilation-current-error)
|
||||
(make-local-variable 'compilation-error-screen-columns)
|
||||
(make-local-variable 'overlay-arrow-position)
|
||||
|
@ -1150,7 +1157,7 @@ The global commands next/previous/first-error/goto-error use this.")
|
|||
'(directory message help-echo mouse-face debug))
|
||||
(set (make-local-variable 'compilation-locs)
|
||||
(make-hash-table :test 'equal :weakness 'value))
|
||||
;; lazy-lock would never find the message unless it's scrolled to
|
||||
;; lazy-lock would never find the message unless it's scrolled to.
|
||||
;; jit-lock might fontify some things too late.
|
||||
(set (make-local-variable 'font-lock-support-mode) nil)
|
||||
(set (make-local-variable 'font-lock-maximum-size) nil)
|
||||
|
@ -1198,7 +1205,7 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'."
|
|||
(font-lock-fontify-buffer)))
|
||||
|
||||
(defun compilation-handle-exit (process-status exit-status msg)
|
||||
"Write msg in the current buffer and hack its mode-line-process."
|
||||
"Write MSG in the current buffer and hack its mode-line-process."
|
||||
(let ((buffer-read-only nil)
|
||||
(status (if compilation-exit-message-function
|
||||
(funcall compilation-exit-message-function
|
||||
|
@ -1343,7 +1350,7 @@ select the source buffer."
|
|||
(pop-to-buffer compilation-last-buffer))
|
||||
|
||||
(defun previous-error-no-select (n)
|
||||
"Move point to the previous error in the compilation buffer and highlight match.
|
||||
"Move point to previous error in compilation buffer and highlight match.
|
||||
Prefix arg N says how many error messages to move backwards (or
|
||||
forwards, if negative).
|
||||
Finds and highlights the source line like \\[previous-error], but does not
|
||||
|
@ -1537,7 +1544,7 @@ region and the first line of the next region."
|
|||
:version "21.4")
|
||||
|
||||
(defsubst compilation-set-window (w mk)
|
||||
;; Align the compilation output window W with marker MK near top.
|
||||
"Align the compilation output window W with marker MK near top."
|
||||
(set-window-start w (save-excursion
|
||||
(goto-char mk)
|
||||
(beginning-of-line (- 1 compilation-context-lines))
|
||||
|
@ -1545,8 +1552,8 @@ region and the first line of the next region."
|
|||
(set-window-point w mk))
|
||||
|
||||
(defun compilation-goto-locus (msg mk end-mk)
|
||||
"Jump to an error MESSAGE and SOURCE.
|
||||
All arguments are markers. If SOURCE-END is non nil, mark is set there."
|
||||
"Jump to an error corresponding to MSG at MK.
|
||||
All arguments are markers. If END-MK is non nil, mark is set there."
|
||||
(if (eq (window-buffer (selected-window))
|
||||
(marker-buffer msg))
|
||||
;; If the compilation buffer window is selected,
|
||||
|
@ -1654,7 +1661,7 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
|
|||
buffer)))
|
||||
|
||||
(defun compilation-normalize-filename (filename)
|
||||
"Convert a filename string found in an error message to make it usable."
|
||||
"Convert FILENAME string found in an error message to make it usable."
|
||||
|
||||
;; Check for a comint-file-name-prefix and prepend it if
|
||||
;; appropriate. (This is very useful for
|
||||
|
@ -1722,7 +1729,7 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
|
|||
(defun compile-buffer-substring (n) (if n (match-string n)))
|
||||
|
||||
(defun compilation-compat-error-properties (err)
|
||||
;; Map old-style ERROR to new-style MESSAGE.
|
||||
"Map old-style error ERR to new-style message."
|
||||
(let* ((dst (cdr err))
|
||||
(loc (cond ((markerp dst) (list nil nil nil dst))
|
||||
((consp dst)
|
||||
|
@ -1732,6 +1739,7 @@ Pop up the buffer containing MARKER and scroll to MARKER if we ask the user."
|
|||
`(face nil
|
||||
message ,(list loc 2)
|
||||
help-echo "mouse-2: visit the source location"
|
||||
keymap compilation-button-map
|
||||
mouse-face highlight)))
|
||||
|
||||
(defun compilation-compat-parse-errors (limit)
|
||||
|
|
Loading…
Add table
Reference in a new issue