From 33611175faa7ac28f73ba99fb9d19551c4c52b97 Mon Sep 17 00:00:00 2001 From: ryuukk <44361234+ryuukk@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:23:05 +0100 Subject: [PATCH] Add template parameters to the autocomplete response for struct/class --- src/dcd/server/autocomplete/util.d | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/dcd/server/autocomplete/util.d b/src/dcd/server/autocomplete/util.d index 2f618f4..37dd8fe 100644 --- a/src/dcd/server/autocomplete/util.d +++ b/src/dcd/server/autocomplete/util.d @@ -539,6 +539,31 @@ AutocompleteResponse.Completion makeSymbolCompletionInfo(const DSymbol* symbol, } else if (kind == CompletionKind.enumMember) ret.definition = symbol.name; // TODO: add enum value to definition string + else if (kind == CompletionKind.structName || kind == CompletionKind.className) + { + string newName; + istring[] t_type; + foreach(part; symbol.opSlice()) + { + if (part.kind == CompletionKind.typeTmpParam) + t_type ~= part.name; + } + auto tcount = t_type.length; + if (tcount > 0) + { + newName = symbol.name ~ "("; + foreach(i, part; t_type) + { + newName ~= part; + if (i < tcount - 1) + newName ~= ", "; + } + newName ~= ")"; + } + else + newName = symbol.callTip; + ret.definition = newName; + } else ret.definition = symbol.callTip;