clang-tools 22.0.0git
clang::clangd::FileIndex Class Reference

This manages symbols from files and an in-memory index on all symbols. More...

#include <FileIndex.h>

Inheritance diagram for clang::clangd::FileIndex:
[legend]

Public Member Functions

 FileIndex (bool SupportContainedRefs)
void updatePreamble (PathRef Path, llvm::StringRef Version, ASTContext &AST, Preprocessor &PP, const include_cleaner::PragmaIncludes &PI)
 Update preamble symbols of file Path with all declarations in AST and macros in PP.
void updatePreamble (IndexFileIn)
void updateMain (PathRef Path, ParsedAST &AST)
 Update symbols and references from main file Path with indexMainDecls.
void profile (MemoryTree &MT) const
Public Member Functions inherited from clang::clangd::MergedIndex
 MergedIndex (const SymbolIndex *Dynamic, const SymbolIndex *Static)
bool fuzzyFind (const FuzzyFindRequest &, llvm::function_ref< void(const Symbol &)>) const override
 Matches symbols in the index fuzzily and applies Callback on each matched symbol before returning.
void lookup (const LookupRequest &, llvm::function_ref< void(const Symbol &)>) const override
 Looks up symbols with any of the given symbol IDs and applies Callback on each matched symbol.
bool refs (const RefsRequest &, llvm::function_ref< void(const Ref &)>) const override
 Finds all occurrences (e.g.
bool containedRefs (const ContainedRefsRequest &, llvm::function_ref< void(const ContainedRefsResult &)>) const override
 Find all symbols that are referenced by a symbol and apply Callback on each result.
void relations (const RelationsRequest &, llvm::function_ref< void(const SymbolID &, const Symbol &)>) const override
llvm::unique_function< IndexContents(llvm::StringRef) const > indexedFiles () const override
size_t estimateMemoryUsage () const override
 Returns estimated size of index (in bytes).
Public Member Functions inherited from clang::clangd::SymbolIndex
virtual ~SymbolIndex ()=default
virtual void relations (const RelationsRequest &Req, llvm::function_ref< void(const SymbolID &Subject, const Symbol &Object)> Callback) const =0
 Finds all relations (S, P, O) stored in the index such that S is among Req.Subjects and P is Req.Predicate, and invokes Callback for (S, O) in each.

Additional Inherited Members

Public Types inherited from clang::clangd::SymbolIndex
using IndexedFiles
 Returns function which checks if the specified file was used to build this index or not.

Detailed Description

This manages symbols from files and an in-memory index on all symbols.

FIXME: Expose an interface to remove files that are closed.

Definition at line 110 of file FileIndex.h.

Constructor & Destructor Documentation

◆ FileIndex()

clang::clangd::FileIndex::FileIndex ( bool SupportContainedRefs)

Member Function Documentation

◆ profile()

void clang::clangd::FileIndex::profile ( MemoryTree & MT) const

◆ updateMain()

void clang::clangd::FileIndex::updateMain ( PathRef Path,
ParsedAST & AST )

Update symbols and references from main file Path with indexMainDecls.

Definition at line 471 of file FileIndex.cpp.

References clang::clangd::AST, clang::clangd::URI::create(), clang::clangd::indexMainDecls(), clang::clangd::Light, clang::clangd::Merge, clang::clangd::toString(), and clang::clangd::vlog().

◆ updatePreamble() [1/2]

◆ updatePreamble() [2/2]

void clang::clangd::FileIndex::updatePreamble ( PathRef Path,
llvm::StringRef Version,
ASTContext & AST,
Preprocessor & PP,
const include_cleaner::PragmaIncludes & PI )

Update preamble symbols of file Path with all declarations in AST and macros in PP.

Definition at line 462 of file FileIndex.cpp.

References clang::clangd::AST, clang::clangd::indexHeaderSymbols(), clang::clangd::Preamble, clang::clangd::IndexFileIn::Relations, clang::clangd::IndexFileIn::Symbols, and updatePreamble().

Referenced by updatePreamble().


The documentation for this class was generated from the following files: