9#ifndef LLVM_CLANG_LIB_INDEX_INDEXINGCONTEXT_H
10#define LLVM_CLANG_LIB_INDEX_INDEXINGCONTEXT_H
17#include "llvm/ADT/ArrayRef.h"
43 std::unique_ptr<HeuristicResolver> Resolver;
83 const DeclContext *DC =
nullptr);
86 const NamedDecl *Parent,
const DeclContext *DC,
89 const Expr *RefE =
nullptr);
104 void indexTagDecl(
const TagDecl *D, ArrayRef<SymbolRelation> Relations = {});
107 const DeclContext *DC =
nullptr,
109 bool isIBType =
false);
112 const DeclContext *DC =
nullptr,
114 bool isIBType =
false);
117 const NamedDecl *Parent,
118 const DeclContext *DC =
nullptr);
122 void indexBody(
const Stmt *S,
const NamedDecl *Parent,
123 const DeclContext *DC =
nullptr);
129 bool shouldIgnoreIfImplicit(
const Decl *D);
131 bool shouldIndexMacroOccurrence(
bool IsRef, SourceLocation Loc);
133 bool handleDeclOccurrence(
const Decl *D, SourceLocation Loc,
134 bool IsRef,
const Decl *Parent,
136 ArrayRef<SymbolRelation> Relations,
139 const DeclContext *ContainerDC);
Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
Defines the clang::MacroInfo and clang::MacroDirective classes.
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
DeclContext - This is used only as base class of specific decl types that can act as declaration cont...
Decl - This represents one declaration (or definition), e.g.
This represents one expression.
Describes a module import declaration, which makes the contents of the named module visible in the cu...
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
This represents a decl that may have a name.
A C++ nested-name-specifier augmented with source location information.
ObjCMethodDecl - Represents an instance or class method declaration.
Encodes a location in the source.
Stmt - This represents one statement.
Represents the declaration of a struct/union/class/enum.
Base wrapper for a particular "section" of type source info.
A container of type source information.
void setASTContext(ASTContext &ctx)
bool shouldIndexImplicitInstantiation() const
IndexDataConsumer & getDataConsumer()
bool importedModule(const ImportDecl *ImportD)
bool handleDecl(const Decl *D, SymbolRoleSet Roles=SymbolRoleSet(), ArrayRef< SymbolRelation > Relations={})
HeuristicResolver * getResolver() const
bool shouldIndex(const Decl *D)
bool indexDeclContext(const DeclContext *DC)
bool handleReference(const NamedDecl *D, SourceLocation Loc, const NamedDecl *Parent, const DeclContext *DC, SymbolRoleSet Roles=SymbolRoleSet(), ArrayRef< SymbolRelation > Relations={}, const Expr *RefE=nullptr)
void indexTagDecl(const TagDecl *D, ArrayRef< SymbolRelation > Relations={})
bool shouldIndexFunctionLocalSymbols() const
const IndexingOptions & getIndexOpts() const
void indexNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS, const NamedDecl *Parent, const DeclContext *DC=nullptr)
void handleMacroReference(const IdentifierInfo &Name, SourceLocation Loc, const MacroInfo &MD)
bool indexTopLevelDecl(const Decl *D)
void indexTypeLoc(TypeLoc TL, const NamedDecl *Parent, const DeclContext *DC=nullptr, bool isBase=false, bool isIBType=false)
bool shouldIndexTemplateParameters() const
void indexBody(const Stmt *S, const NamedDecl *Parent, const DeclContext *DC=nullptr)
IndexingContext(IndexingOptions IndexOpts, IndexDataConsumer &DataConsumer)
bool shouldIndexParametersInDeclarations() const
bool indexDeclGroupRef(DeclGroupRef DG)
void handleMacroUndefined(const IdentifierInfo &Name, SourceLocation Loc, const MacroInfo &MI)
static bool isTemplateImplicitInstantiation(const Decl *D)
bool shouldSuppressRefs() const
const LangOptions & getLangOpts() const
bool indexDecl(const Decl *D)
void handleMacroDefined(const IdentifierInfo &Name, SourceLocation Loc, const MacroInfo &MI)
void indexTypeSourceInfo(TypeSourceInfo *TInfo, const NamedDecl *Parent, const DeclContext *DC=nullptr, bool isBase=false, bool isIBType=false)
The JSON file list parser is used to communicate input to InstallAPI.