refixing ufcs calltips
This commit is contained in:
parent
2fd33fc27f
commit
0c22a2bf7e
|
@ -311,6 +311,7 @@ bool isCallableWithArg(DSymbol* incomingSymbol, const(DSymbol)* beforeDotType, b
|
||||||
.functionParameters.front.type.name)
|
.functionParameters.front.type.name)
|
||||||
|| matchAliasThis(beforeDotType, incomingSymbol, recursionDepth))
|
|| matchAliasThis(beforeDotType, incomingSymbol, recursionDepth))
|
||||||
{
|
{
|
||||||
|
incomingSymbol.kind = CompletionKind.ufcsName;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -221,7 +221,7 @@ AutocompleteResponse dotCompletion(T)(T beforeTokens, const(Token)[] tokenArray,
|
||||||
scope(exit) pair.destroy();
|
scope(exit) pair.destroy();
|
||||||
response.setCompletions(pair.scope_, getExpression(beforeTokens),
|
response.setCompletions(pair.scope_, getExpression(beforeTokens),
|
||||||
cursorPosition, CompletionType.identifiers, false, partial);
|
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;
|
break;
|
||||||
// these tokens before a "." mean "Module Scope Operator"
|
// these tokens before a "." mean "Module Scope Operator"
|
||||||
case tok!":":
|
case tok!":":
|
||||||
|
@ -308,7 +308,7 @@ AutocompleteResponse parenCompletion(T)(T beforeTokens,
|
||||||
auto expression = getExpression(beforeTokens[0 .. $ - 1]);
|
auto expression = getExpression(beforeTokens[0 .. $ - 1]);
|
||||||
response.setCompletions(pair.scope_, expression,
|
response.setCompletions(pair.scope_, expression,
|
||||||
cursorPosition, CompletionType.calltips, beforeTokens[$ - 1] == tok!"[");
|
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;
|
response.completionType = CompletionType.calltips;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -614,7 +614,7 @@ bool isUdaExpression(T)(ref T tokens)
|
||||||
AutocompleteResponse.Completion makeSymbolCompletionInfo(const DSymbol* symbol, char kind)
|
AutocompleteResponse.Completion makeSymbolCompletionInfo(const DSymbol* symbol, char kind)
|
||||||
{
|
{
|
||||||
string definition;
|
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;
|
definition = symbol.type.name ~ ' ' ~ symbol.name;
|
||||||
else if (kind == CompletionKind.enumMember)
|
else if (kind == CompletionKind.enumMember)
|
||||||
definition = symbol.name; // TODO: add enum value to definition string
|
definition = symbol.name; // TODO: add enum value to definition string
|
||||||
|
|
Loading…
Reference in New Issue