From f4881fddf7e7c003a709a3ed5fd413270d41d261 Mon Sep 17 00:00:00 2001 From: Daniel Gavin Date: Mon, 13 Dec 2021 21:23:30 +0100 Subject: Improved type completion + add constants type, add deprecrated tag. --- src/server/completion.odin | 6 +++++- src/server/types.odin | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'src/server') 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, -- cgit v1.2.3