diff options
| author | pc <pmnarimani@gmail.com> | 2026-01-27 02:13:42 +0100 |
|---|---|---|
| committer | pc <pmnarimani@gmail.com> | 2026-01-27 02:13:42 +0100 |
| commit | 219d0157cf409f23751b719080aa212cc1ebc1f5 (patch) | |
| tree | 4ffe859f8da3b4371edc151c8745650ae5212119 /src/server/methods.odin | |
| parent | 23b5c69f52b0007a6727bd04a5fe373e97df0739 (diff) | |
feat: add completion edit text test for proc group with single argument
Diffstat (limited to 'src/server/methods.odin')
| -rw-r--r-- | src/server/methods.odin | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/server/methods.odin b/src/server/methods.odin index 797a089..19d9ff4 100644 --- a/src/server/methods.odin +++ b/src/server/methods.odin @@ -250,8 +250,23 @@ add_proc_group_method_completion :: proc( references, dereferences := compute_pointer_adjustments(first_arg.pointers, pointers) - // Proc groups always have multiple args (the receiver plus at least one overload's additional args) - new_text := build_method_call_text(ast_context, symbol, receiver, references, dereferences, true) + // Check if any member of the proc group has additional arguments beyond the receiver + has_additional_args := false + for member_expr in proc_group.args { + member: Symbol + member, ok = resolve_type_expression(ast_context, member_expr) + if !ok { + continue + } + if proc_val, is_proc_val := member.value.(SymbolProcedureValue); is_proc_val { + if len(proc_val.arg_types) > 1 { + has_additional_args = true + break + } + } + } + + new_text := build_method_call_text(ast_context, symbol, receiver, references, dereferences, has_additional_args) item := CompletionItem { label = symbol.name, |