Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs')
| -rw-r--r-- | crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs b/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs index fde1d1323f..fea3a0e832 100644 --- a/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs +++ b/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs @@ -8,20 +8,25 @@ use crate::{Diagnostic, DiagnosticsContext, Severity}; // // If you are seeing a lot of "proc macro not expanded" warnings, you can add this option to the // `rust-analyzer.diagnostics.disabled` list to prevent them from showing. Alternatively you can -// enable support for procedural macros (see `rust-analyzer.procMacro.enable`). +// enable support for procedural macros (see `rust-analyzer.procMacro.attributes.enable`). pub(crate) fn unresolved_proc_macro( ctx: &DiagnosticsContext<'_>, d: &hir::UnresolvedProcMacro, + attr_proc_macros_enabled: bool, ) -> Diagnostic { // Use more accurate position if available. let display_range = d .precise_location .unwrap_or_else(|| ctx.sema.diagnostics_display_range(d.node.clone()).range); - // FIXME: it would be nice to tell the user whether proc macros are currently disabled let message = match &d.macro_name { Some(name) => format!("proc macro `{}` not expanded", name), None => "proc macro not expanded".to_string(), }; + let message = format!( + "{message}{}", + if attr_proc_macros_enabled { "" } else { " (attribute macro expansion is disabled)" } + ); - Diagnostic::new("unresolved-proc-macro", message, display_range).severity(Severity::WeakWarning) + Diagnostic::new("unresolved-proc-macro", message, display_range) + .severity(if attr_proc_macros_enabled { Severity::Error } else { Severity::WeakWarning }) } |