[clang-tools-extra] r361623 - [CodeComplete] Filter override completions by function name
Ilya Biryukov via cfe-commits
cfe-commits at lists.llvm.org
Fri May 24 03:18:39 PDT 2019
Author: ibiryukov
Date: Fri May 24 03:18:39 2019
New Revision: 361623
URL: http://llvm.org/viewvc/llvm-project?rev=361623&view=rev
Log:
[CodeComplete] Filter override completions by function name
Summary:
We put only part of the signature starting with a function name into "typed text"
chunks now, previously the whole signature was "typed text".
This leads to meaningful fuzzy match scores, giving better signals to
compare with other completion items.
Ideally, we would not display the result type to the user, but that requires adding
a new kind of completion chunk.
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: jkorous, arphaman, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62298
Modified:
clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp
Modified: clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp?rev=361623&r1=361622&r2=361623&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp (original)
+++ clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp Fri May 24 03:18:39 2019
@@ -49,6 +49,9 @@ class IgnoreDiagnostics : public Diagnos
// GMock helpers for matching completion items.
MATCHER_P(Named, Name, "") { return arg.Name == Name; }
+MATCHER_P(NameStartsWith, Prefix, "") {
+ return llvm::StringRef(arg.Name).startswith(Prefix);
+}
MATCHER_P(Scope, S, "") { return arg.Scope == S; }
MATCHER_P(Qualifier, Q, "") { return arg.RequiredQualifier == Q; }
MATCHER_P(Labeled, Label, "") {
@@ -1946,10 +1949,13 @@ TEST(CompletionTest, SuggestOverrides) {
};
)cpp");
const auto Results = completions(Text);
- EXPECT_THAT(Results.Completions,
- AllOf(Contains(Labeled("void vfunc(bool param, int p) override")),
- Contains(Labeled("void ttt(bool param) const override")),
- Not(Contains(Labeled("void vfunc(bool param) override")))));
+ EXPECT_THAT(
+ Results.Completions,
+ AllOf(Contains(AllOf(Labeled("void vfunc(bool param, int p) override"),
+ NameStartsWith("vfunc"))),
+ Contains(AllOf(Labeled("void ttt(bool param) const override"),
+ NameStartsWith("ttt"))),
+ Not(Contains(Labeled("void vfunc(bool param) override")))));
}
TEST(CompletionTest, OverridesNonIdentName) {
More information about the cfe-commits
mailing list