aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorske <contact@ske.land>2025-12-17 17:43:57 -0300
committerske <contact@ske.land>2025-12-17 17:43:57 -0300
commitad2f993b2ab272e8985258cfa4316a481fa9c02f (patch)
tree4898486175593f8615b3e6b4c50a6dc362ac35a5 /src
parentcccd35ac38e675faa75c841526cb2a4dfd0b0149 (diff)
Add defaultLibrary modifier for builtin
Diffstat (limited to 'src')
-rw-r--r--src/server/collector.odin4
-rw-r--r--src/server/semantic_tokens.odin7
-rw-r--r--src/server/symbol.odin1
3 files changed, 11 insertions, 1 deletions
diff --git a/src/server/collector.odin b/src/server/collector.odin
index f082b73..d2b8445 100644
--- a/src/server/collector.odin
+++ b/src/server/collector.odin
@@ -731,6 +731,10 @@ collect_symbols :: proc(collection: ^SymbolCollection, file: ast.File, uri: stri
symbol.flags |= {.Distinct}
}
+ if expr.builtin {
+ symbol.flags |= {.Builtin}
+ }
+
if expr.deprecated {
symbol.flags |= {.Deprecated}
}
diff --git a/src/server/semantic_tokens.odin b/src/server/semantic_tokens.odin
index d237109..885588d 100644
--- a/src/server/semantic_tokens.odin
+++ b/src/server/semantic_tokens.odin
@@ -57,12 +57,13 @@ semantic_token_type_names: []string = {
SemanticTokenModifier :: enum u8 {
Declaration,
+ DefaultLibrary,
Definition,
Deprecated,
ReadOnly,
}
// Need to be in the same order as SemanticTokenModifier
-semantic_token_modifier_names: []string = {"declaration", "definition", "deprecated", "readonly"}
+semantic_token_modifier_names: []string = {"declaration", "defaultLibrary", "definition", "deprecated", "readonly"}
SemanticTokenModifiers :: bit_set[SemanticTokenModifier;u32]
SemanticTokensRequest :: struct {
@@ -546,6 +547,10 @@ visit_ident :: proc(
modifiers := modifiers
+ if .Builtin in symbol.flags {
+ modifiers += {.DefaultLibrary}
+ }
+
if .Mutable not_in symbol.flags {
modifiers += {.ReadOnly}
}
diff --git a/src/server/symbol.odin b/src/server/symbol.odin
index 2a7cfc6..a5b8690 100644
--- a/src/server/symbol.odin
+++ b/src/server/symbol.odin
@@ -197,6 +197,7 @@ SymbolValue :: union {
}
SymbolFlag :: enum {
+ Builtin,
Distinct,
Deprecated,
PrivateFile,