aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-13 22:12:52 -0400
committerBrad Lewis <22850972+BradLewis@users.noreply.github.com>2025-09-13 22:12:52 -0400
commit0c71283641cab3a9940deb2b6f223c1d75227e2f (patch)
tree533a565004d8af7bdf16fcae5830df312f213753 /src/server
parenta581608407b82b4816b7fbbe29da97c55c53c33e (diff)
Correct selector completions within selector call exprs
Diffstat (limited to 'src/server')
-rw-r--r--src/server/completion.odin9
-rw-r--r--src/server/position_context.odin2
2 files changed, 8 insertions, 3 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,
diff --git a/src/server/position_context.odin b/src/server/position_context.odin
index 0417df8..46efce2 100644
--- a/src/server/position_context.odin
+++ b/src/server/position_context.odin
@@ -138,7 +138,7 @@ get_document_position_context :: proc(
position_context.parent_binary = nil
}
- if hint == .Completion && position_context.selector == nil && position_context.field == nil {
+ if hint == .Completion {
fallback_position_context_completion(document, position, &position_context)
}