clang-tools 22.0.0git
|
Interface for symbol indexes that can be used for searching or matching symbols among a set of symbols based on names or unique IDs. More...
#include <Index.h>
Public Types | |
using | IndexedFiles |
Returns function which checks if the specified file was used to build this index or not. |
Public Member Functions | |
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 bool | containedRefs (const ContainedRefsRequest &Req, llvm::function_ref< void(const ContainedRefsResult &)> Callback) const =0 |
Find all symbols that are referenced by a symbol and apply Callback on each result. | |
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). |
Interface for symbol indexes that can be used for searching or matching symbols among a set of symbols based on names or unique IDs.
Returns function which checks if the specified file was used to build this index or not.
The function must only be called while the index is alive.
|
virtualdefault |
|
pure virtual |
Find all symbols that are referenced by a symbol and apply Callback
on each result.
Results should be returned in arbitrary order. The returned result must be deep-copied if it's used outside Callback.
Returns true if there will be more results (limited by Req.Limit);
Implemented in clang::clangd::dex::Dex, clang::clangd::MemIndex, clang::clangd::MergedIndex, and clang::clangd::SwapIndex.
Referenced by clang::clangd::outgoingCalls().
|
pure virtual |
Returns estimated size of index (in bytes).
Implemented in clang::clangd::dex::Dex, clang::clangd::MemIndex, clang::clangd::MergedIndex, and clang::clangd::SwapIndex.
|
pure virtual |
Matches symbols in the index fuzzily and applies Callback
on each matched symbol before returning.
If returned Symbols are used outside Callback, they must be deep-copied!
Returns true if there may be more results (limited by Req.Limit).
Implemented in clang::clangd::dex::Dex, clang::clangd::MemIndex, clang::clangd::MergedIndex, and clang::clangd::SwapIndex.
Referenced by clang::clangd::getWorkspaceSymbols(), clang::clangd::locateSymbolTextually(), clang::clangd::match(), and clang::clangd::runFuzzyFind().
|
pure virtual |
Implemented in clang::clangd::dex::Dex, clang::clangd::MemIndex, clang::clangd::MergedIndex, and clang::clangd::SwapIndex.
|
pure virtual |
Looks up symbols with any of the given symbol IDs and applies Callback
on each matched symbol.
The returned symbol must be deep-copied if it's used outside Callback.
Implemented in clang::clangd::dex::Dex, clang::clangd::MemIndex, clang::clangd::MergedIndex, and clang::clangd::SwapIndex.
Referenced by clang::clangd::findReferences(), clang::clangd::getCorrespondingHeaderOrSource(), clang::clangd::incomingCalls(), clang::clangd::lookup(), clang::clangd::outgoingCalls(), and clang::clangd::superTypes().
|
pure virtual |
Finds all occurrences (e.g.
references, declarations, definitions) of symbols and applies Callback
on each result.
Results should be returned in arbitrary order. The returned result must be deep-copied if it's used outside Callback. FIXME: there's no indication which result references which symbol.
Returns true if there will be more results (limited by Req.Limit);
Implemented in clang::clangd::dex::Dex, clang::clangd::MemIndex, clang::clangd::MergedIndex, and clang::clangd::SwapIndex.
Referenced by clang::clangd::findReferences(), clang::clangd::getRefs(), and clang::clangd::incomingCalls().
|
pure virtual |
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.
References clang::clangd::Object.
Referenced by clang::clangd::fillSubTypes(), and clang::clangd::findReferences().