[PATCH] D85426: [clangd] Implement FileFilter for the indexer
Kirill Bobyrev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 8 04:58:05 PDT 2020
kbobyrev updated this revision to Diff 290453.
kbobyrev added a comment.
Also check if deinition comes from unwwanted file (e.g. omit forward declarations).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D85426/new/
https://reviews.llvm.org/D85426
Files:
clang-tools-extra/clangd/index/SymbolCollector.cpp
Index: clang-tools-extra/clangd/index/SymbolCollector.cpp
===================================================================
--- clang-tools-extra/clangd/index/SymbolCollector.cpp
+++ clang-tools-extra/clangd/index/SymbolCollector.cpp
@@ -256,6 +256,11 @@
assert(ASTCtx && PP.get() && "ASTContext and Preprocessor must be set.");
assert(CompletionAllocator && CompletionTUInfo);
assert(ASTNode.OrigD);
+ auto &SM = ASTCtx->getSourceManager();
+ if (!SM.isWrittenInBuiltinFile(Loc) &&
+ (!shouldIndexFile(SM.getFileID(Loc)) ||
+ !shouldIndexFile(SM.getFileID(D->getLocation()))))
+ return true;
// Indexing API puts canonical decl into D, which might not have a valid
// source location for implicit/built-in decls. Fallback to original decl in
// such cases.
@@ -298,7 +303,6 @@
// Mark D as referenced if this is a reference coming from the main file.
// D may not be an interesting symbol, but it's cheaper to check at the end.
- auto &SM = ASTCtx->getSourceManager();
if (Opts.CountReferences &&
(Roles & static_cast<unsigned>(index::SymbolRole::Reference)) &&
SM.getFileID(SM.getSpellingLoc(Loc)) == SM.getMainFileID())
@@ -405,6 +409,9 @@
return true;
const auto &SM = PP->getSourceManager();
+ if (!SM.isWrittenInBuiltinFile(Loc) && !shouldIndexFile(SM.getFileID(Loc)))
+ return true;
+
auto DefLoc = MI->getDefinitionLoc();
// Also avoid storing predefined macros like __DBL_MIN__.
if (SM.isWrittenInBuiltinFile(DefLoc))
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85426.290453.patch
Type: text/x-patch
Size: 1512 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200908/bb49f914/attachment.bin>
More information about the cfe-commits
mailing list