[PATCH] D128821: [clangd][ObjC] Fix ObjC method definition completion
David Goldman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 1 07:00:22 PDT 2022
dgoldman updated this revision to Diff 441685.
dgoldman added a comment.
- Use codeCompletionString(Result) for RK_Pattern
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128821/new/
https://reviews.llvm.org/D128821
Files:
clang-tools-extra/clangd/CodeComplete.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
@@ -3131,6 +3131,26 @@
EXPECT_THAT(C, ElementsAre(signature("(char)c secondArgument:(id)object")));
}
+TEST(CompletionTest, ObjectiveCMethodDeclarationFilterOnEntireSelector) {
+ auto Results = completions(R"objc(
+ @interface Foo
+ - (int)valueForCharacter:(char)c secondArgument:(id)object;
+ @end
+ @implementation Foo
+ secondArg^
+ @end
+ )objc",
+ /*IndexSymbols=*/{},
+ /*Opts=*/{}, "Foo.m");
+
+ auto C = Results.Completions;
+ EXPECT_THAT(C, ElementsAre(named("valueForCharacter:")));
+ EXPECT_THAT(C, ElementsAre(filterText("valueForCharacter:secondArgument:")));
+ EXPECT_THAT(C, ElementsAre(kind(CompletionItemKind::Method)));
+ EXPECT_THAT(C, ElementsAre(qualifier("- (int)")));
+ EXPECT_THAT(C, ElementsAre(signature("(char)c secondArgument:(id)object")));
+}
+
TEST(CompletionTest, ObjectiveCMethodDeclarationPrefixTyped) {
auto Results = completions(R"objc(
@interface Foo
Index: clang-tools-extra/clangd/CodeComplete.cpp
===================================================================
--- clang-tools-extra/clangd/CodeComplete.cpp
+++ clang-tools-extra/clangd/CodeComplete.cpp
@@ -861,7 +861,7 @@
case CodeCompletionResult::RK_Macro:
return Result.Macro->getName();
case CodeCompletionResult::RK_Pattern:
- return Result.Pattern->getTypedText();
+ break;
}
auto *CCS = codeCompletionString(Result);
const CodeCompletionString::Chunk *OnlyText = nullptr;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D128821.441685.patch
Type: text/x-patch
Size: 1784 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220701/6668a7f9/attachment.bin>
More information about the cfe-commits
mailing list