Skip to content

Commit a565329

Browse files
committed
optimize semantic token for typename
1 parent a85ee52 commit a565329

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

crates/emmylua_ls/src/handlers/semantic_token/build_semantic_tokens.rs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use code_analysis::SemanticModel;
22
use emmylua_parser::{
3-
LuaAst, LuaAstNode, LuaAstToken, LuaDocFieldKey, LuaExpr, LuaSyntaxNode, LuaSyntaxToken,
4-
LuaTokenKind, LuaVarExpr,
3+
LuaAst, LuaAstNode, LuaAstToken, LuaDocFieldKey, LuaDocObjectFieldKey, LuaExpr, LuaSyntaxNode, LuaSyntaxToken, LuaTokenKind, LuaVarExpr
54
};
65
use lsp_types::{SemanticToken, SemanticTokenType};
76
use rowan::NodeOrToken;
@@ -94,7 +93,11 @@ fn build_tokens_semantic_token(
9493
| LuaTokenKind::TkLen
9594
| LuaTokenKind::TkBitAnd
9695
| LuaTokenKind::TkBitOr
97-
| LuaTokenKind::TkBitXor => {
96+
| LuaTokenKind::TkBitXor
97+
| LuaTokenKind::TkLeftBrace
98+
| LuaTokenKind::TkRightBrace
99+
| LuaTokenKind::TkLeftBracket
100+
| LuaTokenKind::TkRightBracket => {
98101
builder.push(token, SemanticTokenType::OPERATOR);
99102
}
100103
LuaTokenKind::TkComplex | LuaTokenKind::TkInt | LuaTokenKind::TkFloat => {
@@ -314,6 +317,19 @@ fn build_node_semantic_token(
314317
let name = doc_name_type.get_name_token()?;
315318
builder.push(name.syntax().clone(), SemanticTokenType::TYPE);
316319
}
320+
LuaAst::LuaDocObjectType(doc_object_type) => {
321+
let fields = doc_object_type.get_fields();
322+
for field in fields {
323+
if let Some(field_key) = field.get_field_key() {
324+
match &field_key {
325+
LuaDocObjectFieldKey::Name(name) => {
326+
builder.push(name.syntax().clone(), SemanticTokenType::PROPERTY);
327+
}
328+
_ => {}
329+
}
330+
}
331+
}
332+
}
317333
_ => {}
318334
}
319335

0 commit comments

Comments
 (0)