clang  14.0.0git
Public Member Functions | Public Attributes | List of all members
clang::format::FormatToken Struct Reference

A wrapper around a Token storing information about the whitespace characters preceding it. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Format/FormatToken.h"

Collaboration diagram for clang::format::FormatToken:
Collaboration graph
[legend]

Public Member Functions

 FormatToken ()
 
BraceBlockKind getBlockKind () const
 
void setBlockKind (BraceBlockKind BBK)
 
FormatDecision getDecision () const
 
void setDecision (FormatDecision D)
 
ParameterPackingKind getPackingKind () const
 
void setPackingKind (ParameterPackingKind K)
 
TokenType getType () const
 Returns the token's type, e.g. More...
 
void setType (TokenType T)
 
bool is (tok::TokenKind Kind) const
 
bool is (TokenType TT) const
 
bool is (const IdentifierInfo *II) const
 
bool is (tok::PPKeywordKind Kind) const
 
bool is (BraceBlockKind BBK) const
 
bool is (ParameterPackingKind PPK) const
 
template<typename A , typename B >
bool isOneOf (A K1, B K2) const
 
template<typename A , typename B , typename... Ts>
bool isOneOf (A K1, B K2, Ts... Ks) const
 
template<typename T >
bool isNot (T Kind) const
 
bool isIf (bool AllowConstexprMacro=true) const
 
bool closesScopeAfterBlock () const
 
template<typename A , typename... Ts>
bool startsSequence (A K1, Ts... Tokens) const
 true if this token starts a sequence with the given tokens in order, following the Next pointers, ignoring comments. More...
 
template<typename A , typename... Ts>
bool endsSequence (A K1, Ts... Tokens) const
 true if this token ends a sequence with the given tokens in order, following the Previous pointers, ignoring comments. More...
 
bool isStringLiteral () const
 
bool isObjCAtKeyword (tok::ObjCKeywordKind Kind) const
 
bool isAccessSpecifier (bool ColonRequired=true) const
 
bool canBePointerOrReferenceQualifier () const
 
bool isSimpleTypeSpecifier () const
 Determine whether the token is a simple-type-specifier. More...
 
bool isObjCAccessSpecifier () const
 
bool opensScope () const
 Returns whether Tok is ([{ or an opening < of a template or in protos. More...
 
bool closesScope () const
 Returns whether Tok is )]} or a closing > of a template or in protos. More...
 
bool isMemberAccess () const
 Returns true if this is a "." or "->" accessing a member. More...
 
bool isUnaryOperator () const
 
bool isBinaryOperator () const
 
bool isTrailingComment () const
 
bool isFunctionLikeKeyword () const
 Returns true if this is a keyword that can be used like a function call (e.g. More...
 
bool isLabelString () const
 Returns true if this is a string literal that's like a label, e.g. More...
 
SourceLocation getStartOfNonWhitespace () const
 Returns actual token start location without leading escaped newlines and whitespace. More...
 
prec::Level getPrecedence () const
 
FormatTokengetPreviousNonComment () const
 Returns the previous token ignoring comments. More...
 
const FormatTokengetNextNonComment () const
 Returns the next token ignoring comments. More...
 
bool opensBlockOrBlockTypeList (const FormatStyle &Style) const
 Returns true if this tokens starts a block-type list, i.e. More...
 
bool isCppStructuredBinding (const FormatStyle &Style) const
 Returns whether the token is the left square bracket of a C++ structured binding declaration. More...
 
bool closesBlockOrBlockTypeList (const FormatStyle &Style) const
 Same as opensBlockOrBlockTypeList, but for the closing token. More...
 
const FormatTokengetNamespaceToken () const
 Return the actual namespace token, if this token starts a namespace block. More...
 
void copyFrom (const FormatToken &Tok)
 

Public Attributes

Token Tok
 The Token. More...
 
StringRef TokenText
 The raw text of the token. More...
 
std::shared_ptr< TokenRoleRole
 A token can have a special role that can carry extra information about the token's formatting. More...
 
SourceRange WhitespaceRange
 The range of the whitespace immediately preceding the Token. More...
 
unsigned HasUnescapedNewline: 1
 Whether there is at least one unescaped newline before the Token. More...
 
unsigned IsMultiline: 1
 Whether the token text contains newlines (escaped or not). More...
 
unsigned IsFirst: 1
 Indicates that this is the first token of the file. More...
 
unsigned MustBreakBefore: 1
 Whether there must be a line break before this token. More...
 
unsigned IsUnterminatedLiteral: 1
 Set to true if this token is an unterminated literal. More...
 
unsigned CanBreakBefore: 1
 true if it is allowed to break before this token. More...
 
unsigned ClosesTemplateDeclaration: 1
 true if this is the ">" of "template<..>". More...
 
unsigned StartsBinaryExpression: 1
 true if this token starts a binary expression, i.e. More...
 
unsigned EndsBinaryExpression: 1
 true if this token ends a binary expression. More...
 
unsigned PartOfMultiVariableDeclStmt: 1
 Is this token part of a DeclStmt defining multiple variables? More...
 
unsigned ContinuesLineCommentSection: 1
 Does this line comment continue a line comment section? More...
 
unsigned Finalized: 1
 If true, this token has been fully formatted (indented and potentially re-formatted inside), and we do not allow further formatting changes. More...
 
unsigned NewlinesBefore = 0
 The number of newlines immediately before the Token. More...
 
unsigned LastNewlineOffset = 0
 The offset just past the last '
' in this token's leading whitespace (relative to WhiteSpaceStart). More...
 
unsigned ColumnWidth = 0
 The width of the non-whitespace parts of the token (or its first line for multi-line tokens) in columns. More...
 
unsigned LastLineColumnWidth = 0
 Contains the width in columns of the last line of a multi-line token. More...
 
unsigned SpacesRequiredBefore = 0
 The number of spaces that should be inserted before this token. More...
 
unsigned ParameterCount = 0
 Number of parameters, if this is "(", "[" or "<". More...
 
unsigned BlockParameterCount = 0
 Number of parameters that are nested blocks, if this is "(", "[" or "<". More...
 
tok::TokenKind ParentBracket = tok::unknown
 If this is a bracket ("<", "(", "[" or "{"), contains the kind of the surrounding bracket. More...
 
unsigned TotalLength = 0
 The total length of the unwrapped line up to and including this token. More...
 
unsigned OriginalColumn = 0
 The original 0-based column of this token, including expanded tabs. More...
 
unsigned UnbreakableTailLength = 0
 The length of following tokens until the next natural split point, or the next token that can be broken. More...
 
unsigned BindingStrength = 0
 The binding strength of a token. More...
 
unsigned NestingLevel = 0
 The nesting level of this token, i.e. More...
 
unsigned IndentLevel = 0
 The indent level of this token. Copied from the surrounding line. More...
 
unsigned SplitPenalty = 0
 Penalty for inserting a line break before this token. More...
 
unsigned LongestObjCSelectorName = 0
 If this is the first ObjC selector name in an ObjC method definition or call, this contains the length of the longest name. More...
 
unsigned ObjCSelectorNameParts = 0
 If this is the first ObjC selector name in an ObjC method definition or call, this contains the number of parts that the whole selector consist of. More...
 
unsigned ParameterIndex = 0
 The 0-based index of the parameter/argument. More...
 
SmallVector< prec::Level, 4 > FakeLParens
 Stores the number of required fake parentheses and the corresponding operator precedence. More...
 
unsigned FakeRParens = 0
 Insert this many fake ) after this token for correct indentation. More...
 
unsigned OperatorIndex = 0
 If this is an operator (or "."/"->") in a sequence of operators with the same precedence, contains the 0-based operator index. More...
 
FormatTokenNextOperator = nullptr
 If this is an operator (or "."/"->") in a sequence of operators with the same precedence, points to the next operator. More...
 
FormatTokenMatchingParen = nullptr
 If this is a bracket, this points to the matching one. More...
 
FormatTokenPrevious = nullptr
 The previous token in the unwrapped line. More...
 
FormatTokenNext = nullptr
 The next token in the unwrapped line. More...
 
bool StartsColumn = false
 The first token in set of column elements. More...
 
bool ArrayInitializerLineStart = false
 This notes the start of the line of an array initializer. More...
 
bool IsArrayInitializer = false
 This starts an array initializer. More...
 
SmallVector< AnnotatedLine *, 1 > Children
 If this token starts a block, this contains all the unwrapped lines in it. More...
 
llvm::Optional< MacroExpansionMacroCtx
 

Detailed Description

A wrapper around a Token storing information about the whitespace characters preceding it.

Definition at line 211 of file FormatToken.h.

Constructor & Destructor Documentation

◆ FormatToken()

clang::format::FormatToken::FormatToken ( )
inline

Definition at line 212 of file FormatToken.h.

Member Function Documentation

◆ canBePointerOrReferenceQualifier()

bool clang::format::FormatToken::canBePointerOrReferenceQualifier ( ) const
inline

Definition at line 516 of file FormatToken.h.

References isOneOf().

◆ closesBlockOrBlockTypeList()

bool clang::format::FormatToken::closesBlockOrBlockTypeList ( const FormatStyle Style) const
inline

Same as opensBlockOrBlockTypeList, but for the closing token.

Definition at line 686 of file FormatToken.h.

◆ closesScope()

bool clang::format::FormatToken::closesScope ( ) const
inline

Returns whether Tok is )]} or a closing > of a template or in protos.

Definition at line 546 of file FormatToken.h.

References is(), isOneOf(), and TokenText.

Referenced by closesScopeAfterBlock(), and clang::format::startsSegmentOfBuilderTypeCall().

◆ closesScopeAfterBlock()

bool clang::format::FormatToken::closesScopeAfterBlock ( ) const
inline

◆ copyFrom()

void clang::format::FormatToken::copyFrom ( const FormatToken Tok)
inline

Definition at line 707 of file FormatToken.h.

References Tok.

Referenced by clang::format::MacroExpander::expand().

◆ endsSequence()

template<typename A , typename... Ts>
bool clang::format::FormatToken::endsSequence ( K1,
Ts...  Tokens 
) const
inline

true if this token ends a sequence with the given tokens in order, following the Previous pointers, ignoring comments.

For example, given tokens [T1, T2, T3], the function returns true if 3 tokens ending at this (ignoring comments) are [T3, T2, T1]. In other words, the tokens passed to this function need to the reverse of the order the tokens appear in code.

Definition at line 501 of file FormatToken.h.

Referenced by isIf().

◆ getBlockKind()

BraceBlockKind clang::format::FormatToken::getBlockKind ( ) const
inline

Definition at line 290 of file FormatToken.h.

Referenced by closesScopeAfterBlock(), is(), and setBlockKind().

◆ getDecision()

FormatDecision clang::format::FormatToken::getDecision ( ) const
inline

Definition at line 303 of file FormatToken.h.

Referenced by setDecision().

◆ getNamespaceToken()

const FormatToken* clang::format::FormatToken::getNamespaceToken ( ) const
inline

Return the actual namespace token, if this token starts a namespace block.

Definition at line 694 of file FormatToken.h.

References getNextNonComment(), is(), and isOneOf().

◆ getNextNonComment()

const FormatToken* clang::format::FormatToken::getNextNonComment ( ) const
inline

Returns the next token ignoring comments.

Definition at line 649 of file FormatToken.h.

References clang::Token::is(), Next, and Tok.

Referenced by getNamespaceToken(), and clang::format::CommaSeparatedList::precomputeFormattingInfos().

◆ getPackingKind()

ParameterPackingKind clang::format::FormatToken::getPackingKind ( ) const
inline

Definition at line 316 of file FormatToken.h.

Referenced by is(), and setPackingKind().

◆ getPrecedence()

prec::Level clang::format::FormatToken::getPrecedence ( ) const
inline

Definition at line 635 of file FormatToken.h.

References clang::getBinOpPrecedence(), clang::Token::getKind(), and Tok.

Referenced by isBinaryOperator().

◆ getPreviousNonComment()

FormatToken* clang::format::FormatToken::getPreviousNonComment ( ) const
inline

Returns the previous token ignoring comments.

Definition at line 641 of file FormatToken.h.

References clang::Token::is(), Previous, and Tok.

Referenced by clang::format::CommaSeparatedList::precomputeFormattingInfos().

◆ getStartOfNonWhitespace()

SourceLocation clang::format::FormatToken::getStartOfNonWhitespace ( ) const
inline

Returns actual token start location without leading escaped newlines and whitespace.

This can be different to Tok.getLocation(), which includes leading escaped newlines.

Definition at line 631 of file FormatToken.h.

References clang::SourceRange::getEnd(), and WhitespaceRange.

Referenced by clang::format::WhitespaceManager::replaceWhitespaceInToken().

◆ getType()

TokenType clang::format::FormatToken::getType ( ) const
inline

Returns the token's type, e.g.

whether "<" is a template opener or binary operator.

Definition at line 330 of file FormatToken.h.

Referenced by is().

◆ is() [1/6]

bool clang::format::FormatToken::is ( BraceBlockKind  BBK) const
inline

Definition at line 462 of file FormatToken.h.

References getBlockKind().

◆ is() [2/6]

bool clang::format::FormatToken::is ( const IdentifierInfo II) const
inline

Definition at line 455 of file FormatToken.h.

References clang::Token::getIdentifierInfo(), and Tok.

◆ is() [3/6]

bool clang::format::FormatToken::is ( ParameterPackingKind  PPK) const
inline

Definition at line 463 of file FormatToken.h.

References getPackingKind().

◆ is() [4/6]

bool clang::format::FormatToken::is ( tok::PPKeywordKind  Kind) const
inline

◆ is() [5/6]

bool clang::format::FormatToken::is ( tok::TokenKind  Kind) const
inline

◆ is() [6/6]

bool clang::format::FormatToken::is ( TokenType  TT) const
inline

Definition at line 454 of file FormatToken.h.

References getType().

◆ isAccessSpecifier()

bool clang::format::FormatToken::isAccessSpecifier ( bool  ColonRequired = true) const
inline

Definition at line 511 of file FormatToken.h.

References is(), isOneOf(), and Next.

◆ isBinaryOperator()

bool clang::format::FormatToken::isBinaryOperator ( ) const
inline

Definition at line 578 of file FormatToken.h.

References clang::prec::Comma, and getPrecedence().

◆ isCppStructuredBinding()

bool clang::format::FormatToken::isCppStructuredBinding ( const FormatStyle Style) const
inline

Returns whether the token is the left square bracket of a C++ structured binding declaration.

Definition at line 674 of file FormatToken.h.

◆ isFunctionLikeKeyword()

bool clang::format::FormatToken::isFunctionLikeKeyword ( ) const
inline

Returns true if this is a keyword that can be used like a function call (e.g.

sizeof, typeid, ...).

Definition at line 590 of file FormatToken.h.

References clang::Token::getKind(), and Tok.

◆ isIf()

bool clang::format::FormatToken::isIf ( bool  AllowConstexprMacro = true) const
inline

Definition at line 474 of file FormatToken.h.

References endsSequence(), and is().

◆ isLabelString()

bool clang::format::FormatToken::isLabelString ( ) const
inline

Returns true if this is a string literal that's like a label, e.g.

ends with "=" or ":".

Definition at line 613 of file FormatToken.h.

References is(), and TokenText.

◆ isMemberAccess()

bool clang::format::FormatToken::isMemberAccess ( ) const
inline

Returns true if this is a "." or "->" accessing a member.

Definition at line 556 of file FormatToken.h.

References isOneOf().

Referenced by clang::format::startsSegmentOfBuilderTypeCall().

◆ isNot()

template<typename T >
bool clang::format::FormatToken::isNot ( Kind) const
inline

◆ isObjCAccessSpecifier()

bool clang::format::FormatToken::isObjCAccessSpecifier ( ) const
inline

Definition at line 526 of file FormatToken.h.

References is(), isObjCAtKeyword(), and Next.

◆ isObjCAtKeyword()

bool clang::format::FormatToken::isObjCAtKeyword ( tok::ObjCKeywordKind  Kind) const
inline

Definition at line 507 of file FormatToken.h.

References clang::Token::isObjCAtKeyword(), and Tok.

Referenced by isObjCAccessSpecifier().

◆ isOneOf() [1/2]

template<typename A , typename B >
bool clang::format::FormatToken::isOneOf ( K1,
K2 
) const
inline

◆ isOneOf() [2/2]

template<typename A , typename B , typename... Ts>
bool clang::format::FormatToken::isOneOf ( K1,
K2,
Ts...  Ks 
) const
inline

Definition at line 469 of file FormatToken.h.

References is(), and isOneOf().

◆ isSimpleTypeSpecifier()

bool clang::format::FormatToken::isSimpleTypeSpecifier ( ) const

Determine whether the token is a simple-type-specifier.

Definition at line 39 of file FormatToken.cpp.

References clang::Token::getKind(), and Tok.

Referenced by clang::format::LeftRightQualifierAlignmentFixer::isQualifierOrType().

◆ isStringLiteral()

bool clang::format::FormatToken::isStringLiteral ( ) const
inline

Definition at line 505 of file FormatToken.h.

References clang::Token::getKind(), clang::tok::isStringLiteral(), and Tok.

◆ isTrailingComment()

bool clang::format::FormatToken::isTrailingComment ( ) const
inline

Definition at line 583 of file FormatToken.h.

References is(), NewlinesBefore, and Next.

Referenced by clang::format::CommaSeparatedList::precomputeFormattingInfos().

◆ isUnaryOperator()

bool clang::format::FormatToken::isUnaryOperator ( ) const
inline

Definition at line 562 of file FormatToken.h.

References clang::Token::getKind(), and Tok.

◆ opensBlockOrBlockTypeList()

bool clang::format::FormatToken::opensBlockOrBlockTypeList ( const FormatStyle Style) const
inline

Returns true if this tokens starts a block-type list, i.e.

a list that should be indented with a block indent.

Definition at line 658 of file FormatToken.h.

◆ opensScope()

bool clang::format::FormatToken::opensScope ( ) const
inline

Returns whether Tok is ([{ or an opening < of a template or in protos.

Definition at line 536 of file FormatToken.h.

References is(), isOneOf(), and TokenText.

◆ setBlockKind()

void clang::format::FormatToken::setBlockKind ( BraceBlockKind  BBK)
inline

Definition at line 293 of file FormatToken.h.

References getBlockKind().

◆ setDecision()

void clang::format::FormatToken::setDecision ( FormatDecision  D)
inline

Definition at line 306 of file FormatToken.h.

References getDecision().

Referenced by clang::format::WhitespaceManager::replaceWhitespace().

◆ setPackingKind()

void clang::format::FormatToken::setPackingKind ( ParameterPackingKind  K)
inline

Definition at line 319 of file FormatToken.h.

References getPackingKind().

◆ setType()

void clang::format::FormatToken::setType ( TokenType  T)
inline

Definition at line 331 of file FormatToken.h.

◆ startsSequence()

template<typename A , typename... Ts>
bool clang::format::FormatToken::startsSequence ( K1,
Ts...  Tokens 
) const
inline

true if this token starts a sequence with the given tokens in order, following the Next pointers, ignoring comments.

Definition at line 490 of file FormatToken.h.

Member Data Documentation

◆ ArrayInitializerLineStart

bool clang::format::FormatToken::ArrayInitializerLineStart = false

This notes the start of the line of an array initializer.

Definition at line 440 of file FormatToken.h.

◆ BindingStrength

unsigned clang::format::FormatToken::BindingStrength = 0

The binding strength of a token.

This is a combined value of operator precedence, parenthesis nesting, etc.

Definition at line 381 of file FormatToken.h.

◆ BlockParameterCount

unsigned clang::format::FormatToken::BlockParameterCount = 0

Number of parameters that are nested blocks, if this is "(", "[" or "<".

Definition at line 360 of file FormatToken.h.

◆ CanBreakBefore

unsigned clang::format::FormatToken::CanBreakBefore

true if it is allowed to break before this token.

Definition at line 259 of file FormatToken.h.

Referenced by clang::format::CommaSeparatedList::precomputeFormattingInfos().

◆ Children

SmallVector<AnnotatedLine *, 1> clang::format::FormatToken::Children

If this token starts a block, this contains all the unwrapped lines in it.

Definition at line 447 of file FormatToken.h.

Referenced by clang::format::isItAnEmptyLambdaAllowed().

◆ ClosesTemplateDeclaration

unsigned clang::format::FormatToken::ClosesTemplateDeclaration

true if this is the ">" of "template<..>".

Definition at line 262 of file FormatToken.h.

◆ ColumnWidth

unsigned clang::format::FormatToken::ColumnWidth = 0

The width of the non-whitespace parts of the token (or its first line for multi-line tokens) in columns.

We need this to correctly measure number of columns a token spans.

Definition at line 346 of file FormatToken.h.

◆ ContinuesLineCommentSection

unsigned clang::format::FormatToken::ContinuesLineCommentSection

Does this line comment continue a line comment section?

Only set to true if Type == TT_LineComment.

Definition at line 278 of file FormatToken.h.

◆ EndsBinaryExpression

unsigned clang::format::FormatToken::EndsBinaryExpression

true if this token ends a binary expression.

Definition at line 268 of file FormatToken.h.

◆ FakeLParens

SmallVector<prec::Level, 4> clang::format::FormatToken::FakeLParens

Stores the number of required fake parentheses and the corresponding operator precedence.

If multiple fake parentheses start at a token, this vector stores them in reverse order, i.e. inner fake parenthesis first.

Definition at line 415 of file FormatToken.h.

◆ FakeRParens

unsigned clang::format::FormatToken::FakeRParens = 0

Insert this many fake ) after this token for correct indentation.

Definition at line 417 of file FormatToken.h.

◆ Finalized

unsigned clang::format::FormatToken::Finalized

If true, this token has been fully formatted (indented and potentially re-formatted inside), and we do not allow further formatting changes.

Definition at line 283 of file FormatToken.h.

Referenced by clang::format::WhitespaceManager::addUntouchableToken(), clang::format::BreakableBlockComment::mayReflow(), clang::format::BreakableLineCommentSection::mayReflow(), clang::format::WhitespaceManager::replaceWhitespace(), and clang::format::WhitespaceManager::replaceWhitespaceInToken().

◆ HasUnescapedNewline

unsigned clang::format::FormatToken::HasUnescapedNewline

Whether there is at least one unescaped newline before the Token.

Definition at line 241 of file FormatToken.h.

Referenced by clang::format::CommaSeparatedList::precomputeFormattingInfos().

◆ IndentLevel

unsigned clang::format::FormatToken::IndentLevel = 0

The indent level of this token. Copied from the surrounding line.

Definition at line 388 of file FormatToken.h.

Referenced by clang::format::WhitespaceManager::Change::indentAndNestingLevel().

◆ IsArrayInitializer

bool clang::format::FormatToken::IsArrayInitializer = false

This starts an array initializer.

Definition at line 443 of file FormatToken.h.

◆ IsFirst

unsigned clang::format::FormatToken::IsFirst

◆ IsMultiline

unsigned clang::format::FormatToken::IsMultiline

Whether the token text contains newlines (escaped or not).

Definition at line 244 of file FormatToken.h.

◆ IsUnterminatedLiteral

unsigned clang::format::FormatToken::IsUnterminatedLiteral

Set to true if this token is an unterminated literal.

Definition at line 256 of file FormatToken.h.

◆ LastLineColumnWidth

unsigned clang::format::FormatToken::LastLineColumnWidth = 0

Contains the width in columns of the last line of a multi-line token.

Definition at line 350 of file FormatToken.h.

◆ LastNewlineOffset

unsigned clang::format::FormatToken::LastNewlineOffset = 0

The offset just past the last '
' in this token's leading whitespace (relative to WhiteSpaceStart).

0 if there is no '
'.

Definition at line 341 of file FormatToken.h.

◆ LongestObjCSelectorName

unsigned clang::format::FormatToken::LongestObjCSelectorName = 0

If this is the first ObjC selector name in an ObjC method definition or call, this contains the length of the longest name.

This being set to 0 means that the selectors should not be colon-aligned, e.g. because several of them are block-type.

Definition at line 398 of file FormatToken.h.

◆ MacroCtx

llvm::Optional<MacroExpansion> clang::format::FormatToken::MacroCtx

Definition at line 451 of file FormatToken.h.

Referenced by clang::format::MacroExpander::expand().

◆ MatchingParen

FormatToken* clang::format::FormatToken::MatchingParen = nullptr

If this is a bracket, this points to the matching one.

Definition at line 428 of file FormatToken.h.

Referenced by clang::format::CommaSeparatedList::formatAfterToken(), and clang::format::IsFunctionArgument().

◆ MustBreakBefore

unsigned clang::format::FormatToken::MustBreakBefore

Whether there must be a line break before this token.

This happens for example when a preprocessor directive ended directly before the token.

Definition at line 253 of file FormatToken.h.

Referenced by clang::format::CommaSeparatedList::precomputeFormattingInfos().

◆ NestingLevel

unsigned clang::format::FormatToken::NestingLevel = 0

The nesting level of this token, i.e.

the number of surrounding (), [], {} or <>.

Definition at line 385 of file FormatToken.h.

Referenced by clang::format::WhitespaceManager::Change::indentAndNestingLevel().

◆ NewlinesBefore

unsigned clang::format::FormatToken::NewlinesBefore = 0

The number of newlines immediately before the Token.

This can be used to determine what the user wrote in the original code and thereby e.g. leave an empty line between two function definitions.

Definition at line 337 of file FormatToken.h.

Referenced by clang::format::WhitespaceManager::addUntouchableToken(), isTrailingComment(), and clang::format::TokenAnnotator::setCommentLineLevels().

◆ Next

FormatToken* clang::format::FormatToken::Next = nullptr

◆ NextOperator

FormatToken* clang::format::FormatToken::NextOperator = nullptr

If this is an operator (or "."/"->") in a sequence of operators with the same precedence, points to the next operator.

Definition at line 425 of file FormatToken.h.

Referenced by clang::format::getLengthToNextOperator().

◆ ObjCSelectorNameParts

unsigned clang::format::FormatToken::ObjCSelectorNameParts = 0

If this is the first ObjC selector name in an ObjC method definition or call, this contains the number of parts that the whole selector consist of.

Definition at line 403 of file FormatToken.h.

◆ OperatorIndex

unsigned clang::format::FormatToken::OperatorIndex = 0

If this is an operator (or "."/"->") in a sequence of operators with the same precedence, contains the 0-based operator index.

Definition at line 421 of file FormatToken.h.

◆ OriginalColumn

unsigned clang::format::FormatToken::OriginalColumn = 0

The original 0-based column of this token, including expanded tabs.

The configured TabWidth is used as tab width.

Definition at line 372 of file FormatToken.h.

Referenced by clang::format::WhitespaceManager::addUntouchableToken(), and clang::format::TokenAnnotator::setCommentLineLevels().

◆ ParameterCount

unsigned clang::format::FormatToken::ParameterCount = 0

Number of parameters, if this is "(", "[" or "<".

Definition at line 356 of file FormatToken.h.

◆ ParameterIndex

unsigned clang::format::FormatToken::ParameterIndex = 0

The 0-based index of the parameter/argument.

For ObjC it is set for the selector name token. For now calculated only for ObjC.

Definition at line 408 of file FormatToken.h.

◆ ParentBracket

tok::TokenKind clang::format::FormatToken::ParentBracket = tok::unknown

If this is a bracket ("<", "(", "[" or "{"), contains the kind of the surrounding bracket.

Definition at line 364 of file FormatToken.h.

◆ PartOfMultiVariableDeclStmt

unsigned clang::format::FormatToken::PartOfMultiVariableDeclStmt

Is this token part of a DeclStmt defining multiple variables?

Only set if Type == TT_StartOfName.

Definition at line 273 of file FormatToken.h.

◆ Previous

FormatToken* clang::format::FormatToken::Previous = nullptr

◆ Role

std::shared_ptr<TokenRole> clang::format::FormatToken::Role

A token can have a special role that can carry extra information about the token's formatting.

FIXME: Make FormatToken for parsing and AnnotatedToken two different classes and make this a unique_ptr in the AnnotatedToken class.

Definition at line 234 of file FormatToken.h.

◆ SpacesRequiredBefore

unsigned clang::format::FormatToken::SpacesRequiredBefore = 0

The number of spaces that should be inserted before this token.

Definition at line 353 of file FormatToken.h.

◆ SplitPenalty

unsigned clang::format::FormatToken::SplitPenalty = 0

Penalty for inserting a line break before this token.

Definition at line 391 of file FormatToken.h.

◆ StartsBinaryExpression

unsigned clang::format::FormatToken::StartsBinaryExpression

true if this token starts a binary expression, i.e.

has at least one fake l_paren with a precedence greater than prec::Unknown.

Definition at line 266 of file FormatToken.h.

◆ StartsColumn

bool clang::format::FormatToken::StartsColumn = false

The first token in set of column elements.

Definition at line 437 of file FormatToken.h.

◆ Tok

Token clang::format::FormatToken::Tok

◆ TokenText

StringRef clang::format::FormatToken::TokenText

The raw text of the token.

Contains the raw token text without leading whitespace and without leading escaped newlines.

Definition at line 228 of file FormatToken.h.

Referenced by closesScope(), clang::format::continuesLineCommentSection(), isLabelString(), clang::format::LeftRightQualifierAlignmentFixer::isPossibleMacro(), opensScope(), and clang::format::MacroExpander::DefinitionParser::parse().

◆ TotalLength

unsigned clang::format::FormatToken::TotalLength = 0

The total length of the unwrapped line up to and including this token.

Definition at line 368 of file FormatToken.h.

Referenced by clang::format::getLengthToNextOperator().

◆ UnbreakableTailLength

unsigned clang::format::FormatToken::UnbreakableTailLength = 0

The length of following tokens until the next natural split point, or the next token that can be broken.

Definition at line 376 of file FormatToken.h.

◆ WhitespaceRange

SourceRange clang::format::FormatToken::WhitespaceRange

The range of the whitespace immediately preceding the Token.

Definition at line 237 of file FormatToken.h.

Referenced by clang::format::WhitespaceManager::addUntouchableToken(), getStartOfNonWhitespace(), and clang::format::WhitespaceManager::replaceWhitespace().


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