diff --git a/src/dcd/server/autocomplete/complete.d b/src/dcd/server/autocomplete/complete.d index 657833a..3ac6e85 100644 --- a/src/dcd/server/autocomplete/complete.d +++ b/src/dcd/server/autocomplete/complete.d @@ -59,7 +59,8 @@ public AutocompleteResponse complete(const AutocompleteRequest request, request.cursorPosition, stringCache, tokenArray); // allows to get completion on keyword, typically "is" - if (beforeTokens.length && isKeyword(beforeTokens[$-1].type)) + if (beforeTokens.length && + (isKeyword(beforeTokens[$-1].type) || isBasicType(beforeTokens[$-1].type))) { Token* fakeIdent = cast(Token*) (&beforeTokens[$-1]); fakeIdent.text = str(fakeIdent.type); diff --git a/tests/tc_complete_kw/expected3.txt b/tests/tc_complete_kw/expected3.txt new file mode 100644 index 0000000..2c6ad48 --- /dev/null +++ b/tests/tc_complete_kw/expected3.txt @@ -0,0 +1,2 @@ +identifiers +internal v diff --git a/tests/tc_complete_kw/file3.d b/tests/tc_complete_kw/file3.d new file mode 100644 index 0000000..279a0ab --- /dev/null +++ b/tests/tc_complete_kw/file3.d @@ -0,0 +1 @@ +struct Member{int internal;}void main(){Member member;member.int } diff --git a/tests/tc_complete_kw/run.sh b/tests/tc_complete_kw/run.sh index 0d34510..35b15c1 100755 --- a/tests/tc_complete_kw/run.sh +++ b/tests/tc_complete_kw/run.sh @@ -6,3 +6,6 @@ diff actual1.txt expected1.txt ../../bin/dcd-client $1 file2.d -c42 > actual2.txt diff actual2.txt expected1.txt + +../../bin/dcd-client $1 file3.d -c64 > actual3.txt +diff actual3.txt expected3.txt