More bug fixes for selective import completion
This commit is contained in:
parent
40582c232f
commit
d620f2428a
|
@ -296,26 +296,29 @@ AutocompleteResponse parenCompletion(T)(T beforeTokens,
|
||||||
bool isSelectiveImport(T)(T tokens)
|
bool isSelectiveImport(T)(T tokens)
|
||||||
{
|
{
|
||||||
size_t i = tokens.length - 1;
|
size_t i = tokens.length - 1;
|
||||||
stderr.writeln(stringToken(tokens[i]));
|
|
||||||
if (!(tokens[i] == tok!":" || tokens[i] == tok!","))
|
if (!(tokens[i] == tok!":" || tokens[i] == tok!","))
|
||||||
return false;
|
return false;
|
||||||
i--;
|
bool r = false;
|
||||||
loop: while (true) switch (tokens[i].type)
|
loop: while (true) switch (tokens[i].type)
|
||||||
{
|
{
|
||||||
|
case tok!":":
|
||||||
|
r = true;
|
||||||
|
goto case;
|
||||||
case tok!"identifier":
|
case tok!"identifier":
|
||||||
|
case tok!"=":
|
||||||
case tok!".":
|
case tok!".":
|
||||||
case tok!",":
|
case tok!",":
|
||||||
case tok!":":
|
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
return false;
|
return false;
|
||||||
else
|
else
|
||||||
i--;
|
i--;
|
||||||
break;
|
break;
|
||||||
case tok!"import":
|
case tok!"import":
|
||||||
return true;
|
return r;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
unittest
|
unittest
|
||||||
|
@ -350,12 +353,12 @@ in
|
||||||
}
|
}
|
||||||
body
|
body
|
||||||
{
|
{
|
||||||
Log.trace("selectiveImportCompletion");
|
|
||||||
AutocompleteResponse response;
|
AutocompleteResponse response;
|
||||||
size_t i = beforeTokens.length - 2;
|
size_t i = beforeTokens.length - 2;
|
||||||
loop: while (i > 0) switch (beforeTokens[i].type)
|
loop: while (i > 0) switch (beforeTokens[i].type)
|
||||||
{
|
{
|
||||||
case tok!"identifier":
|
case tok!"identifier":
|
||||||
|
case tok!"=":
|
||||||
case tok!",":
|
case tok!",":
|
||||||
case tok!".":
|
case tok!".":
|
||||||
case tok!":":
|
case tok!":":
|
||||||
|
@ -364,14 +367,12 @@ body
|
||||||
default:
|
default:
|
||||||
break loop;
|
break loop;
|
||||||
}
|
}
|
||||||
Log.trace("i = ", i);
|
|
||||||
size_t j = i;
|
size_t j = i;
|
||||||
loop2: while (j <= beforeTokens.length) switch (beforeTokens[j].type)
|
loop2: while (j <= beforeTokens.length) switch (beforeTokens[j].type)
|
||||||
{
|
{
|
||||||
case tok!":": break loop2;
|
case tok!":": break loop2;
|
||||||
default: j++; break;
|
default: j++; break;
|
||||||
}
|
}
|
||||||
Log.trace("j = ", j);
|
|
||||||
|
|
||||||
string path;
|
string path;
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue