clang 20.0.0git
|
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"
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. | |
void | setType (TokenType T) |
void | setFinalizedType (TokenType T) |
Sets the type and also the finalized flag. | |
void | overwriteFixedType (TokenType T) |
bool | isTypeFinalized () const |
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. | |
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. | |
bool | isStringLiteral () const |
bool | isAttribute () const |
bool | isObjCAtKeyword (tok::ObjCKeywordKind Kind) const |
bool | isAccessSpecifierKeyword () const |
bool | isAccessSpecifier (bool ColonRequired=true) const |
bool | canBePointerOrReferenceQualifier () const |
bool | isTypeName (const LangOptions &LangOpts) const |
bool | isTypeOrIdentifier (const LangOptions &LangOpts) const |
bool | isObjCAccessSpecifier () const |
bool | opensScope () const |
Returns whether Tok is ([{ or an opening < of a template or in protos. | |
bool | closesScope () const |
Returns whether Tok is )]} or a closing > of a template or in protos. | |
bool | isMemberAccess () const |
Returns true if this is a "." or "->" accessing a member. | |
bool | isPointerOrReference () const |
bool | isCppAlternativeOperatorKeyword () const |
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. | |
bool | isLabelString () const |
Returns true if this is a string literal that's like a label, e.g. | |
SourceLocation | getStartOfNonWhitespace () const |
Returns actual token start location without leading escaped newlines and whitespace. | |
bool | hasWhitespaceBefore () const |
Returns true if the range of whitespace immediately preceding the Token is not empty. | |
prec::Level | getPrecedence () const |
FormatToken * | getPreviousNonComment () const |
Returns the previous token ignoring comments. | |
FormatToken * | getNextNonComment () const |
Returns the next token ignoring comments. | |
bool | isBlockIndentedInitRBrace (const FormatStyle &Style) const |
Returns true if this token ends a block indented initializer list. | |
bool | opensBlockOrBlockTypeList (const FormatStyle &Style) const |
Returns true if this tokens starts a block-type list, i.e. | |
bool | isCppStructuredBinding (bool IsCpp) const |
Returns whether the token is the left square bracket of a C++ structured binding declaration. | |
bool | closesBlockOrBlockTypeList (const FormatStyle &Style) const |
Same as opensBlockOrBlockTypeList, but for the closing token. | |
const FormatToken * | getNamespaceToken () const |
Return the actual namespace token, if this token starts a namespace block. | |
void | copyFrom (const FormatToken &Tok) |
Public Attributes | |
Token | Tok |
The Token . | |
StringRef | TokenText |
The raw text of the token. | |
std::shared_ptr< TokenRole > | Role |
A token can have a special role that can carry extra information about the token's formatting. | |
SourceRange | WhitespaceRange |
The range of the whitespace immediately preceding the Token . | |
unsigned | HasUnescapedNewline: 1 |
Whether there is at least one unescaped newline before the Token . | |
unsigned | IsMultiline: 1 |
Whether the token text contains newlines (escaped or not). | |
unsigned | IsFirst: 1 |
Indicates that this is the first token of the file. | |
unsigned | MustBreakBefore: 1 |
Whether there must be a line break before this token. | |
unsigned | MustBreakBeforeFinalized: 1 |
Whether MustBreakBefore is finalized during parsing and must not be reset between runs. | |
unsigned | IsUnterminatedLiteral: 1 |
Set to true if this token is an unterminated literal. | |
unsigned | CanBreakBefore: 1 |
true if it is allowed to break before this token. | |
unsigned | ClosesTemplateDeclaration: 1 |
true if this is the ">" of "template<..>". | |
unsigned | StartsBinaryExpression: 1 |
true if this token starts a binary expression, i.e. | |
unsigned | EndsBinaryExpression: 1 |
true if this token ends a binary expression. | |
unsigned | PartOfMultiVariableDeclStmt: 1 |
Is this token part of a DeclStmt defining multiple variables? | |
unsigned | ContinuesLineCommentSection: 1 |
Does this line comment continue a line comment section? | |
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. | |
unsigned | ClosesRequiresClause: 1 |
true if this is the last token within requires clause. | |
unsigned | EndsCppAttributeGroup: 1 |
true if this token ends a group of C++ attributes. | |
prec::Level | ForcedPrecedence = prec::Unknown |
Used to set an operator precedence explicitly. | |
unsigned | NewlinesBefore = 0 |
The number of newlines immediately before the Token . | |
int | Newlines = -1 |
The number of newlines immediately before the Token after formatting. | |
unsigned | LastNewlineOffset = 0 |
The offset just past the last ' ' in this token's leading whitespace (relative to WhiteSpaceStart ). | |
unsigned | ColumnWidth = 0 |
The width of the non-whitespace parts of the token (or its first line for multi-line tokens) in columns. | |
unsigned | LastLineColumnWidth = 0 |
Contains the width in columns of the last line of a multi-line token. | |
unsigned | SpacesRequiredBefore = 0 |
The number of spaces that should be inserted before this token. | |
unsigned | ParameterCount = 0 |
Number of parameters, if this is "(", "[" or "<". | |
unsigned | BlockParameterCount = 0 |
Number of parameters that are nested blocks, if this is "(", "[" or "<". | |
tok::TokenKind | ParentBracket = tok::unknown |
If this is a bracket ("<", "(", "[" or "{"), contains the kind of the surrounding bracket. | |
unsigned | TotalLength = 0 |
The total length of the unwrapped line up to and including this token. | |
unsigned | OriginalColumn = 0 |
The original 0-based column of this token, including expanded tabs. | |
unsigned | UnbreakableTailLength = 0 |
The length of following tokens until the next natural split point, or the next token that can be broken. | |
unsigned | BindingStrength = 0 |
The binding strength of a token. | |
unsigned | NestingLevel = 0 |
The nesting level of this token, i.e. | |
unsigned | IndentLevel = 0 |
The indent level of this token. Copied from the surrounding line. | |
unsigned | SplitPenalty = 0 |
Penalty for inserting a line break before this token. | |
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. | |
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. | |
unsigned | ParameterIndex = 0 |
The 0-based index of the parameter/argument. | |
SmallVector< prec::Level, 4 > | FakeLParens |
Stores the number of required fake parentheses and the corresponding operator precedence. | |
unsigned | FakeRParens = 0 |
Insert this many fake ) after this token for correct indentation. | |
unsigned | OperatorIndex = 0 |
If this is an operator (or "."/"->") in a sequence of operators with the same precedence, contains the 0-based operator index. | |
FormatToken * | NextOperator = nullptr |
If this is an operator (or "."/"->") in a sequence of operators with the same precedence, points to the next operator. | |
FormatToken * | MatchingParen = nullptr |
If this is a bracket, this points to the matching one. | |
FormatToken * | Previous = nullptr |
The previous token in the unwrapped line. | |
FormatToken * | Next = nullptr |
The next token in the unwrapped line. | |
bool | StartsColumn = false |
The first token in set of column elements. | |
bool | ArrayInitializerLineStart = false |
This notes the start of the line of an array initializer. | |
bool | IsArrayInitializer = false |
This starts an array initializer. | |
bool | Optional = false |
Is optional and can be removed. | |
bool | MightBeFunctionDeclParen = false |
Might be function declaration open/closing paren. | |
bool | HasFormFeedBefore = false |
Has "\n\f\n" or "\n\f\r\n" before TokenText. | |
int8_t | BraceCount = 0 |
Number of optional braces to be inserted after this token: -1: a single left brace 0: no braces >0: number of right braces. | |
SmallVector< AnnotatedLine *, 1 > | Children |
If this token starts a block, this contains all the unwrapped lines in it. | |
std::optional< MacroExpansion > | MacroCtx |
bool | MacroParent = false |
When macro expansion introduces nodes with children, those are marked as MacroParent . | |
A wrapper around a Token
storing information about the whitespace characters preceding it.
Definition at line 297 of file FormatToken.h.
|
inline |
Definition at line 298 of file FormatToken.h.
|
inline |
Definition at line 687 of file FormatToken.h.
|
inline |
Same as opensBlockOrBlockTypeList, but for the closing token.
Definition at line 876 of file FormatToken.h.
|
inline |
Returns whether Tok
is )]} or a closing > of a template or in protos.
Definition at line 718 of file FormatToken.h.
Referenced by clang::format::startsSegmentOfBuilderTypeCall().
|
inline |
Definition at line 638 of file FormatToken.h.
References endsSequence(), and is().
|
inline |
Definition at line 897 of file FormatToken.h.
Referenced by clang::format::MacroExpander::expand().
|
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 660 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), closesScopeAfterBlock(), and clang::format::AnnotatedLine::endsWith().
|
inline |
Definition at line 389 of file FormatToken.h.
Referenced by opensBlockOrBlockTypeList().
|
inline |
Definition at line 402 of file FormatToken.h.
|
inline |
Return the actual namespace token, if this token starts a namespace block.
Definition at line 884 of file FormatToken.h.
Referenced by clang::format::getNamespaceToken().
|
inline |
Returns the next token ignoring comments.
Definition at line 848 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), clang::format::AnnotatedLine::getFirstNonComment(), clang::format::AnnotatedLine::isComment(), and clang::format::CommaSeparatedList::precomputeFormattingInfos().
|
inline |
Definition at line 415 of file FormatToken.h.
Referenced by isOneOf().
|
inline |
Definition at line 832 of file FormatToken.h.
References clang::SourceRange::getBegin(), clang::SourceRange::getEnd(), and WhitespaceRange.
Referenced by isTrailingComment().
|
inline |
Returns the previous token ignoring comments.
Definition at line 840 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), clang::format::computeNewlines(), clang::format::getEnclosingFunctionName(), clang::format::AnnotatedLine::getLastNonComment(), clang::format::isFunctionDeclarationName(), clang::format::CommaSeparatedList::precomputeFormattingInfos(), and clang::format::shouldUnindentNextOperator().
|
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 822 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), and clang::format::WhitespaceManager::replaceWhitespaceInToken().
|
inline |
Returns the token's type, e.g.
whether "<" is a template opener or binary operator.
Definition at line 430 of file FormatToken.h.
|
inline |
Returns true
if the range of whitespace immediately preceding the Token
is not empty.
Definition at line 828 of file FormatToken.h.
References clang::SourceRange::getEnd(), and WhitespaceRange.
|
inline |
Definition at line 621 of file FormatToken.h.
|
inline |
Definition at line 614 of file FormatToken.h.
|
inline |
Definition at line 622 of file FormatToken.h.
|
inline |
Definition at line 617 of file FormatToken.h.
References clang::Token::is(), Kind, and Tok.
|
inline |
Definition at line 612 of file FormatToken.h.
Referenced by clang::format::NamespaceEndCommentsFixer::analyze(), clang::format::JavaScriptImportSorter::analyze(), clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), clang::format::BreakableBlockComment::BreakableBlockComment(), clang::format::BreakableLineCommentSection::BreakableLineCommentSection(), clang::format::TokenAnnotator::calculateFormattingInformation(), closesScopeAfterBlock(), clang::format::computeNewlines(), clang::format::continuesLineCommentSection(), clang::format::UnwrappedLineFormatter::format(), clang::format::CommaSeparatedList::formatAfterToken(), clang::format::AnnotatedLine::getFirstNonComment(), clang::format::AnnotatedLine::getLastNonComment(), clang::format::getNamespaceToken(), clang::format::FormatTokenSource::getNextNonComment(), clang::format::hasNestedBlockInlined(), clang::format::isAllmanBrace(), clang::format::isAllmanLambdaBrace(), isBlockIndentedInitRBrace(), clang::format::AnnotatedLine::isComment(), clang::format::isConfiguredQualifierOrType(), clang::format::isCtorOrDtorName(), clang::format::isFunctionDeclarationName(), isIf(), clang::format::isQualifierOrType(), isTypeName(), clang::format::markOptionalBraces(), clang::format::mustBeJSIdent(), clang::format::ContinuationIndenter::mustBreak(), opensBlockOrBlockTypeList(), clang::format::opensProtoMessageField(), clang::format::MacroExpander::DefinitionParser::parse(), clang::format::CommaSeparatedList::precomputeFormattingInfos(), clang::format::ShouldBreakBeforeBrace(), and clang::format::startsNextParameter().
Definition at line 613 of file FormatToken.h.
Definition at line 678 of file FormatToken.h.
Referenced by clang::format::computeNewlines().
|
inline |
Definition at line 674 of file FormatToken.h.
Referenced by clang::format::AdditionalKeywords::isJavaScriptIdentifier().
|
inline |
Definition at line 666 of file FormatToken.h.
|
inline |
Definition at line 777 of file FormatToken.h.
bool clang::format::FormatToken::isBlockIndentedInitRBrace | ( | const FormatStyle & | Style | ) | const |
Returns true
if this token ends a block indented initializer list.
Definition at line 56 of file FormatToken.cpp.
References clang::format::FormatStyle::BAS_BlockIndent, clang::format::BK_BracedInit, is(), and MatchingParen.
|
inline |
Definition at line 738 of file FormatToken.h.
Returns whether the token is the left square bracket of a C++ structured binding declaration.
Definition at line 864 of file FormatToken.h.
|
inline |
Returns true
if this is a keyword that can be used like a function call (e.g.
sizeof, typeid, ...).
Definition at line 789 of file FormatToken.h.
Definition at line 633 of file FormatToken.h.
|
inline |
Returns true
if this is a string literal that's like a label, e.g.
ends with "=" or ":".
Definition at line 804 of file FormatToken.h.
|
inline |
Returns true
if this is a "." or "->" accessing a member.
Definition at line 728 of file FormatToken.h.
Referenced by clang::format::startsSegmentOfBuilderTypeCall().
Definition at line 631 of file FormatToken.h.
Referenced by clang::format::NamespaceEndCommentsFixer::analyze(), clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), clang::format::computeNewlines(), clang::format::isC78ParameterDecl(), clang::format::isFunctionDeclarationName(), clang::format::isPossibleMacro(), clang::format::opensProtoMessageField(), and clang::format::MacroExpander::DefinitionParser::parse().
|
inline |
Definition at line 698 of file FormatToken.h.
|
inline |
Definition at line 670 of file FormatToken.h.
References clang::Token::getKind(), clang::tok::isStringLiteral(), and Tok.
|
inline |
Definition at line 624 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), clang::format::computeNewlines(), clang::format::CommaSeparatedList::formatAfterToken(), clang::format::isAllmanBrace(), clang::format::isAllmanLambdaBrace(), clang::format::isC78ParameterDecl(), clang::format::isC78Type(), clang::format::IsFunctionArgument(), clang::format::isJSDeclOrStmt(), clang::format::AdditionalKeywords::isTableGenKeyword(), clang::format::AdditionalKeywords::isVerilogIdentifier(), clang::format::AdditionalKeywords::isVerilogQualifier(), clang::format::mustBeJSIdent(), clang::format::mustBeJSIdentOrValue(), and clang::format::tokenCanStartNewLine().
|
inline |
Definition at line 628 of file FormatToken.h.
References getPackingKind().
|
inline |
Definition at line 734 of file FormatToken.h.
References isOneOf().
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft().
|
inline |
Definition at line 664 of file FormatToken.h.
|
inline |
Definition at line 782 of file FormatToken.h.
References clang::prec::Comma, and getPrecedence().
Referenced by clang::format::TokenAnnotator::calculateFormattingInformation(), clang::format::CommaSeparatedList::precomputeFormattingInfos(), clang::format::startsNextOperand(), and clang::format::startsNextParameter().
|
inline |
Definition at line 457 of file FormatToken.h.
References MacroCtx, and clang::format::MR_UnexpandedArg.
bool clang::format::FormatToken::isTypeName | ( | const LangOptions & | LangOpts | ) | const |
Definition at line 44 of file FormatToken.cpp.
References clang::format::CppNonKeywordTypes, is(), clang::Token::isSimpleTypeSpecifier(), Tok, and TokenText.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), clang::format::isConfiguredQualifierOrType(), clang::format::isQualifierOrType(), and isTypeOrIdentifier().
bool clang::format::FormatToken::isTypeOrIdentifier | ( | const LangOptions & | LangOpts | ) | const |
Definition at line 52 of file FormatToken.cpp.
References isOneOf(), and isTypeName().
|
inline |
Definition at line 761 of file FormatToken.h.
bool clang::format::FormatToken::opensBlockOrBlockTypeList | ( | const FormatStyle & | Style | ) | const |
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 71 of file FormatToken.cpp.
References clang::format::BK_Block, clang::format::BK_BracedInit, getBlockKind(), is(), NestingLevel, and opensScope().
|
inline |
Returns whether Tok
is ([{ or an opening < of a template or in protos.
Definition at line 708 of file FormatToken.h.
Referenced by clang::format::TokenAnnotator::calculateFormattingInformation(), and opensBlockOrBlockTypeList().
|
inline |
Definition at line 451 of file FormatToken.h.
References MacroCtx, clang::format::MR_UnexpandedArg, and clang::T.
|
inline |
Definition at line 392 of file FormatToken.h.
|
inline |
Definition at line 405 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::replaceWhitespace().
|
inline |
Sets the type and also the finalized flag.
This prevents the type to be reset in TokenAnnotator::resetTokenMetadata(). If the type needs to be set to another one please use overwriteFixedType, or even better remove the need to reassign the type.
Definition at line 445 of file FormatToken.h.
Referenced by clang::format::TokenAnnotator::annotate(), and clang::format::TokenAnnotator::calculateFormattingInformation().
|
inline |
Definition at line 418 of file FormatToken.h.
|
inline |
Definition at line 431 of file FormatToken.h.
|
inline |
true
if this token starts a sequence with the given tokens in order, following the Next
pointers, ignoring comments.
Definition at line 649 of file FormatToken.h.
Referenced by clang::format::AnnotatedLine::startsWith().
This notes the start of the line of an array initializer.
Definition at line 575 of file FormatToken.h.
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 516 of file FormatToken.h.
unsigned clang::format::FormatToken::BlockParameterCount = 0 |
Number of parameters that are nested blocks, if this is "(", "[" or "<".
Definition at line 495 of file FormatToken.h.
int8_t clang::format::FormatToken::BraceCount = 0 |
Number of optional braces to be inserted after this token: -1: a single left brace 0: no braces >0: number of right braces.
Definition at line 593 of file FormatToken.h.
unsigned clang::format::FormatToken::CanBreakBefore |
true
if it is allowed to break before this token.
Definition at line 352 of file FormatToken.h.
Referenced by clang::format::CommaSeparatedList::precomputeFormattingInfos().
SmallVector<AnnotatedLine *, 1> clang::format::FormatToken::Children |
If this token starts a block, this contains all the unwrapped lines in it.
Definition at line 597 of file FormatToken.h.
Referenced by clang::format::TokenAnnotator::calculateFormattingInformation(), and clang::format::isItAnEmptyLambdaAllowed().
unsigned clang::format::FormatToken::ClosesRequiresClause |
true
if this is the last token within requires clause.
Definition at line 379 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), and clang::format::LeftRightQualifierAlignmentFixer::analyzeRight().
unsigned clang::format::FormatToken::ClosesTemplateDeclaration |
true
if this is the ">" of "template<..>".
Definition at line 355 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), and clang::format::LeftRightQualifierAlignmentFixer::analyzeRight().
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 481 of file FormatToken.h.
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 371 of file FormatToken.h.
unsigned clang::format::FormatToken::EndsBinaryExpression |
true
if this token ends a binary expression.
Definition at line 361 of file FormatToken.h.
unsigned clang::format::FormatToken::EndsCppAttributeGroup |
true
if this token ends a group of C++ attributes.
Definition at line 382 of file FormatToken.h.
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 550 of file FormatToken.h.
unsigned clang::format::FormatToken::FakeRParens = 0 |
Insert this many fake ) after this token for correct indentation.
Definition at line 552 of file FormatToken.h.
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 376 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::addUntouchableToken(), clang::format::NamespaceEndCommentsFixer::analyze(), clang::format::BreakableBlockComment::mayReflow(), clang::format::BreakableLineCommentSection::mayReflow(), clang::format::WhitespaceManager::replaceWhitespace(), and clang::format::WhitespaceManager::replaceWhitespaceInToken().
prec::Level clang::format::FormatToken::ForcedPrecedence = prec::Unknown |
Used to set an operator precedence explicitly.
Definition at line 460 of file FormatToken.h.
Has "\n\f\n" or "\n\f\r\n" before TokenText.
Definition at line 587 of file FormatToken.h.
unsigned clang::format::FormatToken::HasUnescapedNewline |
Whether there is at least one unescaped newline before the Token
.
Definition at line 330 of file FormatToken.h.
Referenced by clang::format::CommaSeparatedList::precomputeFormattingInfos().
unsigned clang::format::FormatToken::IndentLevel = 0 |
The indent level of this token. Copied from the surrounding line.
Definition at line 523 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::Change::indentAndNestingLevel().
This starts an array initializer.
Definition at line 578 of file FormatToken.h.
unsigned clang::format::FormatToken::IsFirst |
Indicates that this is the first token of the file.
Definition at line 336 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::addUntouchableToken(), clang::format::UnwrappedLineFormatter::format(), clang::format::WhitespaceManager::replaceWhitespace(), and clang::format::WhitespaceManager::replaceWhitespaceInToken().
unsigned clang::format::FormatToken::IsMultiline |
Whether the token text contains newlines (escaped or not).
Definition at line 333 of file FormatToken.h.
unsigned clang::format::FormatToken::IsUnterminatedLiteral |
Set to true
if this token is an unterminated literal.
Definition at line 349 of file FormatToken.h.
unsigned clang::format::FormatToken::LastLineColumnWidth = 0 |
Contains the width in columns of the last line of a multi-line token.
Definition at line 485 of file FormatToken.h.
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 476 of file FormatToken.h.
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 533 of file FormatToken.h.
std::optional<MacroExpansion> clang::format::FormatToken::MacroCtx |
Definition at line 601 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::addUntouchableToken(), clang::format::MacroExpander::expand(), isTypeFinalized(), overwriteFixedType(), clang::format::WhitespaceManager::replaceWhitespace(), and clang::format::WhitespaceManager::replaceWhitespaceInToken().
When macro expansion introduces nodes with children, those are marked as MacroParent
.
FIXME: The formatting code currently hard-codes the assumption that child nodes are introduced by blocks following an opening brace. This is deeply baked into the code and disentangling this will require signficant refactorings. MacroParent
allows us to special-case the cases in which we treat parents as block-openers for now.
Definition at line 610 of file FormatToken.h.
FormatToken* clang::format::FormatToken::MatchingParen = nullptr |
If this is a bracket, this points to the matching one.
Definition at line 563 of file FormatToken.h.
Referenced by clang::format::LeftRightQualifierAlignmentFixer::analyzeLeft(), clang::format::TokenAnnotator::calculateFormattingInformation(), clang::format::CommaSeparatedList::formatAfterToken(), clang::format::getEnclosingFunctionName(), clang::format::getFunctionName(), clang::format::getLengthToMatchingParen(), isBlockIndentedInitRBrace(), clang::format::IsFunctionArgument(), and clang::format::markOptionalBraces().
Might be function declaration open/closing paren.
Definition at line 584 of file FormatToken.h.
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 342 of file FormatToken.h.
Referenced by clang::format::TokenAnnotator::calculateFormattingInformation(), and clang::format::CommaSeparatedList::precomputeFormattingInfos().
unsigned clang::format::FormatToken::MustBreakBeforeFinalized |
Whether MustBreakBefore is finalized during parsing and must not be reset between runs.
Definition at line 346 of file FormatToken.h.
unsigned clang::format::FormatToken::NestingLevel = 0 |
The nesting level of this token, i.e.
the number of surrounding (), [], {} or <>.
Definition at line 520 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::Change::indentAndNestingLevel(), clang::format::isFunctionDeclarationName(), opensBlockOrBlockTypeList(), and clang::format::opensProtoMessageField().
int clang::format::FormatToken::Newlines = -1 |
The number of newlines immediately before the Token
after formatting.
This is used to avoid overlapping whitespace replacements when Newlines
is recomputed for a finalized preprocessor branching directive.
Definition at line 472 of file FormatToken.h.
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 466 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::addUntouchableToken(), clang::format::NamespaceEndCommentsFixer::analyze(), clang::format::JavaScriptImportSorter::analyze(), clang::format::UnwrappedLineFormatter::format(), clang::format::mustBreakAfterAttributes(), and clang::format::TokenAnnotator::setCommentLineLevels().
FormatToken* clang::format::FormatToken::Next = nullptr |
The next token in the unwrapped line.
Definition at line 569 of file FormatToken.h.
Referenced by clang::format::NamespaceEndCommentsFixer::analyze(), clang::format::LeftRightQualifierAlignmentFixer::analyzeRight(), clang::format::AnnotatedLine::AnnotatedLine(), clang::format::BreakableLineCommentSection::BreakableLineCommentSection(), clang::format::TokenAnnotator::calculateFormattingInformation(), clang::format::UnwrappedLineFormatter::format(), clang::format::CommaSeparatedList::formatAfterToken(), clang::format::IsFunctionArgument(), clang::format::isFunctionDeclarationName(), clang::format::CommaSeparatedList::precomputeFormattingInfos(), and clang::format::BreakableLineCommentSection::updateNextToken().
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 560 of file FormatToken.h.
Referenced by clang::format::getLengthToNextOperator().
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 538 of file FormatToken.h.
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 556 of file FormatToken.h.
Is optional and can be removed.
Definition at line 581 of file FormatToken.h.
Referenced by clang::format::markOptionalBraces().
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 507 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::addUntouchableToken(), clang::format::UnwrappedLineFormatter::format(), and clang::format::TokenAnnotator::setCommentLineLevels().
unsigned clang::format::FormatToken::ParameterCount = 0 |
Number of parameters, if this is "(", "[" or "<".
Definition at line 491 of file FormatToken.h.
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 543 of file FormatToken.h.
tok::TokenKind clang::format::FormatToken::ParentBracket = tok::unknown |
If this is a bracket ("<", "(", "[" or "{"), contains the kind of the surrounding bracket.
Definition at line 499 of file FormatToken.h.
unsigned clang::format::FormatToken::PartOfMultiVariableDeclStmt |
Is this token part of a DeclStmt
defining multiple variables?
Only set if Type
== TT_StartOfName
.
Definition at line 366 of file FormatToken.h.
FormatToken* clang::format::FormatToken::Previous = nullptr |
The previous token in the unwrapped line.
Definition at line 566 of file FormatToken.h.
Referenced by clang::format::AnnotatedLine::AnnotatedLine(), clang::format::isC78ParameterDecl(), clang::format::isCtorOrDtorName(), clang::format::opensProtoMessageField(), clang::format::CommaSeparatedList::precomputeFormattingInfos(), clang::format::startsNextOperand(), clang::format::startsNextParameter(), and clang::format::startsSegmentOfBuilderTypeCall().
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 323 of file FormatToken.h.
unsigned clang::format::FormatToken::SpacesRequiredBefore = 0 |
The number of spaces that should be inserted before this token.
Definition at line 488 of file FormatToken.h.
unsigned clang::format::FormatToken::SplitPenalty = 0 |
Penalty for inserting a line break before this token.
Definition at line 526 of file FormatToken.h.
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 359 of file FormatToken.h.
The first token in set of column elements.
Definition at line 572 of file FormatToken.h.
Token clang::format::FormatToken::Tok |
The Token
.
Definition at line 311 of file FormatToken.h.
Referenced by clang::format::UnwrappedLineFormatter::format(), is(), clang::format::isConfiguredQualifier(), clang::format::isFunctionDeclarationName(), clang::format::AdditionalKeywords::isJavaScriptIdentifier(), isObjCAtKeyword(), clang::format::isQualifier(), isTypeName(), clang::format::AdditionalKeywords::isWordLike(), clang::format::JavaScriptImportSorter::JavaScriptImportSorter(), clang::format::mustBeJSIdent(), clang::format::mustBeJSIdentOrValue(), clang::format::ScopedMacroState::ScopedMacroState(), and clang::format::ShouldBreakBeforeBrace().
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 317 of file FormatToken.h.
Referenced by clang::format::BreakableBlockComment::adaptStartOfLine(), clang::format::NamespaceEndCommentsFixer::analyze(), clang::format::JavaScriptImportSorter::analyze(), clang::format::BreakableBlockComment::BreakableBlockComment(), clang::format::BreakableStringLiteral::BreakableStringLiteral(), clang::format::BreakableComment::compressWhitespace(), clang::format::continuesLineCommentSection(), clang::format::getEnclosingFunctionName(), clang::format::getNamespaceTokenText(), clang::format::BreakableBlockComment::insertBreak(), clang::format::BreakableLineCommentSection::insertBreak(), clang::format::isCtorOrDtorName(), clang::format::isPossibleMacro(), isTypeName(), clang::format::MacroExpander::DefinitionParser::parse(), clang::format::BreakableBlockComment::reflow(), clang::format::BreakableLineCommentSection::reflow(), and clang::format::BreakableStringLiteralUsingOperators::updateAfterBroken().
unsigned clang::format::FormatToken::TotalLength = 0 |
The total length of the unwrapped line up to and including this token.
Definition at line 503 of file FormatToken.h.
Referenced by clang::format::TokenAnnotator::calculateFormattingInformation(), clang::format::UnwrappedLineFormatter::format(), clang::format::getLengthToMatchingParen(), and clang::format::getLengthToNextOperator().
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 511 of file FormatToken.h.
SourceRange clang::format::FormatToken::WhitespaceRange |
The range of the whitespace immediately preceding the Token
.
Definition at line 326 of file FormatToken.h.
Referenced by clang::format::WhitespaceManager::addUntouchableToken(), getPrecedence(), hasWhitespaceBefore(), and clang::format::WhitespaceManager::replaceWhitespace().