Add HighlightModifier::Callable and add it for locals

This commit is contained in:
GrayJack 2020-10-16 06:38:32 -03:00
parent 0d45802d67
commit 83d6bc7113
No known key found for this signature in database
GPG key ID: 12C54E04AAB9931E
4 changed files with 8 additions and 0 deletions

View file

@ -763,6 +763,9 @@ fn highlight_def(db: &RootDatabase, def: Definition) -> Highlight {
if local.is_mut(db) || local.ty(db).is_mutable_reference() { if local.is_mut(db) || local.ty(db).is_mutable_reference() {
h |= HighlightModifier::Mutable; h |= HighlightModifier::Mutable;
} }
if local.ty(db).as_callable(db).is_some() {
h |= HighlightModifier::Callable;
}
return h; return h;
} }
} }

View file

@ -64,6 +64,7 @@ pub enum HighlightModifier {
Mutable, Mutable,
Consuming, Consuming,
Unsafe, Unsafe,
Callable,
} }
impl HighlightTag { impl HighlightTag {
@ -122,6 +123,7 @@ impl HighlightModifier {
HighlightModifier::Mutable, HighlightModifier::Mutable,
HighlightModifier::Consuming, HighlightModifier::Consuming,
HighlightModifier::Unsafe, HighlightModifier::Unsafe,
HighlightModifier::Callable,
]; ];
fn as_str(self) -> &'static str { fn as_str(self) -> &'static str {
@ -134,6 +136,7 @@ impl HighlightModifier {
HighlightModifier::Mutable => "mutable", HighlightModifier::Mutable => "mutable",
HighlightModifier::Consuming => "consuming", HighlightModifier::Consuming => "consuming",
HighlightModifier::Unsafe => "unsafe", HighlightModifier::Unsafe => "unsafe",
HighlightModifier::Callable => "callable",
} }
} }

View file

@ -77,6 +77,7 @@ define_semantic_token_modifiers![
(CONSUMING, "consuming"), (CONSUMING, "consuming"),
(UNSAFE, "unsafe"), (UNSAFE, "unsafe"),
(ATTRIBUTE_MODIFIER, "attribute"), (ATTRIBUTE_MODIFIER, "attribute"),
(CALLABLE, "callable"),
]; ];
#[derive(Default)] #[derive(Default)]

View file

@ -408,6 +408,7 @@ fn semantic_token_type_and_modifiers(
HighlightModifier::Mutable => semantic_tokens::MUTABLE, HighlightModifier::Mutable => semantic_tokens::MUTABLE,
HighlightModifier::Consuming => semantic_tokens::CONSUMING, HighlightModifier::Consuming => semantic_tokens::CONSUMING,
HighlightModifier::Unsafe => semantic_tokens::UNSAFE, HighlightModifier::Unsafe => semantic_tokens::UNSAFE,
HighlightModifier::Callable => semantic_tokens::CALLABLE,
}; };
mods |= modifier; mods |= modifier;
} }