clang 20.0.0git
|
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Format/BreakableToken.h"
Public Member Functions | |
BreakableBlockComment (const FormatToken &Token, unsigned StartColumn, unsigned OriginalStartColumn, bool FirstInLine, bool InPPDirective, encoding::Encoding Encoding, const FormatStyle &Style, bool UseCRLF) | |
Split | getSplit (unsigned LineIndex, unsigned TailOffset, unsigned ColumnLimit, unsigned ContentStartColumn, const llvm::Regex &CommentPragmasRegex) const override |
Returns a range (offset, length) at which to break the line at LineIndex , if previously broken at TailOffset . | |
unsigned | getRangeLength (unsigned LineIndex, unsigned Offset, StringRef::size_type Length, unsigned StartColumn) const override |
Returns the number of columns required to format the text in the byte range [Offset , Offset + Length ). | |
unsigned | getRemainingLength (unsigned LineIndex, unsigned Offset, unsigned StartColumn) const override |
Returns the number of columns required to format the text following the byte Offset in the line LineIndex , including potentially unbreakable sequences of tokens following after the end of the token. | |
unsigned | getContentStartColumn (unsigned LineIndex, bool Break) const override |
Returns the column at which content in line LineIndex starts, assuming no reflow. | |
unsigned | getContentIndent (unsigned LineIndex) const override |
Returns additional content indent required for the second line after the content at line LineIndex is broken. | |
void | insertBreak (unsigned LineIndex, unsigned TailOffset, Split Split, unsigned ContentIndent, WhitespaceManager &Whitespaces) const override |
Emits the previously retrieved Split via Whitespaces . | |
Split | getReflowSplit (unsigned LineIndex, const llvm::Regex &CommentPragmasRegex) const override |
Returns a whitespace range (offset, length) of the content at LineIndex such that the content of that line is reflown to the end of the previous one. | |
void | reflow (unsigned LineIndex, WhitespaceManager &Whitespaces) const override |
Reflows the current line into the end of the previous one. | |
bool | introducesBreakBeforeToken () const override |
Returns whether there will be a line break at the start of the token. | |
void | adaptStartOfLine (unsigned LineIndex, WhitespaceManager &Whitespaces) const override |
Replaces the whitespace between LineIndex-1 and LineIndex . | |
Split | getSplitAfterLastLine (unsigned TailOffset) const override |
Returns a whitespace range (offset, length) of the content at the last line that needs to be reformatted after the last line has been reformatted. | |
bool | mayReflow (unsigned LineIndex, const llvm::Regex &CommentPragmasRegex) const override |
Public Member Functions inherited from clang::format::BreakableComment | |
bool | supportsReflow () const override |
Returns whether the token supports reflowing text. | |
unsigned | getLineCount () const override |
Returns the number of lines in this token in the original code. | |
Split | getSplit (unsigned LineIndex, unsigned TailOffset, unsigned ColumnLimit, unsigned ContentStartColumn, const llvm::Regex &CommentPragmasRegex) const override |
Returns a range (offset, length) at which to break the line at LineIndex , if previously broken at TailOffset . | |
void | compressWhitespace (unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces) const override |
Replaces the whitespace range described by Split with a single space. | |
Public Member Functions inherited from clang::format::BreakableToken | |
virtual | ~BreakableToken () |
virtual unsigned | getLineCount () const =0 |
Returns the number of lines in this token in the original code. | |
virtual unsigned | getRangeLength (unsigned LineIndex, unsigned Offset, StringRef::size_type Length, unsigned StartColumn) const =0 |
Returns the number of columns required to format the text in the byte range [Offset , Offset + Length ). | |
virtual unsigned | getRemainingLength (unsigned LineIndex, unsigned Offset, unsigned StartColumn) const |
Returns the number of columns required to format the text following the byte Offset in the line LineIndex , including potentially unbreakable sequences of tokens following after the end of the token. | |
virtual unsigned | getContentStartColumn (unsigned LineIndex, bool Break) const =0 |
Returns the column at which content in line LineIndex starts, assuming no reflow. | |
virtual unsigned | getContentIndent (unsigned LineIndex) const |
Returns additional content indent required for the second line after the content at line LineIndex is broken. | |
virtual Split | getSplit (unsigned LineIndex, unsigned TailOffset, unsigned ColumnLimit, unsigned ContentStartColumn, const llvm::Regex &CommentPragmasRegex) const =0 |
Returns a range (offset, length) at which to break the line at LineIndex , if previously broken at TailOffset . | |
virtual void | insertBreak (unsigned LineIndex, unsigned TailOffset, Split Split, unsigned ContentIndent, WhitespaceManager &Whitespaces) const =0 |
Emits the previously retrieved Split via Whitespaces . | |
unsigned | getLengthAfterCompression (unsigned RemainingTokenColumns, Split Split) const |
Returns the number of columns needed to format RemainingTokenColumns , assuming that Split is within the range measured by RemainingTokenColumns , and that the whitespace in Split is reduced to a single space. | |
virtual void | compressWhitespace (unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces) const =0 |
Replaces the whitespace range described by Split with a single space. | |
virtual bool | supportsReflow () const |
Returns whether the token supports reflowing text. | |
virtual Split | getReflowSplit (unsigned LineIndex, const llvm::Regex &CommentPragmasRegex) const |
Returns a whitespace range (offset, length) of the content at LineIndex such that the content of that line is reflown to the end of the previous one. | |
virtual void | reflow (unsigned LineIndex, WhitespaceManager &Whitespaces) const |
Reflows the current line into the end of the previous one. | |
virtual bool | introducesBreakBeforeToken () const |
Returns whether there will be a line break at the start of the token. | |
virtual void | adaptStartOfLine (unsigned LineIndex, WhitespaceManager &Whitespaces) const |
Replaces the whitespace between LineIndex-1 and LineIndex . | |
virtual Split | getSplitAfterLastLine (unsigned TailOffset) const |
Returns a whitespace range (offset, length) of the content at the last line that needs to be reformatted after the last line has been reformatted. | |
void | replaceWhitespaceAfterLastLine (unsigned TailOffset, Split SplitAfterLastLine, WhitespaceManager &Whitespaces) const |
Replaces the whitespace from SplitAfterLastLine on the last line after the last line has been formatted by performing a reformatting. | |
virtual void | updateNextToken (LineState &State) const |
Updates the next token of State to the next token after this one. | |
virtual void | updateAfterBroken (WhitespaceManager &Whitespaces) const |
Adds replacements that are needed when the token is broken. | |
Static Public Attributes | |
static const llvm::StringSet | ContentIndentingJavadocAnnotations |
Additional Inherited Members | |
Public Types inherited from clang::format::BreakableToken | |
typedef std::pair< StringRef::size_type, unsigned > | Split |
Contains starting character index and length of split. | |
Protected Member Functions inherited from clang::format::BreakableComment | |
BreakableComment (const FormatToken &Token, unsigned StartColumn, bool InPPDirective, encoding::Encoding Encoding, const FormatStyle &Style) | |
Creates a breakable token for a comment. | |
const FormatToken & | tokenAt (unsigned LineIndex) const |
virtual bool | mayReflow (unsigned LineIndex, const llvm::Regex &CommentPragmasRegex) const =0 |
Protected Member Functions inherited from clang::format::BreakableToken | |
BreakableToken (const FormatToken &Tok, bool InPPDirective, encoding::Encoding Encoding, const FormatStyle &Style) | |
Protected Attributes inherited from clang::format::BreakableComment | |
SmallVector< StringRef, 16 > | Lines |
SmallVector< StringRef, 16 > | Content |
SmallVector< FormatToken *, 16 > | Tokens |
SmallVector< int, 16 > | ContentColumn |
unsigned | StartColumn |
StringRef | ReflowPrefix = " " |
Protected Attributes inherited from clang::format::BreakableToken | |
const FormatToken & | Tok |
const bool | InPPDirective |
const encoding::Encoding | Encoding |
const FormatStyle & | Style |
Definition at line 398 of file BreakableToken.h.
clang::format::BreakableBlockComment::BreakableBlockComment | ( | const FormatToken & | Token, |
unsigned | StartColumn, | ||
unsigned | OriginalStartColumn, | ||
bool | FirstInLine, | ||
bool | InPPDirective, | ||
encoding::Encoding | Encoding, | ||
const FormatStyle & | Style, | ||
bool | UseCRLF | ||
) |
Definition at line 480 of file BreakableToken.cpp.
References clang::format::FormatStyle::ColumnLimit, clang::format::encoding::columnWidthWithTabs(), clang::format::BreakableComment::Content, clang::format::BreakableComment::ContentColumn, clang::format::BreakableToken::Encoding, clang::format::FormatToken::is(), clang::format::FormatStyle::isJavaScript(), clang::format::FormatStyle::Language, clang::format::BreakableComment::Lines, clang::format::FormatStyle::LK_Java, clang::format::BreakableComment::StartColumn, clang::format::BreakableToken::Style, clang::format::FormatStyle::TabWidth, Text, clang::format::BreakableToken::Tok, clang::format::BreakableComment::Tokens, and clang::format::FormatToken::TokenText.
|
overridevirtual |
Replaces the whitespace between LineIndex-1
and LineIndex
.
Reimplemented from clang::format::BreakableToken.
Definition at line 789 of file BreakableToken.cpp.
References clang::format::Blanks, clang::format::BreakableComment::Content, clang::format::BreakableComment::ContentColumn, clang::format::BreakableToken::InPPDirective, insertBreak(), clang::format::BreakableComment::Lines, clang::format::BreakableComment::tokenAt(), and clang::format::FormatToken::TokenText.
|
overridevirtual |
Returns additional content indent required for the second line after the content at line LineIndex
is broken.
Reimplemented from clang::format::BreakableToken.
Definition at line 696 of file BreakableToken.cpp.
References clang::format::Blanks, clang::format::BreakableComment::Content, ContentIndentingJavadocAnnotations, clang::format::FormatStyle::ContinuationIndentWidth, clang::format::FormatStyle::isJavaScript(), clang::format::FormatStyle::Language, clang::format::FormatStyle::LK_Java, and clang::format::BreakableToken::Style.
Referenced by getReflowSplit().
|
overridevirtual |
Returns the column at which content in line LineIndex
starts, assuming no reflow.
If Break
is true, returns the column at which the line should start after the line break. If Break
is false, returns the column at which the line itself will start.
Implements clang::format::BreakableToken.
Definition at line 683 of file BreakableToken.cpp.
References clang::format::BreakableComment::ContentColumn.
|
overridevirtual |
Returns the number of columns required to format the text in the byte range [Offset
, Offset
+
Length
).
Offset
is the byte offset from the start of the content of the line at LineIndex
.
StartColumn
is the column at which the text starts in the formatted file, needed to compute tab stops correctly.
Implements clang::format::BreakableToken.
Definition at line 655 of file BreakableToken.cpp.
References clang::format::encoding::columnWidthWithTabs(), clang::format::BreakableComment::Content, clang::format::BreakableToken::Encoding, clang::format::BreakableComment::StartColumn, clang::format::BreakableToken::Style, and clang::format::FormatStyle::TabWidth.
Referenced by getRemainingLength().
|
overridevirtual |
Returns a whitespace range (offset, length) of the content at LineIndex
such that the content of that line is reflown to the end of the previous one.
Returning (StringRef::npos, 0) indicates reflowing is not possible.
The range will include any whitespace preceding the specified line's content.
If the split is not contained within one token, for example when reflowing line comments, returns (0, <length>).
Reimplemented from clang::format::BreakableToken.
Definition at line 743 of file BreakableToken.cpp.
References clang::format::Blanks, clang::format::BreakableComment::Content, getContentIndent(), and mayReflow().
|
overridevirtual |
Returns the number of columns required to format the text following the byte Offset
in the line LineIndex
, including potentially unbreakable sequences of tokens following after the end of the token.
Offset
is the byte offset from the start of the content of the line at LineIndex
.
StartColumn
is the column at which the text starts in the formatted file, needed to compute tab stops correctly.
For breakable tokens that never use extra space at the end of a line, this is equivalent to getRangeLength with a Length of StringRef::npos.
Reimplemented from clang::format::BreakableToken.
Definition at line 664 of file BreakableToken.cpp.
References clang::format::BreakableComment::Content, getRangeLength(), clang::format::BreakableComment::Lines, and clang::format::BreakableComment::StartColumn.
|
overridevirtual |
Returns a range (offset, length) at which to break the line at LineIndex
, if previously broken at TailOffset
.
If possible, do not violate ColumnLimit
, assuming the text starting at TailOffset
in the token is formatted starting at ContentStartColumn in the reformatted file.
Reimplemented from clang::format::BreakableComment.
Definition at line 607 of file BreakableToken.cpp.
References clang::format::BreakableComment::Content, clang::format::BreakableToken::Encoding, clang::format::getCommentSplit(), clang::format::BreakableToken::Style, and clang::format::FormatStyle::TabWidth.
|
overridevirtual |
Returns a whitespace range (offset, length) of the content at the last line that needs to be reformatted after the last line has been reformatted.
A result having offset == StringRef::npos means that no reformat is necessary.
Reimplemented from clang::format::BreakableToken.
Definition at line 838 of file BreakableToken.cpp.
References clang::format::Blanks, clang::format::BreakableComment::Content, and clang::Line.
|
overridevirtual |
Emits the previously retrieved Split
via Whitespaces
.
Implements clang::format::BreakableToken.
Definition at line 712 of file BreakableToken.cpp.
References clang::format::BreakableComment::Content, clang::format::BreakableToken::InPPDirective, clang::format::BreakableComment::Lines, Text, clang::format::BreakableComment::tokenAt(), and clang::format::FormatToken::TokenText.
Referenced by adaptStartOfLine().
|
overridevirtual |
Returns whether there will be a line break at the start of the token.
Reimplemented from clang::format::BreakableToken.
Definition at line 762 of file BreakableToken.cpp.
References clang::format::Blanks, and clang::format::BreakableComment::Lines.
|
overridevirtual |
Implements clang::format::BreakableComment.
Definition at line 851 of file BreakableToken.cpp.
References clang::format::Blanks, clang::format::BreakableComment::Content, clang::format::FormatToken::Finalized, clang::format::BreakableComment::Lines, clang::format::mayReflowContent(), clang::format::switchesFormatting(), clang::format::BreakableToken::Tok, and clang::format::BreakableComment::tokenAt().
Referenced by getReflowSplit().
|
overridevirtual |
Reflows the current line into the end of the previous one.
Reimplemented from clang::format::BreakableToken.
Definition at line 768 of file BreakableToken.cpp.
References clang::format::Blanks, clang::format::BreakableComment::Content, clang::format::BreakableToken::InPPDirective, clang::format::BreakableComment::ReflowPrefix, clang::format::BreakableComment::tokenAt(), clang::format::BreakableComment::Tokens, and clang::format::FormatToken::TokenText.
|
static |
Definition at line 432 of file BreakableToken.h.
Referenced by getContentIndent().