From c63fd152bb10fb6ed9bfb79cd3c22274eb1dc8e3 Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Fri, 30 Jan 2015 18:17:01 -0800 Subject: [PATCH] Fix #178 --- src/autocomplete.d | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/autocomplete.d b/src/autocomplete.d index e68a90e..c148c43 100644 --- a/src/autocomplete.d +++ b/src/autocomplete.d @@ -556,6 +556,12 @@ body void setImportCompletions(T)(T tokens, ref AutocompleteResponse response) { response.completionType = CompletionType.identifiers; + string partial = null; + if (tokens[$ - 1].type == tok!"identifier") + { + partial = tokens[$ - 1].text; + tokens = tokens[0 .. $ - 1]; + } auto moduleParts = tokens.filter!(a => a.type == tok!"identifier").map!("a.text").array(); string path = buildPath(moduleParts); @@ -575,15 +581,16 @@ void setImportCompletions(T)(T tokens, ref AutocompleteResponse response) if (name.baseName.startsWith(".#")) continue; - if (isFile(name) && (name.endsWith(".d") || name.endsWith(".di"))) + auto n = name.baseName(".d").baseName(".di"); + if (isFile(name) && (name.endsWith(".d") || name.endsWith(".di")) + && (partial is null || n.startsWith(partial))) { - response.completions ~= name.baseName(".d").baseName(".di"); + response.completions ~= n; response.completionKinds ~= CompletionKind.moduleName; } else if (isDir(name)) { - string n = name.baseName(); - if (n[0] != '.') + if (n[0] != '.' && (partial is null || n.startsWith(partial))) { response.completions ~= n; response.completionKinds ~=