diff options
| author | Bradley Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-13 22:16:05 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-13 22:16:05 -0400 |
| commit | 69c2024f8a65244d46941fbbf6459fed01348dee (patch) | |
| tree | 533a565004d8af7bdf16fcae5830df312f213753 /src/server | |
| parent | a581608407b82b4816b7fbbe29da97c55c53c33e (diff) | |
| parent | 0c71283641cab3a9940deb2b6f223c1d75227e2f (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')
| -rw-r--r-- | src/server/completion.odin | 9 | ||||
| -rw-r--r-- | src/server/position_context.odin | 2 |
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) } |