clang 20.0.0git
Public Member Functions | List of all members
clang::format::ContinuationIndenter Class Reference

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

Public Member Functions

 ContinuationIndenter (const FormatStyle &Style, const AdditionalKeywords &Keywords, const SourceManager &SourceMgr, WhitespaceManager &Whitespaces, encoding::Encoding Encoding, bool BinPackInconclusiveFunctions)
 Constructs a ContinuationIndenter to format Line starting in column FirstIndent.
 
LineState getInitialState (unsigned FirstIndent, unsigned FirstStartColumn, const AnnotatedLine *Line, bool DryRun)
 Get the initial state, i.e.
 
bool canBreak (const LineState &State)
 Returns true, if a line break after State is allowed.
 
bool mustBreak (const LineState &State)
 Returns true, if a line break after State is mandatory.
 
unsigned addTokenToState (LineState &State, bool Newline, bool DryRun, unsigned ExtraSpaces=0)
 Appends the next token to State and updates information necessary for indentation.
 
unsigned getColumnLimit (const LineState &State) const
 Get the column limit for this line.
 

Detailed Description

Definition at line 46 of file ContinuationIndenter.h.

Constructor & Destructor Documentation

◆ ContinuationIndenter()

clang::format::ContinuationIndenter::ContinuationIndenter ( const FormatStyle Style,
const AdditionalKeywords Keywords,
const SourceManager SourceMgr,
WhitespaceManager Whitespaces,
encoding::Encoding  Encoding,
bool  BinPackInconclusiveFunctions 
)

Constructs a ContinuationIndenter to format Line starting in column FirstIndent.

Definition at line 261 of file ContinuationIndenter.cpp.

Member Function Documentation

◆ addTokenToState()

unsigned clang::format::ContinuationIndenter::addTokenToState ( LineState State,
bool  Newline,
bool  DryRun,
unsigned  ExtraSpaces = 0 
)

Appends the next token to State and updates information necessary for indentation.

Puts the token on the current line if Newline is false and adds a line break and necessary indentation otherwise.

If DryRun is false, also creates and stores the required Replacement.

Definition at line 659 of file ContinuationIndenter.cpp.

References clang::SourceManager::getSpellingColumnNumber(), and Previous.

◆ canBreak()

bool clang::format::ContinuationIndenter::canBreak ( const LineState State)

◆ getColumnLimit()

unsigned clang::format::ContinuationIndenter::getColumnLimit ( const LineState State) const

Get the column limit for this line.

This is the style's column limit, potentially reduced for preprocessor definitions.

Definition at line 2884 of file ContinuationIndenter.cpp.

References clang::format::FormatStyle::ColumnLimit.

Referenced by mustBreak().

◆ getInitialState()

LineState clang::format::ContinuationIndenter::getInitialState ( unsigned  FirstIndent,
unsigned  FirstStartColumn,
const AnnotatedLine Line,
bool  DryRun 
)

Get the initial state, i.e.

the state after placing Line's first token at FirstIndent. When reformatting a fragment of code, as in the case of formatting inside raw string literals, FirstStartColumn is the column at which the state of the parent formatter is.

Definition at line 272 of file ContinuationIndenter.cpp.

References clang::format::FormatStyle::IndentPPDirectives, clang::format::FormatStyle::Language, clang::Line, clang::format::FormatStyle::LK_TextProto, clang::format::LT_ImportStatement, clang::format::LT_PreprocessorDirective, and clang::format::FormatStyle::PPDIS_AfterHash.

◆ mustBreak()

bool clang::format::ContinuationIndenter::mustBreak ( const LineState State)

Returns true, if a line break after State is mandatory.

Definition at line 397 of file ContinuationIndenter.cpp.

References clang::format::FormatStyle::AllowShortFunctionsOnASingleLine, clang::format::FormatStyle::AlwaysBreakBeforeMultilineStrings, clang::prec::Assignment, clang::format::FormatStyle::BBCDS_Allowed, clang::format::FormatStyle::BBCDS_Always, clang::format::FormatStyle::BBCDS_Never, clang::format::FormatStyle::BBIAS_Always, clang::format::FormatStyle::BBIAS_OnlyMultiline, clang::format::FormatStyle::BCIS_AfterColon, clang::format::FormatStyle::BCIS_BeforeColon, clang::format::FormatStyle::BraceWrappingFlags::BeforeLambdaBody, clang::format::FormatStyle::BinPackParameters, clang::format::BK_Block, clang::format::FormatStyle::BraceWrapping, clang::format::FormatStyle::BreakAfterReturnType, clang::format::FormatStyle::BreakBeforeConceptDeclarations, clang::format::FormatStyle::BreakBeforeInlineASMColon, clang::format::FormatStyle::BreakBeforeTernaryOperators, clang::format::FormatStyle::BreakConstructorInitializers, clang::format::FormatStyle::BreakTemplateDeclarations, clang::format::FormatStyle::BTDS_Leave, clang::format::FormatStyle::BTDS_No, clang::format::FormatStyle::ColumnLimit, clang::format::FormatStyle::ContinuationIndentWidth, clang::prec::Equality, getColumnLimit(), clang::format::getLengthToMatchingParen(), clang::format::getLengthToNextOperator(), clang::format::FormatToken::is(), clang::format::FormatStyle::isCpp(), clang::format::FormatStyle::isCSharp(), clang::format::FormatStyle::isJavaScript(), clang::format::AdditionalKeywords::kw_dollar, clang::format::FormatStyle::Language, clang::format::FormatStyle::LK_ObjC, clang::format::LT_PreprocessorDirective, clang::format::FormatStyle::ObjCBreakBeforeNestedBlockParam, clang::format::opensProtoMessageField(), Previous, clang::format::FormatStyle::RCPS_SingleLine, clang::format::FormatStyle::RCPS_WithPreceding, clang::prec::Relational, clang::format::FormatStyle::RequiresClausePosition, clang::format::FormatStyle::RTBS_ExceptShortType, clang::format::FormatStyle::SFS_All, clang::prec::Spaceship, clang::format::startsNextParameter(), and clang::format::startsSegmentOfBuilderTypeCall().


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