From 83d6bc7113080c9bf3fd70bed1b89c6b4795d826 Mon Sep 17 00:00:00 2001 From: GrayJack Date: Fri, 16 Oct 2020 06:38:32 -0300 Subject: Add HighlightModifier::Callable and add it for locals --- crates/ide/src/syntax_highlighting.rs | 3 +++ crates/ide/src/syntax_highlighting/tags.rs | 3 +++ crates/rust-analyzer/src/semantic_tokens.rs | 1 + crates/rust-analyzer/src/to_proto.rs | 1 + 4 files changed, 8 insertions(+) (limited to 'crates') diff --git a/crates/ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs index b35c03162..3982838d5 100644 --- a/crates/ide/src/syntax_highlighting.rs +++ b/crates/ide/src/syntax_highlighting.rs @@ -763,6 +763,9 @@ fn highlight_def(db: &RootDatabase, def: Definition) -> Highlight { if local.is_mut(db) || local.ty(db).is_mutable_reference() { h |= HighlightModifier::Mutable; } + if local.ty(db).as_callable(db).is_some() { + h |= HighlightModifier::Callable; + } return h; } } diff --git a/crates/ide/src/syntax_highlighting/tags.rs b/crates/ide/src/syntax_highlighting/tags.rs index c1b817f06..e8f78ad52 100644 --- a/crates/ide/src/syntax_highlighting/tags.rs +++ b/crates/ide/src/syntax_highlighting/tags.rs @@ -64,6 +64,7 @@ pub enum HighlightModifier { Mutable, Consuming, Unsafe, + Callable, } impl HighlightTag { @@ -122,6 +123,7 @@ impl HighlightModifier { HighlightModifier::Mutable, HighlightModifier::Consuming, HighlightModifier::Unsafe, + HighlightModifier::Callable, ]; fn as_str(self) -> &'static str { @@ -134,6 +136,7 @@ impl HighlightModifier { HighlightModifier::Mutable => "mutable", HighlightModifier::Consuming => "consuming", HighlightModifier::Unsafe => "unsafe", + HighlightModifier::Callable => "callable", } } diff --git a/crates/rust-analyzer/src/semantic_tokens.rs b/crates/rust-analyzer/src/semantic_tokens.rs index a6c4d6099..7df28c9dd 100644 --- a/crates/rust-analyzer/src/semantic_tokens.rs +++ b/crates/rust-analyzer/src/semantic_tokens.rs @@ -77,6 +77,7 @@ define_semantic_token_modifiers![ (CONSUMING, "consuming"), (UNSAFE, "unsafe"), (ATTRIBUTE_MODIFIER, "attribute"), + (CALLABLE, "callable"), ]; #[derive(Default)] diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs index aeacde0f7..1a0b435bf 100644 --- a/crates/rust-analyzer/src/to_proto.rs +++ b/crates/rust-analyzer/src/to_proto.rs @@ -408,6 +408,7 @@ fn semantic_token_type_and_modifiers( HighlightModifier::Mutable => semantic_tokens::MUTABLE, HighlightModifier::Consuming => semantic_tokens::CONSUMING, HighlightModifier::Unsafe => semantic_tokens::UNSAFE, + HighlightModifier::Callable => semantic_tokens::CALLABLE, }; mods |= modifier; } -- cgit v1.2.3