From: Ergus Date: Wed, 15 May 2024 13:10:02 +0000 (+0200) Subject: Add support for Rust compilation messages X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f084e1e7ce5c70b144b840e07440f8e0bc2f9b7e;p=emacs.git Add support for Rust compilation messages * etc/compilation.txt (Rust): Add Rust/cargo examples. * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Add rust/cargo error and warning patterns. (Bug#70794) (cherry picked from commit 2e862f81a355435fb7e837ffebee2f657c26ff23) --- diff --git a/etc/compilation.txt b/etc/compilation.txt index 05f0829864c..44388e1f197 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt @@ -523,6 +523,45 @@ NoMethodError: undefined method `not_exists' for nil:NilClass 4 tests, 3 assertions, 3 failures, 1 errors +* Rust + +symbol: cargo + +The [] part is optional, and the file names are always relative to +project's root. + +error[E0425]: cannot find function `ruun` in module `broot::cli` + --> src/main.rs:6:23 + | +6 | match broot::cli::ruun() { + | ^^^^ help: a function with a similar name exists: `run` + | + ::: /tmp/broot/src/cli/mod.rs:49:1 + | +49 | pub fn run() -> Result, ProgramError> { + | -------------------------------------------------------- similarly + named function `run` defined here + +error: cannot find macro `deebug` in this scope + --> src/main.rs:5:5 + | +5 | deebug!("env::args(): {:#?}", std::env::args().collect::>()); + | ^^^^^^ help: a macro with a similar name exists: `debug` + | + ::: /home/ergo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/log-0.4.21/src/macros.rs:154:1 + | +154 | macro_rules! debug { + | ------------------ similarly named macro `debug` defined here + +warning: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]` + --> src/main.rs:3:1 + | +3 | #[feature(proc_macro_diagnostic)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_attributes)]` on by default + + * RXP symbol: rxp diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 0dda610776e..0cb20f7c5ce 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -224,6 +224,13 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1)) \\(?: characters? \\([0-9]+\\)-?\\([0-9]+\\)?:\\)?\\([ \n]Warning\\(?: [0-9]+\\)?:\\)?\\)" 2 (3 . 4) (5 . 6) (7)) + (cargo + "\\(?:\\(?4:error\\)\\|\\(?5:warning\\)\\):[^\0]+?--> \\(?1:[^:]+\\):\\(?2:[[:digit:]]+\\):\\(?3:[[:digit:]]+\\)" + 1 2 3 (5) + nil + (5 compilation-warning-face) + (4 compilation-error-face)) + (cmake "^CMake \\(?:Error\\|\\(Warning\\)\\) at \\(.*\\):\\([1-9][0-9]*\\) ([^)]+):$" 2 3 nil (1))