diff options
| author | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-08-23 09:38:10 -0400 |
|---|---|---|
| committer | Brad Lewis <22850972+BradLewis@users.noreply.github.com> | 2025-08-24 08:55:23 -0400 |
| commit | 0d7f28a8ca38fbdd4baa522ec1caf9316d090d19 (patch) | |
| tree | f191c7139e18154e556bb8742eb1cc0cafa1e118 /src/server/completion.odin | |
| parent | e239a9a74e732d91cc3e7e1c4b2dc68da1f2cb4c (diff) | |
Check types before adding pointer completion
Diffstat (limited to 'src/server/completion.odin')
| -rw-r--r-- | src/server/completion.odin | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin index 0b00f5b..5d28c3f 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -318,7 +318,7 @@ convert_completion_results :: proc( } if s, ok := symbol.(Symbol); ok && (completion_type == .Selector || completion_type == .Identifier) { - handle_pointers(position_context, result.symbol, s, &item, completion_type) + handle_pointers(ast_context, position_context, result.symbol, s, &item, completion_type) } if common.config.enable_label_details { @@ -372,6 +372,7 @@ convert_completion_results :: proc( @(private = "file") handle_pointers :: proc( + ast_context: ^AstContext, position_context: ^DocumentPositionContext, result_symbol: Symbol, arg_symbol: Symbol, @@ -384,6 +385,10 @@ handle_pointers :: proc( } } + if !is_symbol_same_typed(ast_context, arg_symbol, result_symbol, ignore_pointers = true) { + return + } + diff := result_symbol.pointers - arg_symbol.pointers suffix := "" prefix := "" @@ -861,7 +866,7 @@ get_selector_completion :: proc( completion_item = CompletionItem { label = fmt.tprintf(".%s", name), kind = .EnumMember, - detail = fmt.tprintf("%s.%s", receiver, name), + detail = fmt.tprintf("%s.%s", selector.name, name), additionalTextEdits = remove_edit, }, }, |