Speed up 'maven' compilation error message regexp
Anchor the regexp at line-start to prevent quadratic behaviour when it doesn't match (bug#39595). It's unclear whether the type tag, like [ERROR], is always present; we keep it optional just in case. * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Rewrite 'maven' regexp, using rx for clarity. * etc/compilation.txt (maven): More examples. * test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data): No leading spaces; they seems to stem from a misunderstanding in bug#11517.
This commit is contained in:
parent
efc9d4fe3e
commit
96a269d045
3 changed files with 19 additions and 5 deletions
|
@ -341,6 +341,8 @@ makepp: bla bla `/foo/bar.c' and `/foo/bar.h'
|
|||
symbol: maven
|
||||
|
||||
FooBar.java:[111,53] no interface expected here
|
||||
[ERROR] /Users/cinsk/hello.java:[651,96] ';' expected
|
||||
[WARNING] /foo/bar/Test.java:[27,43] unchecked conversion
|
||||
|
||||
|
||||
* MIPS lint; looks good for SunPro lint also
|
||||
|
|
|
@ -268,12 +268,24 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
|
|||
(jikes-file
|
||||
"^\\(?:Found\\|Issued\\) .* compiling \"\\(.+\\)\":$" 1 nil nil 0)
|
||||
|
||||
|
||||
;; This used to be pathologically slow on long lines (Bug#3441),
|
||||
;; due to matching filenames via \\(.*?\\). This might be faster.
|
||||
(maven
|
||||
;; Maven is a popular free software build tool for Java.
|
||||
"\\(\\[WARNING\\] *\\)?\\([^ \n]\\(?:[^\n :]\\| [^-/\n]\\|:[^ \n]\\)*?\\):\\[\\([0-9]+\\),\\([0-9]+\\)\\] " 2 3 4 (1))
|
||||
,(rx bol
|
||||
;; It is unclear whether the initial [type] tag is always present.
|
||||
(? "["
|
||||
(or "ERROR" (group-n 1 "WARNING") (group-n 2 "INFO"))
|
||||
"] ")
|
||||
(group-n 3 ; File
|
||||
(not (any "\n ["))
|
||||
(* (or (not (any "\n :"))
|
||||
(: " " (not (any "\n/-")))
|
||||
(: ":" (not (any "\n ["))))))
|
||||
":["
|
||||
(group-n 4 (+ digit)) ; Line
|
||||
","
|
||||
(group-n 5 (+ digit)) ; Column
|
||||
"] ")
|
||||
3 4 5 (1 . 2))
|
||||
|
||||
(jikes-line
|
||||
"^ *\\([0-9]+\\)\\.[ \t]+.*\n +\\(<-*>\n\\*\\*\\* \\(?:Error\\|Warnin\\(g\\)\\)\\)"
|
||||
|
|
|
@ -242,7 +242,7 @@
|
|||
;; maven
|
||||
("FooBar.java:[111,53] no interface expected here"
|
||||
1 53 111 "FooBar.java" 2)
|
||||
(" [ERROR] /Users/cinsk/hello.java:[651,96] ';' expected"
|
||||
("[ERROR] /Users/cinsk/hello.java:[651,96] ';' expected"
|
||||
15 96 651 "/Users/cinsk/hello.java" 2) ;Bug#11517.
|
||||
("[WARNING] /foo/bar/Test.java:[27,43] unchecked conversion"
|
||||
11 43 27 "/foo/bar/Test.java" 1) ;Bug#20556
|
||||
|
|
Loading…
Add table
Reference in a new issue