summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Liu <ioeric@google.com>2017-12-20 09:29:54 +0000
committerEric Liu <ioeric@google.com>2017-12-20 09:29:54 +0000
commit125cda7d3b31629aa068393254e5766f00a5e3c1 (patch)
tree38aa86df3a793a93d4cc2f21023fb6eea3ef463e
parent700a28a764e8d8523df456d8c54c366c5f8c53c7 (diff)
downloadbcm5719-llvm-125cda7d3b31629aa068393254e5766f00a5e3c1.tar.gz
bcm5719-llvm-125cda7d3b31629aa068393254e5766f00a5e3c1.zip
[clangd] Igore cases in index fuzzy find.
llvm-svn: 321157
-rw-r--r--clang-tools-extra/clangd/index/MemIndex.cpp2
-rw-r--r--clang-tools-extra/unittests/clangd/IndexTests.cpp10
2 files changed, 11 insertions, 1 deletions
diff --git a/clang-tools-extra/clangd/index/MemIndex.cpp b/clang-tools-extra/clangd/index/MemIndex.cpp
index 84db3274117..d0d8084f471 100644
--- a/clang-tools-extra/clangd/index/MemIndex.cpp
+++ b/clang-tools-extra/clangd/index/MemIndex.cpp
@@ -49,7 +49,7 @@ bool MemIndex::fuzzyFind(const Context &Ctx, const FuzzyFindRequest &Req,
continue;
// FIXME(ioeric): use fuzzy matcher.
- if (StringRef(StringRef(Sym->Name).lower()).contains(Req.Query)) {
+ if (StringRef(Sym->Name).find_lower(Req.Query) != StringRef::npos) {
if (++Matched > Req.MaxCandidateCount)
return false;
Callback(*Sym);
diff --git a/clang-tools-extra/unittests/clangd/IndexTests.cpp b/clang-tools-extra/unittests/clangd/IndexTests.cpp
index ea0ea794cb9..a556424c0bd 100644
--- a/clang-tools-extra/unittests/clangd/IndexTests.cpp
+++ b/clang-tools-extra/unittests/clangd/IndexTests.cpp
@@ -178,6 +178,16 @@ TEST(MemIndexTest, NoMatchNestedScopes) {
EXPECT_THAT(match(I, Req), UnorderedElementsAre("a::xyz"));
}
+TEST(MemIndexTest, IgnoreCases) {
+ MemIndex I;
+ I.build(generateSymbols({"ns::ABC", "ns::abc"}));
+ FuzzyFindRequest Req;
+ Req.Query = "AB";
+ Req.Scopes = {"ns"};
+ auto Matches = match(I, Req);
+ EXPECT_THAT(match(I, Req), UnorderedElementsAre("ns::ABC", "ns::abc"));
+}
+
} // namespace
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud