diff options
| author | Daniel Gavin <danielgavin5@hotmail.com> | 2021-12-13 21:23:30 +0100 |
|---|---|---|
| committer | Daniel Gavin <danielgavin5@hotmail.com> | 2021-12-13 21:23:30 +0100 |
| commit | f4881fddf7e7c003a709a3ed5fd413270d41d261 (patch) | |
| tree | ab4cf3008856cdebfa032bb833957c607f2735e0 /src/server | |
| parent | c67ba465cbee1c450f75785905ba5d74d03cb3c8 (diff) | |
Improved type completion + add constants type, add deprecrated tag.
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/completion.odin | 6 | ||||
| -rw-r--r-- | src/server/types.odin | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/server/completion.odin b/src/server/completion.odin index 26d6ba2..0aa202e 100644 --- a/src/server/completion.odin +++ b/src/server/completion.odin @@ -448,6 +448,7 @@ get_selector_completion :: proc(ast_context: ^analysis.AstContext, position_cont for search in searched { symbol := search.symbol; + resolve_unresolved_symbol(ast_context, &symbol); build_symbol_return(&symbol); build_symbol_signature(&symbol); @@ -462,6 +463,7 @@ get_selector_completion :: proc(ast_context: ^analysis.AstContext, position_cont item.insertText = fmt.tprintf("%v($0)", item.label); item.insertTextFormat = .Snippet; item.command.command = "editor.action.triggerParameterHints"; + item.deprecated = symbol.is_deprecated; } append(&items, item); @@ -843,6 +845,7 @@ get_identifier_completion :: proc(ast_context: ^analysis.AstContext, position_co if results, ok := index.fuzzy_search(lookup, pkgs[:]); ok { for r in results { r := r; + resolve_unresolved_symbol(ast_context, &r.symbol); build_symbol_return(&r.symbol); build_symbol_signature(&r.symbol); if r.symbol.uri != ast_context.uri { @@ -1010,9 +1013,10 @@ get_identifier_completion :: proc(ast_context: ^analysis.AstContext, position_co if result.symbol.type == .Function { item.insertText = fmt.tprintf("%v($0)", item.label); item.insertTextFormat = .Snippet; + item.deprecated = result.symbol.is_deprecated; item.command.command = "editor.action.triggerParameterHints"; } - + item.detail = concatenate_symbols_information(ast_context, result.symbol, true); append(&items, item); diff --git a/src/server/types.odin b/src/server/types.odin index f5aa2b3..9f3c866 100644 --- a/src/server/types.odin +++ b/src/server/types.odin @@ -267,9 +267,15 @@ CompletionItem :: struct { insertTextFormat: InsertTextFormat, insertText: string, additionalTextEdits: []TextEdit, + tags: []CompletionItemTag, + deprecated: bool, command: Command, } +CompletionItemTag :: enum { + Deprecated = 1, +} + CompletionList :: struct { isIncomplete: bool, items: []CompletionItem, |