aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorpc <pmnarimani@gmail.com>2026-01-27 02:13:42 +0100
committerpc <pmnarimani@gmail.com>2026-01-27 02:13:42 +0100
commit219d0157cf409f23751b719080aa212cc1ebc1f5 (patch)
tree4ffe859f8da3b4371edc151c8745650ae5212119 /src/server
parent23b5c69f52b0007a6727bd04a5fe373e97df0739 (diff)
feat: add completion edit text test for proc group with single argument
Diffstat (limited to 'src/server')
-rw-r--r--src/server/methods.odin19
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,