From e2d03f622df9081a666fa3cf46e4af9ac75d3241 Mon Sep 17 00:00:00 2001 From: RUSshy <18348637+RUSshy@users.noreply.github.com> Date: Tue, 5 Oct 2021 17:50:51 +0200 Subject: [PATCH] Make proper definition of a completion item --- src/dcd/server/autocomplete/util.d | 55 ++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/src/dcd/server/autocomplete/util.d b/src/dcd/server/autocomplete/util.d index 9bc6439..4de7d4e 100644 --- a/src/dcd/server/autocomplete/util.d +++ b/src/dcd/server/autocomplete/util.d @@ -758,10 +758,59 @@ AutocompleteResponse.Completion makeSymbolCompletionInfo(const DSymbol* symbol, string definition; if ((kind == CompletionKind.variableName || kind == CompletionKind.memberVariableName) && symbol.type) definition = symbol.type.name ~ ' ' ~ symbol.name; - else if (kind == CompletionKind.enumMember) - definition = symbol.name; // TODO: add enum value to definition string else - definition = symbol.callTip; + { + switch (kind) + { + case 'e': + definition = symbol.name; // TODO: add enum value to definition string + break; + case 'c': + definition = "Class"; + break; + case 'i': + definition = "Interface"; + break; + case 's': + definition = "Struct"; + break; + case 'u': + definition = "Union"; + break; + case 'a': + definition = "Array"; + break; + case 'A': + definition = "AA"; + break; + case 'k': + definition = "Keyword"; + break; + case 'g': + definition = "Enum"; + break; + case 'P': + definition = "Package"; + break; + case 'M': + definition = "Module"; + break; + case 't': + case 'T': + definition = "Template"; + break; + case 'h': + definition = ""; + break; + case 'p': + definition = ""; + break; + case 'l': // Alias (eventually should show what it aliases to) + default: + definition = symbol.callTip; + break; + } + } // TODO: definition strings could include more information, like on classes inheritance return AutocompleteResponse.Completion(symbol.name, kind, definition, symbol.symbolFile, symbol.location, symbol.doc);