sammccall created this revision. sammccall added a reviewer: kadircet. Herald added subscribers: usaxena95, arphaman. sammccall requested review of this revision. Herald added subscribers: cfe-commits, MaskRay, ilya-biryukov. Herald added a project: clang-tools-extra.
While here, unhide function-arg-placeholders flag. It's reasonable to want and maybe we should consider making it default. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D113765 Files: clang-tools-extra/clangd/CodeComplete.cpp clang-tools-extra/clangd/tool/ClangdMain.cpp clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp Index: clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -2318,6 +2318,15 @@ UnorderedElementsAre(AllOf(Named("foo_class"), SnippetSuffix("<$0>")), AllOf(Named("foo_alias"), SnippetSuffix("<$0>")))); } + { + auto Results = completions( + R"cpp( + #define FOO(x, y) x##f + FO^ )cpp", + {}, Opts); + EXPECT_THAT(Results.Completions, UnorderedElementsAre(AllOf( + Named("FOO"), SnippetSuffix("($0)")))); + } } TEST(CompletionTest, SuggestOverrides) { Index: clang-tools-extra/clangd/tool/ClangdMain.cpp =================================================================== --- clang-tools-extra/clangd/tool/ClangdMain.cpp +++ clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -233,7 +233,6 @@ "function calls. When enabled, completions also contain " "placeholders for method parameters"), init(CodeCompleteOptions().EnableFunctionArgSnippets), - Hidden, }; opt<CodeCompleteOptions::IncludeInsertion> HeaderInsertion{ Index: clang-tools-extra/clangd/CodeComplete.cpp =================================================================== --- clang-tools-extra/clangd/CodeComplete.cpp +++ clang-tools-extra/clangd/CodeComplete.cpp @@ -513,7 +513,8 @@ if (Snippet->empty()) return ""; if (Completion.Kind == CompletionItemKind::Function || - Completion.Kind == CompletionItemKind::Method) { + Completion.Kind == CompletionItemKind::Method || + Completion.Kind == CompletionItemKind::Text /*Macro*/) { // Functions snippets can be of 2 types: // - containing only function arguments, e.g. // foo(${1:int p1}, ${2:int p2});
Index: clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -2318,6 +2318,15 @@ UnorderedElementsAre(AllOf(Named("foo_class"), SnippetSuffix("<$0>")), AllOf(Named("foo_alias"), SnippetSuffix("<$0>")))); } + { + auto Results = completions( + R"cpp( + #define FOO(x, y) x##f + FO^ )cpp", + {}, Opts); + EXPECT_THAT(Results.Completions, UnorderedElementsAre(AllOf( + Named("FOO"), SnippetSuffix("($0)")))); + } } TEST(CompletionTest, SuggestOverrides) { Index: clang-tools-extra/clangd/tool/ClangdMain.cpp =================================================================== --- clang-tools-extra/clangd/tool/ClangdMain.cpp +++ clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -233,7 +233,6 @@ "function calls. When enabled, completions also contain " "placeholders for method parameters"), init(CodeCompleteOptions().EnableFunctionArgSnippets), - Hidden, }; opt<CodeCompleteOptions::IncludeInsertion> HeaderInsertion{ Index: clang-tools-extra/clangd/CodeComplete.cpp =================================================================== --- clang-tools-extra/clangd/CodeComplete.cpp +++ clang-tools-extra/clangd/CodeComplete.cpp @@ -513,7 +513,8 @@ if (Snippet->empty()) return ""; if (Completion.Kind == CompletionItemKind::Function || - Completion.Kind == CompletionItemKind::Method) { + Completion.Kind == CompletionItemKind::Method || + Completion.Kind == CompletionItemKind::Text /*Macro*/) { // Functions snippets can be of 2 types: // - containing only function arguments, e.g. // foo(${1:int p1}, ${2:int p2});
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits