More bug fixes for selective import completion

This commit is contained in:
Hackerpilot 2014-08-06 07:53:44 +00:00
parent 40582c232f
commit d620f2428a
1 changed files with 8 additions and 7 deletions

View File

@ -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;
{ {