clang  5.0.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::format::BreakableComment Class Referenceabstract

#include "/usr/local/google/work/llvm-www-releases/5.0.0/docsbuild/llvm.src/tools/clang/lib/Format/BreakableToken.h"

Inheritance diagram for clang::format::BreakableComment:
[legend]
Collaboration diagram for clang::format::BreakableComment:
[legend]

Public Member Functions

unsigned getLineCount () const override
 Returns the number of lines in this token in the original code. More...
 
Split getSplit (unsigned LineIndex, unsigned TailOffset, unsigned ColumnLimit, llvm::Regex &CommentPragmasRegex) const override
 Returns a range (offset, length) at which to break the line at LineIndex, if previously broken at TailOffset. More...
 
void compressWhitespace (unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces) override
 Replaces the whitespace range described by Split with a single space. More...
 
- Public Member Functions inherited from clang::format::BreakableToken
virtual ~BreakableToken ()
 
virtual unsigned getLineLengthAfterSplit (unsigned LineIndex, unsigned TailOffset, StringRef::size_type Length) const =0
 Returns the number of columns required to format the piece of line at LineIndex, from byte offset TailOffset with length Length. More...
 
virtual void insertBreak (unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces)=0
 Emits the previously retrieved Split via Whitespaces. More...
 
unsigned getLineLengthAfterCompression (unsigned RemainingTokenColumns, Split Split) const
 Returns the number of columns required to format the piece of line at LineIndex, from byte offset TailOffset after the whitespace range Split has been compressed into a single space. More...
 
virtual Split getSplitBefore (unsigned LineIndex, unsigned PreviousEndColumn, unsigned ColumnLimit, llvm::Regex &CommentPragmasRegex) const
 Returns a whitespace range (offset, length) of the content at LineIndex such that the content preceding this range needs to be reformatted before any breaks are made to this line. More...
 
virtual unsigned getLineLengthAfterSplitBefore (unsigned LineIndex, unsigned TailOffset, unsigned PreviousEndColumn, unsigned ColumnLimit, Split SplitBefore) const
 Returns the number of columns required to format the piece of line at LineIndex after the content preceding the whitespace range specified SplitBefore has been reformatted, but before any breaks are made to this line. More...
 
virtual void replaceWhitespaceBefore (unsigned LineIndex, unsigned PreviousEndColumn, unsigned ColumnLimit, Split SplitBefore, WhitespaceManager &Whitespaces)
 Replaces the whitespace between LineIndex-1 and LineIndex. More...
 
virtual void updateNextToken (LineState &State) const
 Updates the next token of State to the next token after this one. More...
 

Protected Member Functions

 BreakableComment (const FormatToken &Token, unsigned StartColumn, bool InPPDirective, encoding::Encoding Encoding, const FormatStyle &Style)
 Creates a breakable token for a comment. More...
 
virtual unsigned getContentStartColumn (unsigned LineIndex, unsigned TailOffset) const =0
 
Split getReflowSplit (StringRef Text, StringRef ReflowPrefix, unsigned PreviousEndColumn, unsigned ColumnLimit) const
 
const FormatTokentokenAt (unsigned LineIndex) const
 
virtual bool mayReflow (unsigned LineIndex, 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

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 FormatTokenTok
 
const bool InPPDirective
 
const encoding::Encoding Encoding
 
const FormatStyleStyle
 

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. More...
 

Detailed Description

Definition at line 208 of file BreakableToken.h.

Constructor & Destructor Documentation

clang::format::BreakableComment::BreakableComment ( const FormatToken Token,
unsigned  StartColumn,
bool  InPPDirective,
encoding::Encoding  Encoding,
const FormatStyle Style 
)
protected

Creates a breakable token for a comment.

StartColumn specifies the column in which the comment will start after formatting.

Definition at line 227 of file BreakableToken.cpp.

Member Function Documentation

void clang::format::BreakableComment::compressWhitespace ( unsigned  LineIndex,
unsigned  TailOffset,
Split  Split,
WhitespaceManager Whitespaces 
)
overridevirtual

Replaces the whitespace range described by Split with a single space.

Implements clang::format::BreakableToken.

Definition at line 249 of file BreakableToken.cpp.

References Content, clang::format::WhitespaceManager::replaceWhitespaceInToken(), Text, tokenAt(), and clang::format::FormatToken::TokenText.

virtual unsigned clang::format::BreakableComment::getContentStartColumn ( unsigned  LineIndex,
unsigned  TailOffset 
) const
protectedpure virtual

Referenced by getSplit().

unsigned clang::format::BreakableComment::getLineCount ( ) const
overridevirtual

Returns the number of lines in this token in the original code.

Implements clang::format::BreakableToken.

Definition at line 235 of file BreakableToken.cpp.

References Lines.

BreakableToken::Split clang::format::BreakableComment::getReflowSplit ( StringRef  Text,
StringRef  ReflowPrefix,
unsigned  PreviousEndColumn,
unsigned  ColumnLimit 
) const
protected
BreakableToken::Split clang::format::BreakableComment::getSplit ( unsigned  LineIndex,
unsigned  TailOffset,
unsigned  ColumnLimit,
llvm::Regex &  CommentPragmasRegex 
) const
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.

Implements clang::format::BreakableToken.

Definition at line 238 of file BreakableToken.cpp.

References Content, clang::format::BreakableToken::Encoding, clang::format::getCommentSplit(), getContentStartColumn(), clang::format::BreakableToken::Style, and clang::format::FormatStyle::TabWidth.

virtual bool clang::format::BreakableComment::mayReflow ( unsigned  LineIndex,
llvm::Regex &  CommentPragmasRegex 
) const
protectedpure virtual
const FormatToken & clang::format::BreakableComment::tokenAt ( unsigned  LineIndex) const
protected

Member Data Documentation

SmallVector<StringRef, 16> clang::format::BreakableComment::Content
protected
SmallVector<int, 16> clang::format::BreakableComment::ContentColumn
protected
SmallVector<StringRef, 16> clang::format::BreakableComment::Lines
protected
StringRef clang::format::BreakableComment::ReflowPrefix = " "
protected
unsigned clang::format::BreakableComment::StartColumn
protected
SmallVector<FormatToken *, 16> clang::format::BreakableComment::Tokens
protected

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