clang-tools  10.0.0svn
Public Member Functions | List of all members
clang::clangd::SymbolIndex Class Referenceabstract

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>

Inheritance diagram for clang::clangd::SymbolIndex:
Inheritance graph
[legend]

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. More...
 
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. More...
 
virtual void refs (const RefsRequest &Req, llvm::function_ref< void(const Ref &)> Callback) const =0
 Finds all occurrences (e.g. More...
 
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...
 
virtual size_t estimateMemoryUsage () const =0
 Returns estimated size of index (in bytes). More...
 

Detailed Description

Interface for symbol indexes that can be used for searching or matching symbols among a set of symbols based on names or unique IDs.

Definition at line 85 of file Index.h.

Constructor & Destructor Documentation

◆ ~SymbolIndex()

virtual clang::clangd::SymbolIndex::~SymbolIndex ( )
virtualdefault

Member Function Documentation

◆ estimateMemoryUsage()

virtual size_t clang::clangd::SymbolIndex::estimateMemoryUsage ( ) const
pure virtual

◆ fuzzyFind()

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

Referenced by clang::clangd::runFuzzyFind().

◆ lookup()

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

Referenced by clang::clangd::lookup().

◆ refs()

virtual void clang::clangd::SymbolIndex::refs ( const RefsRequest Req,
llvm::function_ref< void(const Ref &)>  Callback 
) const
pure virtual

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.

Implemented in clang::clangd::SwapIndex, clang::clangd::dex::Dex, clang::clangd::MemIndex, and clang::clangd::MergedIndex.

◆ relations()

virtual void clang::clangd::SymbolIndex::relations ( const RelationsRequest Req,
llvm::function_ref< void(const SymbolID &Subject, const Symbol &Object)>  Callback 
) const
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.

Referenced by clang::clangd::MergedIndex::relations().


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