aboutsummaryrefslogtreecommitdiff
path: root/src/server/completion.odin
diff options
context:
space:
mode:
authorBradley Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-13 22:16:05 -0400
committerGitHub <noreply@github.com>2025-09-13 22:16:05 -0400
commit69c2024f8a65244d46941fbbf6459fed01348dee (patch)
tree533a565004d8af7bdf16fcae5830df312f213753 /src/server/completion.odin
parenta581608407b82b4816b7fbbe29da97c55c53c33e (diff)
parent0c71283641cab3a9940deb2b6f223c1d75227e2f (diff)
Merge pull request #1011 from BradLewis/fix/completions-select-in-selector-call
Correct selector completions within selector call exprs
Diffstat (limited to 'src/server/completion.odin')
-rw-r--r--src/server/completion.odin9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin
index 7e789f0..5eb8e64 100644
--- a/src/server/completion.odin
+++ b/src/server/completion.odin
@@ -96,7 +96,9 @@ get_completion_list :: proc(
}
if position_context.selector != nil {
- if position_context.selector_expr != nil {
+ if _, ok := position_context.selector.derived.(^ast.Ident); ok {
+ completion_type = .Selector
+ } else if position_context.selector_expr != nil {
if selector_call, ok := position_context.selector_expr.derived.(^ast.Selector_Call_Expr); ok {
if !position_in_node(selector_call.call, position_context.position) {
completion_type = .Selector
@@ -1401,7 +1403,10 @@ get_implicit_completion :: proc(
}
if len(position_context.assign.lhs) > rhs_index {
- if enum_value, unwrapped_super_enum, ok := unwrap_enum(ast_context, position_context.assign.lhs[rhs_index]); ok {
+ if enum_value, unwrapped_super_enum, ok := unwrap_enum(
+ ast_context,
+ position_context.assign.lhs[rhs_index],
+ ); ok {
for name in enum_value.names {
item := CompletionItem {
label = name,