clang-tools
10.0.0
|
In-memory Dex trigram-based index implementation. More...
#include <Dex.h>
Public Member Functions | |
template<typename SymbolRange , typename RefsRange , typename RelationsRange > | |
Dex (SymbolRange &&Symbols, RefsRange &&Refs, RelationsRange &&Relations) | |
template<typename SymbolRange , typename RefsRange , typename RelationsRange , typename Payload > | |
Dex (SymbolRange &&Symbols, RefsRange &&Refs, RelationsRange &&Relations, Payload &&BackingData, size_t BackingDataSize) | |
bool | fuzzyFind (const FuzzyFindRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const override |
Constructs iterators over tokens extracted from the query and exhausts it while applying Callback to each symbol in the order of decreasing quality of the matched symbols. More... | |
void | lookup (const LookupRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const override |
Looks up symbols with any of the given symbol IDs and applies Callback on each matched symbol. More... | |
bool | refs (const RefsRequest &Req, llvm::function_ref< void(const Ref &)> Callback) const override |
Finds all occurrences (e.g. More... | |
void | relations (const RelationsRequest &Req, llvm::function_ref< void(const SymbolID &, const Symbol &)> Callback) const override |
size_t | estimateMemoryUsage () const override |
Returns estimated size of index (in bytes). More... | |
![]() | |
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. More... | |
Static Public Member Functions | |
static std::unique_ptr< SymbolIndex > | build (SymbolSlab, RefSlab, RelationSlab) |
Builds an index from slabs. The index takes ownership of the slab. More... | |
|
inline |
|
inline |
Definition at line 61 of file Dex.h.
References build(), estimateMemoryUsage(), fuzzyFind(), lookup(), refs(), and relations().
|
static |
|
overridevirtual |
Returns estimated size of index (in bytes).
Implements clang::clangd::SymbolIndex.
Definition at line 291 of file Dex.cpp.
Referenced by Dex().
|
overridevirtual |
Constructs iterators over tokens extracted from the query and exhausts it while applying Callback to each symbol in the order of decreasing quality of the matched symbols.
Implements clang::clangd::SymbolIndex.
Definition at line 163 of file Dex.cpp.
References clang::clangd::FuzzyFindRequest::Query.
Referenced by Dex().
|
overridevirtual |
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.
Implements clang::clangd::SymbolIndex.
Definition at line 242 of file Dex.cpp.
Referenced by Dex().
|
overridevirtual |
Finds all occurrences (e.g.
references, declarations, definitions) of a symbol 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.
Returns true if there will be more results (limited by Req.Limit);
Implements clang::clangd::SymbolIndex.
Definition at line 252 of file Dex.cpp.
Referenced by Dex().
|
override |