From d8a37f7cf6875cc0e6eba74368541840e0bfd227 Mon Sep 17 00:00:00 2001 From: Damian Tarnawski Date: Sat, 4 May 2024 17:13:12 +0200 Subject: [PATCH] Don't make a symbol for `nil` Don't make a symbol for `nil` and enable semantic tokens for `SymbolBasicValue` --- src/server/analysis.odin | 14 ++++++-------- src/server/semantic_tokens.odin | 7 ++++--- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/server/analysis.odin b/src/server/analysis.odin index 09a0d3ea..122a1e7d 100644 --- a/src/server/analysis.odin +++ b/src/server/analysis.odin @@ -1304,27 +1304,25 @@ internal_resolve_type_identifier :: proc( ident := new_type(Ident, node.pos, node.end, ast_context.allocator) ident.name = node.name - symbol: Symbol - switch ident.name { + case "nil": + return {}, false case "true", "false": - symbol = Symbol { + return { type = .Keyword, signature = node.name, pkg = ast_context.current_package, value = SymbolUntypedValue{type = .Bool}, - } + }, true case: - symbol = Symbol { + return { type = .Keyword, signature = node.name, name = ident.name, pkg = ast_context.current_package, value = SymbolBasicValue{ident = ident}, - } + }, true } - - return symbol, true } if local, ok := get_local(ast_context, node.pos.offset, node.name); diff --git a/src/server/semantic_tokens.odin b/src/server/semantic_tokens.odin index f0fa465a..eb5dde27 100644 --- a/src/server/semantic_tokens.odin +++ b/src/server/semantic_tokens.odin @@ -609,10 +609,11 @@ visit_ident :: proc( SymbolFixedArrayValue, SymbolSliceValue, SymbolMapValue, - SymbolMultiPointer: + SymbolMultiPointer, + SymbolBasicValue: write_semantic_node(builder, ident, .Type, modifiers) - case SymbolBasicValue, SymbolUntypedValue: - // handled by static syntax analysis + case SymbolUntypedValue: + // handled by static syntax highlighting case SymbolGenericValue: // unused case: