diff options
Diffstat (limited to 'clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp index 8f8376e25bc..4dcb8701a35 100644 --- a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -2382,6 +2382,28 @@ TEST(CompletionTest, ObjectiveCMethodTwoArgumentsFromMiddle) { EXPECT_THAT(C, ElementsAre(SnippetSuffix("${1:(unsigned int)}"))); } +TEST(CompletionTest, CursorInSnippets) { + clangd::CodeCompleteOptions Options; + Options.EnableSnippets = true; + auto Results = completions( + R"cpp( + void while_foo(int a, int b); + void test() { + whil^ + })cpp", + /*IndexSymbols=*/{}, Options); + + // Last placeholder in code patterns should be $0 to put the cursor there. + EXPECT_THAT( + Results.Completions, + Contains(AllOf(Named("while"), + SnippetSuffix("(${1:condition}){${0:statements}\n}")))); + // However, snippets for functions must *not* end with $0. + EXPECT_THAT(Results.Completions, + Contains(AllOf(Named("while_foo"), + SnippetSuffix("(${1:int a}, ${2:int b})")))); +} + TEST(CompletionTest, WorksWithNullType) { auto R = completions(R"cpp( int main() { |

