clang-tools 17.0.0git
Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for clang::clangd::FileIndex:
Collaboration graph
[legend]

Public Member Functions

 FileIndex ()
 
void updatePreamble (PathRef Path, llvm::StringRef Version, ASTContext &AST, Preprocessor &PP, const CanonicalIncludes &Includes)
 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.
 
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 bool fuzzyFind (const FuzzyFindRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const =0
 Matches symbols in the index fuzzily and applies Callback on each matched symbol before returning.
 
virtual void lookup (const LookupRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const =0
 Looks up symbols with any of the given symbol IDs and applies Callback on each matched symbol.
 
virtual bool refs (const RefsRequest &Req, llvm::function_ref< void(const Ref &)> Callback) const =0
 Finds all occurrences (e.g.
 
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.
 
virtual IndexedFiles indexedFiles () const =0
 
virtual size_t estimateMemoryUsage () const =0
 Returns estimated size of index (in bytes).
 

Additional Inherited Members

- Public Types inherited from clang::clangd::SymbolIndex
using IndexedFiles = llvm::unique_function< IndexContents(llvm::StringRef) const >
 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 109 of file FileIndex.h.

Constructor & Destructor Documentation

◆ FileIndex()

clang::clangd::FileIndex::FileIndex ( )

Definition at line 421 of file FileIndex.cpp.

Member Function Documentation

◆ profile()

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

◆ updateMain()

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

◆ updatePreamble() [1/2]

void clang::clangd::FileIndex::updatePreamble ( IndexFileIn  IF)

◆ updatePreamble() [2/2]

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

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

Definition at line 459 of file FileIndex.cpp.

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

Referenced by updatePreamble().


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