diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-13 22:35:24 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-09-13 22:35:24 -0400 |
| commit | e9a3c436d6fc23a1622e59394aff1c34762b2482 (patch) | |
| tree | db90be7649acaf5e7317c205440aa0badda3752a | |
| parent | 69c2024f8a65244d46941fbbf6459fed01348dee (diff) | |
Revert "Merge pull request #1011 from BradLewis/fix/completions-select-in-selector-call"
This reverts commit 69c2024f8a65244d46941fbbf6459fed01348dee, reversing
changes made to a581608407b82b4816b7fbbe29da97c55c53c33e.
| -rw-r--r-- | src/server/completion.odin | 9 | ||||
| -rw-r--r-- | src/server/position_context.odin | 2 | ||||
| -rw-r--r-- | tests/completions_test.odin | 30 |
3 files changed, 4 insertions, 37 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin index 5eb8e64..7e789f0 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -96,9 +96,7 @@ get_completion_list :: proc( } if position_context.selector != nil { - if _, ok := position_context.selector.derived.(^ast.Ident); ok { - completion_type = .Selector - } else if position_context.selector_expr != nil { + 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 @@ -1403,10 +1401,7 @@ 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 46efce2..0417df8 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 { + if hint == .Completion && position_context.selector == nil && position_context.field == nil { fallback_position_context_completion(document, position, &position_context) } diff --git a/tests/completions_test.odin b/tests/completions_test.odin index a9b24ce..303fd64 100644 --- a/tests/completions_test.odin +++ b/tests/completions_test.odin @@ -4720,37 +4720,9 @@ ast_completion_selector_within_selector_call_expr :: proc(t: ^testing.T) { bar = print, } - foo->bar(data.{*}) + foo->bar(data.x{*}) } `, } test.expect_completion_docs(t, &source, "", {"Data.x: int", "Data.y: int"}) } - -@(test) -ast_completion_ident_within_selector_call_expr :: proc(t: ^testing.T) { - source := test.Source { - main = `package test - - Data :: struct { - x, y: int, - } - - IFoo :: struct { - bar: proc(self: IFoo, x: int), - } - - print :: proc(self: IFoo, x: int) {} - - main :: proc() { - data := Data{} - foo := IFoo { - bar = print, - } - - foo->bar(d{*}) - } - `, - } - test.expect_completion_docs(t, &source, "", {"test.data: test.Data"}) -} |