diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2018-02-15 04:58:49 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2018-03-03 11:48:21 -0500 |
| commit | 3ced18778171f622b06614310693966fcb60a15b (patch) | |
| tree | 916ce07356fdfd50ebc3dd16e7692482fab3af0f /rust-mode.el | |
| parent | cc2435b9e5899c0787929a62dc6e6dcdb982febc (diff) | |
| download | rust-mode-3ced18778171f622b06614310693966fcb60a15b.tar.gz | |
remove old-style compilation regex; support `:::` regex
Diffstat (limited to 'rust-mode.el')
| -rw-r--r-- | rust-mode.el | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/rust-mode.el b/rust-mode.el index 908b892..cbf170e 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -1574,31 +1574,22 @@ This is written mainly to be used as `end-of-defun-function' for Rust." (defun rust--before-save-hook () (when rust-format-on-save (rust-format-buffer))) -;; Issue #6887: Rather than inheriting the 'gnu compilation error -;; 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 ((file "\\([^\n]+\\)") (start-line "\\([0-9]+\\)") - (start-col "\\([0-9]+\\)") - (end-line "\\([0-9]+\\)") - (end-col "\\([0-9]+\\)") - (msg-type "\\(?:[Ee]rror\\|\\([Ww]arning\\)\\|\\([Nn]ote\\|[Hh]elp\\)\\)")) - (let ((re (concat "^" file ":" start-line ":" start-col - ": " end-line ":" end-col - " " msg-type ":"))) - (cons re '(1 (2 . 4) (3 . 5) (6 . 7))))) - "Specifications for matching errors in rustc invocations. -See `compilation-error-regexp-alist' for help on their format.") - -(defvar rustc-new-compilation-regexps - (let ((file "\\([^\n]+\\)") - (start-line "\\([0-9]+\\)") (start-col "\\([0-9]+\\)")) (let ((re (concat "^ *--> " file ":" start-line ":" start-col ; --> 1:2:3 ))) (cons re '(1 2 3)))) - "Specifications for matching errors in rustc invocations (new style). + "Specifications for matching errors in rustc invocations. +See `compilation-error-regexp-alist' for help on their format.") + +(defvar rustc-colon-compilation-regexps + (let ((file "\\([^\n]+\\)")) + (let ((re (concat "^ *::: " file ; ::: foo/bar.rs + ))) + (cons re '(1)))) + "Specifications for matching `:::` hints in rustc invocations. See `compilation-error-regexp-alist' for help on their format.") ;; Match test run failures and panics during compilation as @@ -1631,15 +1622,15 @@ See `compilation-error-regexp-alist' for help on their format.") (eval-after-load 'compile '(progn (add-to-list 'compilation-error-regexp-alist-alist - (cons 'rustc-new rustc-new-compilation-regexps)) - (add-to-list 'compilation-error-regexp-alist 'rustc-new) - (add-hook 'next-error-hook 'rustc-scroll-down-after-next-error) - (add-to-list 'compilation-error-regexp-alist-alist (cons 'rustc rustc-compilation-regexps)) (add-to-list 'compilation-error-regexp-alist 'rustc) (add-to-list 'compilation-error-regexp-alist-alist + (cons 'rustc-colon rustc-colon-compilation-regexps)) + (add-to-list 'compilation-error-regexp-alist 'rustc-colon) + (add-to-list 'compilation-error-regexp-alist-alist (cons 'cargo cargo-compilation-regexps)) - (add-to-list 'compilation-error-regexp-alist 'cargo))) + (add-to-list 'compilation-error-regexp-alist 'cargo) + (add-hook 'next-error-hook 'rustc-scroll-down-after-next-error))) ;;; Functions to submit (parts of) buffers to the rust playpen, for ;;; sharing. |
