diff options
| -rw-r--r-- | flymake-clippy-test.el | 39 | ||||
| -rw-r--r-- | flymake-clippy.el | 6 |
2 files changed, 41 insertions, 4 deletions
diff --git a/flymake-clippy-test.el b/flymake-clippy-test.el index 0cc3018..9f2c527 100644 --- a/flymake-clippy-test.el +++ b/flymake-clippy-test.el @@ -3,6 +3,12 @@ (require 'flymake-clippy) (require 'ert) +(defmacro with-text (text &rest body) + `(with-temp-buffer + (insert ,text) + (goto-char 0) + ,@body)) + (defun run-regexp () (set-match-data nil) (search-forward-regexp (flymake-clippy--build-regexp) nil t) @@ -10,8 +16,8 @@ (match-string 2) (match-string 3))) -(ert-deftest clippy-test-regexp () - "Tests regexp matches diagnostic information." +(ert-deftest clippy-test-fixture () + "Tests fixture diagnostics." (should (equal (with-temp-buffer (insert-file-contents "./test/fixture.txt") (run-regexp)) @@ -27,3 +33,32 @@ (run-regexp) (run-regexp)) '("warning: unused variable: `user`" "src/foobar/user.rs" "42")))) + +(defvar warning-text +"warning: unused variable: `user` + --> src/database/foo.rs:42:9 + | +42 | user: &User, + | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` + | + = note: `#[warn(unused_variables)]` on by default") + +(ert-deftest clippy-test-warnings () + "Tests warning diagnostics." + (should (equal (with-text warning-text (run-regexp)) + '("warning: unused variable: `user`" "src/database/foo.rs" "42")))) + +(defvar error-text +"error: expected one of `!` or `::`, found foobar + --> src/main.rs:20:9") + +(defvar error-text-with-error-num +"error[E0407]: method `build_string` is not defined + --> src/features.rs:106:5") + +(ert-deftest clippy-test-errors () + "Tests error diagnostics." + (should (equal (with-text error-text (run-regexp)) + '("error: expected one of `!` or `::`, found foobar" "src/main.rs" "20"))) + (should (equal (with-text error-text-with-error-num (run-regexp)) + '("error[E0407]: method `build_string` is not defined" "src/features.rs" "106")))) diff --git a/flymake-clippy.el b/flymake-clippy.el index 7925362..e9dfffc 100644 --- a/flymake-clippy.el +++ b/flymake-clippy.el @@ -5,7 +5,7 @@ ;; Author: Graham Marlow <info@mgmarlow.com> ;; Keywords: tools ;; URL: https://sr.ht/~mgmarlow/flymake-clippy/ -;; Version: 1.0.0 +;; Version: 1.0.1 ;; Package-Requires: ((emacs "26.1")) ;; This program is free software; you can redistribute it and/or modify @@ -40,7 +40,9 @@ "Regexp for Clippy output." (rx (seq line-start ;; Message - (group (or "warning:" "error:") + (group (or "warning" "error") + (zero-or-one (seq "[" (repeat 5 alphanumeric) "]")) + ":" (zero-or-more nonl)) "\n" (zero-or-more nonl) |
