aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Gavin <danielgavin5@hotmail.com>2021-11-25 18:11:44 +0100
committerDaniel Gavin <danielgavin5@hotmail.com>2021-11-25 18:11:44 +0100
commit08cc9547422987062c53ec663f268d98c6d5a898 (patch)
tree0c2e8160e04c8196d4ecba7b5b32aa8e2997055d /src
parent4d5b12e399f5384d0e7bb3e7b213d04cea32c32b (diff)
Fix signatures in procedures not showing the return type
Diffstat (limited to 'src')
-rw-r--r--src/server/completion.odin6
-rw-r--r--src/server/signature.odin11
2 files changed, 13 insertions, 4 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin
index 791f971..93d3bb8 100644
--- a/src/server/completion.odin
+++ b/src/server/completion.odin
@@ -455,13 +455,15 @@ get_selector_completion :: proc(ast_context: ^analysis.AstContext, position_cont
symbol := search.symbol;
- build_symbol_signature(&symbol);
build_symbol_return(&symbol);
+ build_symbol_signature(&symbol);
+
+
item := CompletionItem {
label = symbol.name,
kind = cast(CompletionItemKind)symbol.type,
- detail = fmt.tprintf("%v.%v: %v", path.base(symbol.pkg, false, context.temp_allocator), symbol.name, symbol.signature),
+ detail = concatenate_symbols_information(ast_context, symbol, true),
documentation = symbol.doc,
};
diff --git a/src/server/signature.odin b/src/server/signature.odin
index c309b6c..1b8354d 100644
--- a/src/server/signature.odin
+++ b/src/server/signature.odin
@@ -77,14 +77,21 @@ build_symbol_return :: proc(symbol: ^index.Symbol) {
return;
}
- strings.write_string(&builder, "(");
+ if len(value.return_types) > 1 {
+ strings.write_string(&builder, "(");
+ }
+
for arg, i in value.return_types {
strings.write_string(&builder, common.node_to_string(arg));
if i != len(value.return_types) - 1 {
strings.write_string(&builder, ", ");
}
}
- strings.write_string(&builder, ")");
+
+ if len(value.return_types) > 1 {
+ strings.write_string(&builder, ")");
+ }
+
symbol.returns = strings.to_string(builder);
}
}