clang: include/clang/Sema/SemaCodeCompletion.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_CLANG_SEMA_SEMACODECOMPLETION_H

14#define LLVM_CLANG_SEMA_SEMACODECOMPLETION_H

15

29#include "llvm/ADT/StringRef.h"

30#include

31

33class DeclGroupRef;

34class MacroInfo;

35class Scope;

36class TemplateName;

37

39public:

41

44

45

48

49

51

53

55

56

58

59

61

62

64

65

67

68

70

72

73

75

76

78

79

81

82

83

85

87

88

90

91

93

95 };

96

101 bool AllowNestedNameSpecifiers);

102

103 struct CodeCompleteExpressionData;

106 bool IsParenthesized = false);

109 bool IsBaseExprStatement,

123 };

128

129

130

131

132

133

134

135

141 bool Braced);

145 bool Braced);

149

150

151

156

158 bool IsUsingDeclaration, QualType BaseType,

167

169 bool AfterAmpersand);

171

180 bool IsParameter);

184 bool AtArgumentExpression);

187 bool AtArgumentExpression,

188 bool IsSuper = false);

195 void

212 std::optional IsInstanceMethod,

215 Scope *S, bool IsInstanceMethod, bool AtParameterName,

220 bool IsBaseExprStatement);

227 unsigned Argument);

231 void

235};

236

237}

238

239#endif

Forward declaration of all AST node types.

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::SourceLocation class and associated facilities.

C Language Family Type Representation.

Syntax

The style used to specify an attribute.

Represents a C++ nested-name-specifier or a global scope specifier.

Abstract interface for a consumer of code-completion information.

An allocator used specifically for the purpose of code completion.

Captures information about "declaration specifiers".

Decl - This represents one declaration (or definition), e.g.

Information about one declarator, including the parsed type information and the identifier.

Designation - Represent a full designation, which is a sequence of designators.

This represents one expression.

One of these records is kept for each identifier that is lexed.

Encapsulates the data about a macro definition (e.g.

Captures information about "declaration specifiers" specific to Objective-C.

Represents an ObjC class declaration.

A (possibly-)qualified type.

Scope - A scope is a transient data structure that is used while parsing the program.

void CodeCompleteObjCInstanceMessage(Scope *S, Expr *Receiver, ArrayRef< const IdentifierInfo * > SelIdents, bool AtArgumentExpression, ObjCInterfaceDecl *Super=nullptr)

void CodeCompleteObjCPropertySynthesizeIvar(Scope *S, IdentifierInfo *PropertyName)

void CodeCompleteAttribute(AttributeCommonInfo::Syntax Syntax, AttributeCompletion Completion=AttributeCompletion::Attribute, const IdentifierInfo *Scope=nullptr)

QualType ProduceTemplateArgumentSignatureHelp(TemplateTy, ArrayRef< ParsedTemplateArgument >, SourceLocation LAngleLoc)

QualType ProduceCtorInitMemberSignatureHelp(Decl *ConstructorDecl, CXXScopeSpec SS, ParsedType TemplateTypeTy, ArrayRef< Expr * > ArgExprs, IdentifierInfo *II, SourceLocation OpenParLoc, bool Braced)

void CodeCompleteObjCClassForwardDecl(Scope *S)

void CodeCompleteNamespaceAliasDecl(Scope *S)

void GatherGlobalCodeCompletions(CodeCompletionAllocator &Allocator, CodeCompletionTUInfo &CCTUInfo, SmallVectorImpl< CodeCompletionResult > &Results)

void CodeCompleteObjCAtStatement(Scope *S)

void CodeCompleteUsing(Scope *S)

void CodeCompleteObjCMessageReceiver(Scope *S)

void CodeCompleteOperatorName(Scope *S)

void CodeCompleteUsingDirective(Scope *S)

void CodeCompleteObjCProtocolDecl(Scope *S)

void CodeCompleteObjCPropertyFlags(Scope *S, ObjCDeclSpec &ODS)

ParserCompletionContext

Describes the context in which code completion occurs.

@ PCC_LocalDeclarationSpecifiers

Code completion occurs within a sequence of declaration specifiers within a function,...

@ PCC_MemberTemplate

Code completion occurs following one or more template headers within a class.

@ PCC_Condition

Code completion occurs within the condition of an if, while, switch, or for statement.

@ PCC_ParenthesizedExpression

Code completion occurs in a parenthesized expression, which might also be a type cast.

@ PCC_TopLevelOrExpression

Code completion occurs at top-level in a REPL session.

@ PCC_Class

Code completion occurs within a class, struct, or union.

@ PCC_ForInit

Code completion occurs at the beginning of the initialization statement (or expression) in a for loop...

@ PCC_Type

Code completion occurs where only a type is permitted.

@ PCC_ObjCImplementation

Code completion occurs within an Objective-C implementation or category implementation.

@ PCC_ObjCInterface

Code completion occurs within an Objective-C interface, protocol, or category.

@ PCC_Namespace

Code completion occurs at top-level or namespace context.

@ PCC_Expression

Code completion occurs within an expression.

@ PCC_RecoveryInFunction

Code completion occurs within the body of a function on a recovery path, where we do not have a speci...

@ PCC_ObjCInstanceVariableList

Code completion occurs within the list of instance variables in an Objective-C interface,...

@ PCC_Template

Code completion occurs following one or more template headers.

@ PCC_Statement

Code completion occurs within a statement, which may also be an expression or a declaration.

void CodeCompleteObjCAtDirective(Scope *S)

void CodeCompleteObjCPropertySetter(Scope *S)

void CodeCompleteLambdaIntroducer(Scope *S, LambdaIntroducer &Intro, bool AfterAmpersand)

void CodeCompleteCase(Scope *S)

void CodeCompleteObjCImplementationCategory(Scope *S, IdentifierInfo *ClassName, SourceLocation ClassNameLoc)

void CodeCompleteObjCInterfaceDecl(Scope *S)

void CodeCompleteFunctionQualifiers(DeclSpec &DS, Declarator &D, const VirtSpecifiers *VS=nullptr)

void CodeCompletePreprocessorMacroName(bool IsDefinition)

void CodeCompleteInPreprocessorConditionalExclusion(Scope *S)

void CodeCompleteObjCAtExpression(Scope *S)

void CodeCompletePreprocessorExpression()

void CodeCompleteTypeQualifiers(DeclSpec &DS)

void CodeCompleteObjCPropertyDefinition(Scope *S)

void CodeCompleteObjCSuperMessage(Scope *S, SourceLocation SuperLoc, ArrayRef< const IdentifierInfo * > SelIdents, bool AtArgumentExpression)

CodeCompleteConsumer * CodeCompleter

Code-completion consumer.

void CodeCompleteAfterFunctionEquals(Declarator &D)

QualType ProduceConstructorSignatureHelp(QualType Type, SourceLocation Loc, ArrayRef< Expr * > Args, SourceLocation OpenParLoc, bool Braced)

OpaquePtr< TemplateName > TemplateTy

void CodeCompleteExpression(Scope *S, const CodeCompleteExpressionData &Data)

Perform code-completion in an expression context when we know what type we're looking for.

HeuristicResolver Resolver

QualType ProduceCallSignatureHelp(Expr *Fn, ArrayRef< Expr * > Args, SourceLocation OpenParLoc)

Determines the preferred type of the current function argument, by examining the signatures of all po...

void CodeCompleteObjCMethodDeclSelector(Scope *S, bool IsInstanceMethod, bool AtParameterName, ParsedType ReturnType, ArrayRef< const IdentifierInfo * > SelIdents)

void CodeCompleteQualifiedId(Scope *S, CXXScopeSpec &SS, bool EnteringContext, bool IsUsingDeclaration, QualType BaseType, QualType PreferredType)

void CodeCompleteIncludedFile(llvm::StringRef Dir, bool IsAngled)

void CodeCompletePreprocessorMacroArgument(Scope *S, IdentifierInfo *Macro, MacroInfo *MacroInfo, unsigned Argument)

void CodeCompleteModuleImport(SourceLocation ImportLoc, ModuleIdPath Path)

void CodeCompleteObjCInterfaceCategory(Scope *S, IdentifierInfo *ClassName, SourceLocation ClassNameLoc)

void CodeCompleteObjCSelector(Scope *S, ArrayRef< const IdentifierInfo * > SelIdents)

void CodeCompleteConstructorInitializer(Decl *Constructor, ArrayRef< CXXCtorInitializer * > Initializers)

void CodeCompleteObjCImplementationDecl(Scope *S)

void CodeCompleteAfterIf(Scope *S, bool IsBracedThen)

void CodeCompleteObjCMethodDecl(Scope *S, std::optional< bool > IsInstanceMethod, ParsedType ReturnType)

void CodeCompleteOrdinaryName(Scope *S, ParserCompletionContext CompletionContext)

OpaquePtr< DeclGroupRef > DeclGroupPtrTy

void CodeCompleteObjCProtocolReferences(ArrayRef< IdentifierLocPair > Protocols)

void CodeCompleteNaturalLanguage()

void CodeCompleteObjCClassPropertyRefExpr(Scope *S, const IdentifierInfo &ClassName, SourceLocation ClassNameLoc, bool IsBaseExprStatement)

void CodeCompleteInitializer(Scope *S, Decl *D)

void CodeCompleteNamespaceDecl(Scope *S)

void CodeCompleteDesignator(const QualType BaseType, llvm::ArrayRef< Expr * > InitExprs, const Designation &D)

Trigger code completion for a record of BaseType.

void CodeCompletePreprocessorDirective(bool InConditional)

void CodeCompleteBracketDeclarator(Scope *S)

void CodeCompleteObjCSuperclass(Scope *S, IdentifierInfo *ClassName, SourceLocation ClassNameLoc)

void CodeCompleteObjCAtVisibility(Scope *S)

void CodeCompleteTag(Scope *S, unsigned TagSpec)

void CodeCompleteObjCClassMessage(Scope *S, ParsedType Receiver, ArrayRef< const IdentifierInfo * > SelIdents, bool AtArgumentExpression, bool IsSuper=false)

void CodeCompleteObjCForCollection(Scope *S, DeclGroupPtrTy IterationVar)

void CodeCompleteAvailabilityPlatformName()

void CodeCompleteMemberReferenceExpr(Scope *S, Expr *Base, Expr *OtherOpBase, SourceLocation OpLoc, bool IsArrow, bool IsBaseExprStatement, QualType PreferredType)

void CodeCompleteObjCPassingType(Scope *S, ObjCDeclSpec &DS, bool IsParameter)

void CodeCompleteObjCPropertyGetter(Scope *S)

void CodeCompleteDeclSpec(Scope *S, DeclSpec &DS, bool AllowNonIdentifiers, bool AllowNestedNameSpecifiers)

void CodeCompletePostfixExpression(Scope *S, ExprResult LHS, QualType PreferredType)

Sema - This implements semantic analysis and AST building for C.

Encodes a location in the source.

The base class of the type hierarchy.

Represents a C++11 virt-specifier-seq.

The JSON file list parser is used to communicate input to InstallAPI.

Represents a complete lambda introducer.