aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2025-04-30 11:11:59 +0200
committerGitHub <noreply@github.com>2025-04-30 11:11:59 +0200
commit65253fea01ba3648314947a489de6f57934b70ee (patch)
tree56b0a3af596130abfc979edc0074f6110c6f689d /src
parentd12ee2ef83989d0fcf71b20a0305111344a69b7d (diff)
parent93accc8b78bc6406e137ced082b0e09ec04a8a83 (diff)
Merge pull request #631 from harold-b/hb.fix-bitset-completion
Fix bit_set implicit selector completion
Diffstat (limited to 'src')
-rw-r--r--src/server/completion.odin24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin
index 97d956d..7383785 100644
--- a/src/server/completion.odin
+++ b/src/server/completion.odin
@@ -731,6 +731,7 @@ get_implicit_completion :: proc(
if position_context.comp_lit != nil {
if bitset_symbol, ok := resolve_type_expression(ast_context, position_context.value_decl.type); ok {
+ set_ast_package_from_symbol_scoped(ast_context, bitset_symbol)
if _enum_value, ok := unwrap_bitset(ast_context, bitset_symbol); ok {
enum_value = _enum_value
}
@@ -949,19 +950,22 @@ get_implicit_completion :: proc(
return
}
}
- } else if s, ok := unwrap_bitset(ast_context, comp_symbol); ok {
- for enum_name in s.names {
- item := CompletionItem {
- label = enum_name,
- kind = .EnumMember,
- detail = enum_name,
+ } else {
+ set_ast_package_set_scoped(ast_context, comp_symbol.pkg)
+ if s, ok := unwrap_bitset(ast_context, comp_symbol); ok {
+ for enum_name in s.names {
+ item := CompletionItem {
+ label = enum_name,
+ kind = .EnumMember,
+ detail = enum_name,
+ }
+
+ append(&items, item)
}
- append(&items, item)
+ list.items = items[:]
+ return
}
-
- list.items = items[:]
- return
}
}
}