clang  3.9.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::format::BreakableSingleLineToken Class Reference

Base class for single line tokens that can be broken. More...

#include <BreakableToken.h>

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

Public Member Functions

unsigned getLineCount () const override
 Returns the number of lines in this token in the original code. More...
 
unsigned getLineLengthAfterSplit (unsigned LineIndex, unsigned TailOffset, StringRef::size_type Length) const override
 Returns the number of columns required to format the piece of line at LineIndex, from byte offset Offset with length Length. More...
 
- Public Member Functions inherited from clang::format::BreakableToken
virtual ~BreakableToken ()
 
virtual Split getSplit (unsigned LineIndex, unsigned TailOffset, unsigned ColumnLimit) const =0
 Returns a range (offset, length) at which to break the line at LineIndex, if previously broken at TailOffset. More...
 
virtual void insertBreak (unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces)=0
 Emits the previously retrieved Split via Whitespaces. More...
 
virtual void replaceWhitespace (unsigned LineIndex, unsigned TailOffset, Split Split, WhitespaceManager &Whitespaces)=0
 Replaces the whitespace range described by Split with a single space. More...
 
virtual void replaceWhitespaceBefore (unsigned LineIndex, WhitespaceManager &Whitespaces)
 Replaces the whitespace between LineIndex-1 and LineIndex. More...
 

Protected Member Functions

 BreakableSingleLineToken (const FormatToken &Tok, unsigned IndentLevel, unsigned StartColumn, StringRef Prefix, StringRef Postfix, bool InPPDirective, encoding::Encoding Encoding, const FormatStyle &Style)
 
- Protected Member Functions inherited from clang::format::BreakableToken
 BreakableToken (const FormatToken &Tok, unsigned IndentLevel, bool InPPDirective, encoding::Encoding Encoding, const FormatStyle &Style)
 

Protected Attributes

unsigned StartColumn
 
StringRef Prefix
 
StringRef Postfix
 
StringRef Line
 
- Protected Attributes inherited from clang::format::BreakableToken
const FormatTokenTok
 
const unsigned IndentLevel
 
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

Base class for single line tokens that can be broken.

getSplit() needs to be implemented by child classes.

Definition at line 91 of file BreakableToken.h.

Constructor & Destructor Documentation

clang::format::BreakableSingleLineToken::BreakableSingleLineToken ( const FormatToken Tok,
unsigned  IndentLevel,
unsigned  StartColumn,
StringRef  Prefix,
StringRef  Postfix,
bool  InPPDirective,
encoding::Encoding  Encoding,
const FormatStyle Style 
)
protected

Definition at line 144 of file BreakableToken.cpp.

References Line, and clang::format::FormatToken::TokenText.

Member Function Documentation

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

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

Implements clang::format::BreakableToken.

Definition at line 134 of file BreakableToken.cpp.

unsigned clang::format::BreakableSingleLineToken::getLineLengthAfterSplit ( unsigned  LineIndex,
unsigned  Offset,
StringRef::size_type  Length 
) const
overridevirtual

Returns the number of columns required to format the piece of line at LineIndex, from byte offset Offset with length Length.

Note that previous breaks are not taken into account. Offset is always specified from the start of the (original) line. Length can be set to StringRef::npos, which means "to the end of line".

Implements clang::format::BreakableToken.

Definition at line 136 of file BreakableToken.cpp.

References clang::format::encoding::columnWidthWithTabs(), clang::format::BreakableToken::Encoding, Line, Postfix, Prefix, StartColumn, clang::format::BreakableToken::Style, and clang::format::FormatStyle::TabWidth.

Member Data Documentation

StringRef clang::format::BreakableSingleLineToken::Line
protected
StringRef clang::format::BreakableSingleLineToken::Postfix
protected
StringRef clang::format::BreakableSingleLineToken::Prefix
protected
unsigned clang::format::BreakableSingleLineToken::StartColumn
protected

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