branch: elpa/rust-mode
commit 2e671d96c816312bd1ffc4221d225a51c2be35cd
Author: Felix S. Klock II <[email protected]>
Commit: Felix S. Klock II <[email protected]>
revisions to emacs compilation regexp, more readable and robust.
---
rust-mode.el | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/rust-mode.el b/rust-mode.el
index efe9f51..af1c28b 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -229,15 +229,23 @@ The initializer is `DEFAULT-TAB-WIDTH'.")
;; regexp (which is broken on a few edge cases), add our own 'rust
;; compilation error regexp and use it instead.
(defvar rustc-compilation-regexps
- (let ((re (concat "^\\([^ \n]+\\):\\([0-9]+\\):\\([0-9]+\\): "
- "\\([0-9]+\\):\\([0-9]+\\) "
- "\\(?:[Ee]rror\\|\\([Ww]arning\\)\\):")))
- (cons re '(1 (2 . 4) (3 . 5) (6))))
+ (let ((file "\\([^ \n]+\\)")
+ (start-line "\\([0-9]+\\)")
+ (start-col "\\([0-9]+\\)")
+ (end-line "\\([0-9]+\\)")
+ (end-col "\\([0-9]+\\)")
+ (error-or-warning "\\(?:[Ee]rror\\|\\([Ww]arning\\)\\)"))
+ (let ((re (concat "^" file ":" start-line ":" start-col
+ ": " end-line ":" end-col
+ " \\(?:[Ee]rror\\|\\([Ww]arning\\)\\):")))
+ (cons re '(1 (2 . 4) (3 . 5) (6)))))
"Specifications for matching errors in rustc invocations.
See `compilation-error-regexp-alist for help on their format.")
-(add-to-list 'compilation-error-regexp-alist-alist
- (cons 'rustc rustc-compilation-regexps))
-(add-to-list 'compilation-error-regexp-alist 'rustc)
+(eval-after-load 'compile
+ '(progn
+ (add-to-list 'compilation-error-regexp-alist-alist
+ (cons 'rustc rustc-compilation-regexps))
+ (add-to-list 'compilation-error-regexp-alist 'rustc)))
;;; rust-mode.el ends here