aboutsummaryrefslogtreecommitdiff
path: root/src/server/methods.odin
diff options
context:
space:
mode:
authorHarold Brenes <harold@hbrenes.com>2024-04-18 14:12:37 -0400
committerHarold Brenes <harold@hbrenes.com>2024-04-18 14:12:37 -0400
commitbbd6f7fc5226a2b28f7aa15211f957e85f5418f1 (patch)
treeb3d5b427a1a705ea60020efd677429649d49f005 /src/server/methods.odin
parent9d90c60db5c137a20fb3f4100048635459f92cd2 (diff)
Fix procs in external packages not getting receiver completion.
Diffstat (limited to 'src/server/methods.odin')
-rw-r--r--src/server/methods.odin38
1 files changed, 20 insertions, 18 deletions
diff --git a/src/server/methods.odin b/src/server/methods.odin
index 5190533..4b8efa8 100644
--- a/src/server/methods.odin
+++ b/src/server/methods.odin
@@ -124,7 +124,7 @@ append_method_completion :: proc(
if symbol.pkg != ast_context.document_package {
new_text = fmt.tprintf(
- "%v.%v($0)",
+ "%v.%v",
path.base(
get_symbol_pkg_name(ast_context, symbol),
false,
@@ -133,23 +133,25 @@ append_method_completion :: proc(
symbol.name,
)
} else {
- if len(symbol.value.(SymbolProcedureValue).arg_types) > 1 {
- new_text = fmt.tprintf(
- "%v(%v%v%v$0)",
- symbol.name,
- references,
- receiver,
- dereferences,
- )
- } else {
- new_text = fmt.tprintf(
- "%v(%v%v%v)$0",
- symbol.name,
- references,
- receiver,
- dereferences,
- )
- }
+ new_text = fmt.tprintf("%v", symbol.name)
+ }
+
+ if len(symbol.value.(SymbolProcedureValue).arg_types) > 1 {
+ new_text = fmt.tprintf(
+ "%v(%v%v%v$0)",
+ new_text,
+ references,
+ receiver,
+ dereferences,
+ )
+ } else {
+ new_text = fmt.tprintf(
+ "%v(%v%v%v)$0",
+ new_text,
+ references,
+ receiver,
+ dereferences,
+ )
}
item := CompletionItem {