clang-tools  9.0.0
Public Member Functions | Static Public Member Functions | List of all members
clang::clangd::dex::Dex Class Reference

In-memory Dex trigram-based index implementation. More...

#include <Dex.h>

Inheritance diagram for clang::clangd::dex::Dex:
[legend]
Collaboration diagram for clang::clangd::dex::Dex:
[legend]

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...
 
void 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...
 
- 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. More...
 

Static Public Member Functions

static std::unique_ptr< SymbolIndexbuild (SymbolSlab, RefSlab, RelationSlab)
 Builds an index from slabs. The index takes ownership of the slab. More...
 

Detailed Description

In-memory Dex trigram-based index implementation.

Definition at line 41 of file Dex.h.

Constructor & Destructor Documentation

◆ Dex() [1/2]

template<typename SymbolRange , typename RefsRange , typename RelationsRange >
clang::clangd::dex::Dex::Dex ( SymbolRange &&  Symbols,
RefsRange &&  Refs,
RelationsRange &&  Relations 
)
inline

Definition at line 45 of file Dex.h.

◆ Dex() [2/2]

template<typename SymbolRange , typename RefsRange , typename RelationsRange , typename Payload >
clang::clangd::dex::Dex::Dex ( SymbolRange &&  Symbols,
RefsRange &&  Refs,
RelationsRange &&  Relations,
Payload &&  BackingData,
size_t  BackingDataSize 
)
inline

Definition at line 59 of file Dex.h.

References build(), estimateMemoryUsage(), fuzzyFind(), lookup(), refs(), and relations().

Member Function Documentation

◆ build()

std::unique_ptr< SymbolIndex > clang::clangd::dex::Dex::build ( SymbolSlab  Symbols,
RefSlab  Refs,
RelationSlab  Rels 
)
static

Builds an index from slabs. The index takes ownership of the slab.

Definition at line 26 of file Dex.cpp.

Referenced by Dex().

◆ estimateMemoryUsage()

size_t clang::clangd::dex::Dex::estimateMemoryUsage ( ) const
overridevirtual

Returns estimated size of index (in bytes).

Implements clang::clangd::SymbolIndex.

Definition at line 287 of file Dex.cpp.

Referenced by Dex().

◆ fuzzyFind()

bool clang::clangd::dex::Dex::fuzzyFind ( const FuzzyFindRequest Req,
llvm::function_ref< void(const Symbol &)>  Callback 
) const
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().

◆ lookup()

void clang::clangd::dex::Dex::lookup ( const LookupRequest Req,
llvm::function_ref< void(const Symbol &)>  Callback 
) const
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().

◆ refs()

void clang::clangd::dex::Dex::refs ( const RefsRequest Req,
llvm::function_ref< void(const Ref &)>  Callback 
) const
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.

Implements clang::clangd::SymbolIndex.

Definition at line 252 of file Dex.cpp.

Referenced by Dex().

◆ relations()

void clang::clangd::dex::Dex::relations ( const RelationsRequest Req,
llvm::function_ref< void(const SymbolID &, const Symbol &)>  Callback 
) const
override

Definition at line 266 of file Dex.cpp.

Referenced by Dex().


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