diff options
| author | Daniel Gavin <danielgavin5@hotmail.com> | 2021-11-25 18:11:44 +0100 |
|---|---|---|
| committer | Daniel Gavin <danielgavin5@hotmail.com> | 2021-11-25 18:11:44 +0100 |
| commit | 08cc9547422987062c53ec663f268d98c6d5a898 (patch) | |
| tree | 0c2e8160e04c8196d4ecba7b5b32aa8e2997055d /src | |
| parent | 4d5b12e399f5384d0e7bb3e7b213d04cea32c32b (diff) | |
Fix signatures in procedures not showing the return type
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/completion.odin | 6 | ||||
| -rw-r--r-- | src/server/signature.odin | 11 |
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); } } |