diff --git a/dsymbol/src/dsymbol/ufcs.d b/dsymbol/src/dsymbol/ufcs.d index 51ecce6..3425acc 100644 --- a/dsymbol/src/dsymbol/ufcs.d +++ b/dsymbol/src/dsymbol/ufcs.d @@ -311,6 +311,7 @@ bool isCallableWithArg(DSymbol* incomingSymbol, const(DSymbol)* beforeDotType, b .functionParameters.front.type.name) || matchAliasThis(beforeDotType, incomingSymbol, recursionDepth)) { + incomingSymbol.kind = CompletionKind.ufcsName; return true; } diff --git a/src/dcd/server/autocomplete/complete.d b/src/dcd/server/autocomplete/complete.d index c6727e8..4baee26 100644 --- a/src/dcd/server/autocomplete/complete.d +++ b/src/dcd/server/autocomplete/complete.d @@ -221,7 +221,7 @@ AutocompleteResponse dotCompletion(T)(T beforeTokens, const(Token)[] tokenArray, scope(exit) pair.destroy(); response.setCompletions(pair.scope_, getExpression(beforeTokens), cursorPosition, CompletionType.identifiers, false, partial); - response.completions ~= pair.ufcsSymbols.map!(s => makeSymbolCompletionInfo(s, CompletionKind.ufcsName)).array; + response.completions ~= pair.ufcsSymbols.map!(s => makeSymbolCompletionInfo(s, s.kind)).array; break; // these tokens before a "." mean "Module Scope Operator" case tok!":": @@ -308,7 +308,7 @@ AutocompleteResponse parenCompletion(T)(T beforeTokens, auto expression = getExpression(beforeTokens[0 .. $ - 1]); response.setCompletions(pair.scope_, expression, cursorPosition, CompletionType.calltips, beforeTokens[$ - 1] == tok!"["); - response.completions ~= pair.ufcsSymbols.map!(s => makeSymbolCompletionInfo(s, char.init)).array; + response.completions ~= pair.ufcsSymbols.map!(s => makeSymbolCompletionInfo(s, s.kind)).array; response.completionType = CompletionType.calltips; break; default: diff --git a/src/dcd/server/autocomplete/util.d b/src/dcd/server/autocomplete/util.d index e8e435d..8bb84d3 100644 --- a/src/dcd/server/autocomplete/util.d +++ b/src/dcd/server/autocomplete/util.d @@ -614,7 +614,7 @@ bool isUdaExpression(T)(ref T tokens) AutocompleteResponse.Completion makeSymbolCompletionInfo(const DSymbol* symbol, char kind) { string definition; - if ((kind == CompletionKind.variableName || kind == CompletionKind.ufcsName || kind == CompletionKind.memberVariableName) && symbol.type) + 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