16 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_INDEX_FILEINDEX_H 17 #define LLVM_CLANG_TOOLS_EXTRA_CLANGD_INDEX_FILEINDEX_H 23 #include "clang/Lex/Preprocessor.h" 62 void update(
PathRef Path, std::unique_ptr<SymbolSlab> Slab,
63 std::unique_ptr<RefSlab> Refs);
66 std::unique_ptr<SymbolIndex>
71 mutable std::mutex Mutex;
74 llvm::StringMap<std::shared_ptr<SymbolSlab>> FileToSymbols;
76 llvm::StringMap<std::shared_ptr<RefSlab>> FileToRefs;
88 std::shared_ptr<Preprocessor> PP);
129 std::shared_ptr<Preprocessor> PP);
134 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANGD_INDEX_FILEINDEX_H
SymbolSlab indexHeaderSymbols(ASTContext &AST, std::shared_ptr< Preprocessor > PP)
Idex declarations from AST and macros from PP that are declared in included headers.
IndexType
Select between in-memory index implementations, which have tradeoffs.
A container of Symbols from several source files.
This manages symbols from files and an in-memory index on all symbols.
llvm::StringRef PathRef
A typedef to represent a ref to file path.
static llvm::cl::opt< bool > UseDex("use-dex-index", llvm::cl::desc("Use experimental Dex dynamic index."), llvm::cl::init(false), llvm::cl::Hidden)
DuplicateHandling
How to handle duplicated symbols across multiple files.
std::pair< SymbolSlab, RefSlab > indexMainDecls(ParsedAST &AST)
Retrieves symbols and refs of local top level decls in AST (i.e.
std::string Path
A typedef to represent a file path.
Stores and provides access to parsed AST.
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//