From f4e3eceb6f9c708cb94ee5e2940c6ad4f3abc629 Mon Sep 17 00:00:00 2001 From: petr-tik Date: Fri, 5 Feb 2021 23:46:39 +0000 Subject: Add a semantic token type for char literals The LSP spec doesn't recognise character literals, so had to extend the suported types to our own custom type --- crates/rust-analyzer/src/semantic_tokens.rs | 1 + crates/rust-analyzer/src/to_proto.rs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/rust-analyzer/src/semantic_tokens.rs b/crates/rust-analyzer/src/semantic_tokens.rs index 7ce9a4ab6..be0bea00b 100644 --- a/crates/rust-analyzer/src/semantic_tokens.rs +++ b/crates/rust-analyzer/src/semantic_tokens.rs @@ -44,6 +44,7 @@ define_semantic_token_types![ (BRACE, "brace"), (BRACKET, "bracket"), (BUILTIN_TYPE, "builtinType"), + (CHAR_LITERAL, "characterLiteral"), (COMMA, "comma"), (COLON, "colon"), (DOT, "dot"), diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs index 96f915f1c..5236932e8 100644 --- a/crates/rust-analyzer/src/to_proto.rs +++ b/crates/rust-analyzer/src/to_proto.rs @@ -426,7 +426,8 @@ fn semantic_token_type_and_modifiers( HlTag::None => semantic_tokens::GENERIC, HlTag::ByteLiteral | HlTag::NumericLiteral => lsp_types::SemanticTokenType::NUMBER, HlTag::BoolLiteral => semantic_tokens::BOOLEAN, - HlTag::CharLiteral | HlTag::StringLiteral => lsp_types::SemanticTokenType::STRING, + HlTag::StringLiteral => lsp_types::SemanticTokenType::STRING, + HlTag::CharLiteral => semantic_tokens::CHAR_LITERAL, HlTag::Comment => lsp_types::SemanticTokenType::COMMENT, HlTag::Attribute => semantic_tokens::ATTRIBUTE, HlTag::Keyword => lsp_types::SemanticTokenType::KEYWORD, -- cgit v1.2.3