Unnamed repository; edit this file 'description' to name the repository.
Merge #10937
10937: fix: Add highlighting hack back for unresolved attributes r=Veykril a=Veykril cc https://github.com/rust-analyzer/rust-analyzer/issues/10935 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
bors[bot] 2021-12-05
parent 8a084e6 · parent 9b4ca77 · commit 1cf1359
-rw-r--r--crates/ide/src/syntax_highlighting/highlight.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/crates/ide/src/syntax_highlighting/highlight.rs b/crates/ide/src/syntax_highlighting/highlight.rs
index 88c469df26..a52b2247c5 100644
--- a/crates/ide/src/syntax_highlighting/highlight.rs
+++ b/crates/ide/src/syntax_highlighting/highlight.rs
@@ -262,6 +262,13 @@ fn highlight_name_ref(
None if name_ref.self_token().is_some() && is_in_fn_with_self_param(&name_ref) => {
return SymbolKind::SelfParam.into()
}
+ // FIXME: This is required for helper attributes used by proc-macros, as those do not map down
+ // to anything when used.
+ // We can fix this for derive attributes since derive helpers are recorded, but not for
+ // general attributes.
+ None if name_ref.syntax().ancestors().any(|it| it.kind() == ATTR) => {
+ return HlTag::Symbol(SymbolKind::Attribute).into();
+ }
None => return HlTag::UnresolvedReference.into(),
};
let mut h = match name_class {