Merge pull request #467 from BBasile/issue-382
fix #382 - No completion when current string is a keyword merged-on-behalf-of: BBasile <BBasile@users.noreply.github.com>
This commit is contained in:
commit
22ecbbf5c6
|
@ -57,6 +57,15 @@ public AutocompleteResponse complete(const AutocompleteRequest request,
|
||||||
auto stringCache = StringCache(StringCache.defaultBucketCount);
|
auto stringCache = StringCache(StringCache.defaultBucketCount);
|
||||||
auto beforeTokens = getTokensBeforeCursor(request.sourceCode,
|
auto beforeTokens = getTokensBeforeCursor(request.sourceCode,
|
||||||
request.cursorPosition, stringCache, tokenArray);
|
request.cursorPosition, stringCache, tokenArray);
|
||||||
|
|
||||||
|
// allows to get completion on keyword, typically "is"
|
||||||
|
if (beforeTokens.length && isKeyword(beforeTokens[$-1].type))
|
||||||
|
{
|
||||||
|
Token* fakeIdent = cast(Token*) (&beforeTokens[$-1]);
|
||||||
|
fakeIdent.text = str(fakeIdent.type);
|
||||||
|
fakeIdent.type = tok!"identifier";
|
||||||
|
}
|
||||||
|
|
||||||
if (beforeTokens.length >= 2)
|
if (beforeTokens.length >= 2)
|
||||||
{
|
{
|
||||||
if (beforeTokens[$ - 1] == tok!"(" || beforeTokens[$ - 1] == tok!"["
|
if (beforeTokens[$ - 1] == tok!"(" || beforeTokens[$ - 1] == tok!"["
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
identifiers
|
||||||
|
isBig v
|
|
@ -0,0 +1 @@
|
||||||
|
bool isBig; void foo(){is}
|
|
@ -0,0 +1 @@
|
||||||
|
struct F{bool isBig;} void foo(){F f; f.is}
|
|
@ -0,0 +1,8 @@
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
../../bin/dcd-client $1 file1.d -c25 > actual1.txt
|
||||||
|
diff actual1.txt expected1.txt
|
||||||
|
|
||||||
|
../../bin/dcd-client $1 file2.d -c42 > actual2.txt
|
||||||
|
diff actual2.txt expected1.txt
|
Loading…
Reference in New Issue