From 8795b2697e533d95b8da954dc00ce1710a32012d Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Thu, 25 Feb 2016 13:00:30 -0800 Subject: [PATCH] Fix #299 --- src/server/autocomplete.d | 9 +++++---- tests/tc030/expected1.txt | 4 ++++ tests/tc030/file.d | 1 + tests/tc030/run.sh | 5 +++++ 4 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 tests/tc030/expected1.txt create mode 100644 tests/tc030/file.d create mode 100755 tests/tc030/run.sh diff --git a/src/server/autocomplete.d b/src/server/autocomplete.d index 09ff5d9..6b47f4a 100644 --- a/src/server/autocomplete.d +++ b/src/server/autocomplete.d @@ -599,7 +599,8 @@ body { auto a = DSymbol(sy.name); if (!builtinSymbols.contains(&a) && sy.name !is null && !h.contains(sy.name) - && sy.name != CONSTRUCTOR_SYMBOL_NAME) + && !sy.skipOver && sy.name != CONSTRUCTOR_SYMBOL_NAME + && isPublicCompletionKind(sy.kind)) { response.completionKinds ~= sy.kind; response.completions ~= sy.name; @@ -607,10 +608,10 @@ body } } - foreach (s; symbols.opSlice()) + foreach (s; symbols.opSlice().filter!(a => !a.skipOver)) { if (s.kind == CompletionKind.importSymbol && s.type !is null) - foreach (sy; s.type.opSlice()) + foreach (sy; s.type.opSlice().filter!(a => !a.skipOver)) addSymbolToResponses(sy); else addSymbolToResponses(s); @@ -938,7 +939,7 @@ void setCompletions(T)(ref AutocompleteResponse response, return; foreach (sym; s.opSlice()) { - if (sym.name !is null && sym.name.length > 0 && sym.kind != CompletionKind.importSymbol + if (sym.name !is null && sym.name.length > 0 && isPublicCompletionKind(sym.kind) && (p is null ? true : sym.name.toUpper().startsWith(p.toUpper())) && !r.completions.canFind(sym.name) && sym.name[0] != '*') diff --git a/tests/tc030/expected1.txt b/tests/tc030/expected1.txt new file mode 100644 index 0000000..585cd53 --- /dev/null +++ b/tests/tc030/expected1.txt @@ -0,0 +1,4 @@ +identifiers +BAR v +FOO v +S s diff --git a/tests/tc030/file.d b/tests/tc030/file.d new file mode 100644 index 0000000..8068a67 --- /dev/null +++ b/tests/tc030/file.d @@ -0,0 +1 @@ +import a : diff --git a/tests/tc030/run.sh b/tests/tc030/run.sh new file mode 100755 index 0000000..13874bb --- /dev/null +++ b/tests/tc030/run.sh @@ -0,0 +1,5 @@ +set -e +set -u + +../../bin/dcd-client $1 file.d -c11 > actual1.txt +diff actual1.txt expected1.txt