clang 24.0.0git
clang::format Namespace Reference

Namespaces

namespace  encoding
namespace  internal

Classes

class  AffectedRangeManager
class  AnnotatedLine
class  BreakableBlockComment
class  BreakableComment
class  BreakableLineCommentSection
class  BreakableStringLiteral
class  BreakableStringLiteralUsingOperators
class  BreakableToken
 Base class for tokens / ranges of tokens that can allow breaking within the tokens - for example, to avoid whitespace beyond the column limit, or to reflow text. More...
class  CompoundStatementIndenter
class  ContinuationIndenter
class  DefinitionBlockSeparator
class  Environment
class  FatalDiagnosticConsumer
struct  FormatStyle
 The FormatStyle is used to configure the formatting to follow specific guidelines. More...
struct  FormattingAttemptStatus
 Represents the status of a formatting attempt. More...
struct  FormatToken
 A wrapper around a Token storing information about the whitespace characters preceding it. More...
class  FormatTokenLexer
class  FormatTokenSource
struct  IndentationAndAlignment
 Represents the spaces at the start of a line, keeping track of what the spaces are for. More...
class  IndexedTokenSource
class  IntegerLiteralSeparatorFixer
class  JavaScriptImportSorter
struct  JsImportedSymbol
struct  JsModuleReference
class  LeftRightQualifierAlignmentFixer
struct  LineState
 The current state when indenting a unwrapped line. More...
class  MacroCallReconstructor
 Converts a sequence of UnwrappedLines containing expanded macros into a single UnwrappedLine containing the macro calls. More...
class  MacroExpander
 Takes a set of macro definitions as strings and allows expanding calls to those macros. More...
struct  MacroExpansion
 Contains information on the token's role in a macro expansion. More...
class  NamespaceEndCommentsFixer
class  NumericLiteralCaseFixer
struct  NumericLiteralInfo
class  ObjCPropertyAttributeOrderFixer
struct  ObjCPropertyEntry
struct  ParenState
class  ParseErrorCategory
struct  RawStringFormatStyleManager
class  ScopedLineState
class  ScopedMacroState
class  TokenAnalyzer
class  TokenAnnotator
 Determines extra information about the tokens comprising an UnwrappedLine. More...
struct  UnwrappedLine
 An unwrapped line is a sequence of Token, that we would like to put on a single line if there was no column limit. More...
class  UnwrappedLineConsumer
 Interface for users of the UnwrappedLineParser to receive the parsed lines. More...
class  UnwrappedLineFormatter
struct  UnwrappedLineNode
class  UnwrappedLineParser
class  UsingDeclarationsSorter
class  WhitespaceManager
 Manages the whitespaces around tokens and their replacements. More...

Typedefs

typedef std::function< std::pair< tooling::Replacements, unsigned >(const Environment &)> AnalyzerPass

Enumerations

enum class  ParseError {
  Success = 0 , Error , Unsuitable , BinPackTrailingCommaConflict ,
  InvalidQualifierSpecified , DuplicateQualifierSpecified , MissingQualifierType , MissingQualifierOrder
}
enum  TokenType : uint8_t { NUM_TOKEN_TYPES }
 Determines the semantic type of a syntactic token, e.g. More...
enum  BraceBlockKind { BK_Unknown , BK_Block , BK_BracedInit }
enum  ParameterPackingKind { PPK_BinPacked , PPK_OnePerLine , PPK_Inconclusive }
enum  FormatDecision { FD_Unformatted , FD_Continue , FD_Break }
enum  MacroRole { MR_ExpandedArg , MR_UnexpandedArg , MR_Hidden }
 Roles a token can take in a configured macro expansion. More...
enum  LexerState { NORMAL , TEMPLATE_STRING , TOKEN_STASHED }
enum class  Base { Binary , Decimal , Hex , Other }
enum  LineType {
  LT_Invalid , LT_AccessModifier , LT_ImportStatement , LT_ObjCDecl ,
  LT_ObjCMethodDecl , LT_ObjCProperty , LT_Other , LT_PreprocessorDirective ,
  LT_VirtualFunctionDecl , LT_ArrayOfStructInitializer , LT_CommentAbovePPDirective , LT_RequiresExpression ,
  LT_SimpleRequirement
}
enum  ScopeType { ST_Class , ST_Enum , ST_CompoundRequirement , ST_Other }

Functions

const std::error_category & getParseCategory ()
std::error_code make_error_code (ParseError e)
FormatStyle getLLVMStyle (FormatStyle::LanguageKind Language=FormatStyle::LK_Cpp)
 Returns a format style complying with the LLVM coding standards: http://llvm.org/docs/CodingStandards.html.
FormatStyle getGoogleStyle (FormatStyle::LanguageKind Language)
 Returns a format style complying with one of Google's style guides: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml.
FormatStyle getChromiumStyle (FormatStyle::LanguageKind Language)
 Returns a format style complying with Chromium's style guide: http://www.chromium.org/developers/coding-style.
FormatStyle getMozillaStyle ()
 Returns a format style complying with Mozilla's style guide: https://firefox-source-docs.mozilla.org/code-quality/coding-style/index.html.
FormatStyle getWebKitStyle ()
 Returns a format style complying with Webkit's style guide: http://www.webkit.org/coding/coding-style.html.
FormatStyle getGNUStyle ()
 Returns a format style complying with GNU Coding Standards: http://www.gnu.org/prep/standards/standards.html.
FormatStyle getMicrosoftStyle (FormatStyle::LanguageKind Language)
 Returns a format style complying with Microsoft style guide: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference?view=vs-2017.
FormatStyle getClangFormatStyle ()
FormatStyle getNoStyle ()
 Returns style indicating formatting should be not applied at all.
bool getPredefinedStyle (StringRef Name, FormatStyle::LanguageKind Language, FormatStyle *Style)
 Gets a predefined style for the specified language by name.
std::error_code parseConfiguration (llvm::MemoryBufferRef Config, FormatStyle *Style, bool AllowUnknownOptions=false, llvm::SourceMgr::DiagHandlerTy DiagHandler=nullptr, void *DiagHandlerCtx=nullptr, bool IsDotHFile=false)
 Parse configuration from YAML-formatted text.
std::error_code parseConfiguration (StringRef Config, FormatStyle *Style, bool AllowUnknownOptions=false, bool IsDotHFile=false)
 Like above but accepts an unnamed buffer.
std::string configurationAsText (const FormatStyle &Style)
 Gets configuration in a YAML string.
tooling::Replacements sortIncludes (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName, unsigned *Cursor=nullptr)
 Returns the replacements necessary to sort all #include blocks that are affected by Ranges.
Expected< tooling::ReplacementsformatReplacements (StringRef Code, const tooling::Replacements &Replaces, const FormatStyle &Style)
 Returns the replacements corresponding to applying and formatting Replaces on success; otheriwse, return an llvm::Error carrying llvm::StringError.
Expected< tooling::ReplacementscleanupAroundReplacements (StringRef Code, const tooling::Replacements &Replaces, const FormatStyle &Style)
 Returns the replacements corresponding to applying Replaces and cleaning up the code after that on success; otherwise, return an llvm::Error carrying llvm::StringError.
tooling::Replacements reformat (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName="<stdin>", FormattingAttemptStatus *Status=nullptr)
 Reformats the given Ranges in Code.
tooling::Replacements reformat (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName, bool *IncompleteFormat)
 Same as above, except if IncompleteFormat is non-null, its value will be set to true if any of the affected ranges were not formatted due to a non-recoverable syntax error.
tooling::Replacements cleanup (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName="<stdin>")
 Clean up any erroneous/redundant code in the given Ranges in Code.
tooling::Replacements fixNamespaceEndComments (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName="<stdin>")
 Fix namespace end comments in the given Ranges in Code.
tooling::Replacements separateDefinitionBlocks (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName="<stdin>")
 Inserts or removes empty lines separating definition blocks including classes, structs, functions, namespaces, and enums in the given Ranges in Code.
tooling::Replacements sortUsingDeclarations (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName="<stdin>")
 Sort consecutive using declarations in the given Ranges in Code.
LangOptions getFormattingLangOpts (const FormatStyle &Style=getLLVMStyle())
 Returns the LangOpts that the formatter expects you to set.
Expected< FormatStylegetStyle (StringRef StyleName, StringRef FileName, StringRef FallbackStyle, StringRef Code="", llvm::vfs::FileSystem *FS=nullptr, bool AllowUnknownOptions=false, llvm::SourceMgr::DiagHandlerTy DiagHandler=nullptr)
 Construct a FormatStyle based on StyleName.
FormatStyle::LanguageKind guessLanguage (StringRef FileName, StringRef Code)
StringRef getLanguageName (FormatStyle::LanguageKind Language)
bool isClangFormatOn (StringRef Comment)
bool isClangFormatOff (StringRef Comment)
static constexpr StringRef Blanks (" \t\v\f\r")
static StringRef getLineCommentIndentPrefix (StringRef Comment, const FormatStyle &Style)
static BreakableToken::Split getCommentSplit (StringRef Text, unsigned ContentStartColumn, unsigned ColumnLimit, unsigned TabWidth, encoding::Encoding Encoding, const FormatStyle &Style, bool DecorationEndsWithStar=false)
static BreakableToken::Split getStringSplit (StringRef Text, unsigned UsedColumns, unsigned ColumnLimit, unsigned TabWidth, encoding::Encoding Encoding)
bool switchesFormatting (const FormatToken &Token)
 Checks if Token switches formatting, like /* clang-format off *‍/.
static bool mayReflowContent (StringRef Content)
static bool shouldIndentWrappedSelectorName (const FormatStyle &Style, LineType LineType)
static bool shouldUnindentNextOperator (const FormatToken &Tok)
static unsigned getLengthToMatchingParen (const FormatToken &Tok, ArrayRef< ParenState > Stack)
static unsigned getLengthToNextOperator (const FormatToken &Tok)
static bool startsSegmentOfBuilderTypeCall (const FormatToken &Tok)
static bool isAlignableBinaryOperator (const FormatToken &Token)
static bool startsNextOperand (const FormatToken &Current)
static unsigned getChainLength (const FormatToken &Op)
static bool mustBreakBinaryOperation (const FormatToken &Current, const FormatStyle &Style)
static bool opensProtoMessageField (const FormatToken &LessTok, const FormatStyle &Style)
static std::optional< StringRef > getRawStringDelimiter (StringRef TokenText)
static StringRef getCanonicalRawStringDelimiter (const FormatStyle &Style, FormatStyle::LanguageKind Language)
static bool hasNestedBlockInlined (const FormatToken *Previous, const FormatToken &Current, const FormatStyle &Style)
static unsigned getLastLineEndColumn (StringRef Text, unsigned StartColumn, unsigned TabWidth, encoding::Encoding Encoding)
static StringRef getEnclosingFunctionName (const FormatToken &Current)
llvm::Error make_string_error (const Twine &Message)
static void expandPresetsBraceWrapping (FormatStyle &Expanded)
static void expandPresetsSpaceBeforeParens (FormatStyle &Expanded)
static void expandPresetsSpacesInParens (FormatStyle &Expanded)
ParseError validateQualifierOrder (FormatStyle *Style)
static bool affectsRange (ArrayRef< tooling::Range > Ranges, unsigned Start, unsigned End)
static std::pair< unsigned, unsignedFindCursorIndex (const ArrayRef< IncludeDirective > &Includes, const ArrayRef< unsigned > &Indices, unsigned Cursor)
std::string replaceCRLF (const std::string &Code)
static void sortCppIncludes (const FormatStyle &Style, const ArrayRef< IncludeDirective > &Includes, ArrayRef< tooling::Range > Ranges, StringRef FileName, StringRef Code, tooling::Replacements &Replaces, unsigned *Cursor)
tooling::Replacements sortCppIncludes (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName, tooling::Replacements &Replaces, unsigned *Cursor)
static unsigned findJavaImportGroup (const FormatStyle &Style, StringRef ImportIdentifier)
static void sortJavaImports (const FormatStyle &Style, const ArrayRef< JavaImportDirective > &Imports, ArrayRef< tooling::Range > Ranges, StringRef FileName, StringRef Code, tooling::Replacements &Replaces)
tooling::Replacements sortJavaImports (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName, tooling::Replacements &Replaces)
bool isMpegTS (StringRef Code)
bool isLikelyXml (StringRef Code)
template<typename T>
static Expected< tooling::ReplacementsprocessReplacements (T ProcessFunc, StringRef Code, const tooling::Replacements &Replaces, const FormatStyle &Style)
static FormatStyle::LanguageKind getLanguageByFileName (StringRef &FileName)
static FormatStyle::LanguageKind getLanguageByComment (const Environment &Env)
llvm::ErrorOr< std::unique_ptr< llvm::MemoryBuffer > > loadAndParseConfigFile (StringRef ConfigFile, llvm::vfs::FileSystem *FS, FormatStyle *Style, bool AllowUnknownOptions, llvm::SourceMgr::DiagHandlerTy DiagHandler, bool IsDotHFile)
static bool isClangFormatOnOff (StringRef Comment, bool On)
const char * getTokenTypeName (TokenType Type)
 Determines the name of a token type.
static unsigned CodePointsBetween (const FormatToken *Begin, const FormatToken *End)
bool startsNextParameter (const FormatToken &Current, const FormatStyle &Style)
struct clang::format::FormatToken getPrevious (T A1) const
template<typename... Ts>
FormatTokengetPreviousOneOf (Ts... Ks) const
FormatTokengetPreviousNonComment () const
 Returns the previous token ignoring comments.
FormatTokengetNextNonComment () const
 Returns the next token ignoring comments.
bool isPossibleMacro (bool AllowFollowingColonColon=false) const
 Returns true if this token likely names an object-like macro.
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. a list that should be indented with a block indent.
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 FormatTokengetNamespaceToken () const
 Return the actual namespace token, if this token starts a namespace block.
void copyFrom (const FormatToken &Tok)
static auto lexCSharpString (const char *Begin, const char *End, bool Verbatim, bool Interpolated)
static size_t countLeadingWhitespace (StringRef Text)
 Count the length of leading whitespace in a token.
static Base getBase (StringRef IntegerLiteral)
template<typename T>
void forEachToken (const UnwrappedLine &Line, const T &Call, FormatToken *Parent=nullptr)
bool matchFilePath (StringRef Pattern, StringRef FilePath)
bool matchFilePath (llvm::StringRef Pattern, llvm::StringRef FilePath)
const FormatTokengetNamespaceToken (const AnnotatedLine *Line, const SmallVectorImpl< AnnotatedLine * > &AnnotatedLines)
StringRef getNamespaceTokenText (const AnnotatedLine *Line, const SmallVectorImpl< AnnotatedLine * > &AnnotatedLines)
static bool isNumericLiteralCaseFixerNeeded (const FormatStyle &Style)
static std::string transformComponent (StringRef Component, FormatStyle::NumericLiteralComponentStyle ConfigValue)
static bool matchesReservedSuffix (StringRef Suffix)
 Test if Suffix matches a C++ literal reserved by the library.
static std::string format (StringRef NumericLiteral, const FormatStyle &Style)
void addQualifierAlignmentFixerPasses (const FormatStyle &Style, SmallVectorImpl< AnalyzerPass > &Passes)
static void replaceToken (const SourceManager &SourceMgr, tooling::Replacements &Fixes, const CharSourceRange &Range, std::string NewText)
static void removeToken (const SourceManager &SourceMgr, tooling::Replacements &Fixes, const FormatToken *First)
static void insertQualifierAfter (const SourceManager &SourceMgr, tooling::Replacements &Fixes, const FormatToken *First, const std::string &Qualifier)
static void insertQualifierBefore (const SourceManager &SourceMgr, tooling::Replacements &Fixes, const FormatToken *First, const std::string &Qualifier)
static bool endsWithSpace (const std::string &s)
static bool startsWithSpace (const std::string &s)
static void rotateTokens (const SourceManager &SourceMgr, tooling::Replacements &Fixes, const FormatToken *First, const FormatToken *Last, bool Left)
static bool isConfiguredQualifier (const FormatToken *const Tok, const std::vector< tok::TokenKind > &Qualifiers)
static bool isQualifier (const FormatToken *const Tok)
void prepareLeftRightOrderingForQualifierAlignmentFixer (const std::vector< std::string > &Order, std::vector< std::string > &LeftOrder, std::vector< std::string > &RightOrder, std::vector< tok::TokenKind > &Qualifiers)
bool isQualifierOrType (const FormatToken *Tok, const LangOptions &LangOpts)
bool isConfiguredQualifierOrType (const FormatToken *Tok, const std::vector< tok::TokenKind > &Qualifiers, const LangOptions &LangOpts)
bool operator< (const JsModuleReference &LHS, const JsModuleReference &RHS)
tooling::Replacements sortJavaScriptImports (const FormatStyle &Style, StringRef Code, ArrayRef< tooling::Range > Ranges, StringRef FileName)
static bool mustBreakAfterAttributes (const FormatToken &Tok, const FormatStyle &Style)
static unsigned maxNestingDepth (const AnnotatedLine &Line)
static FormatTokenskipNameQualifier (const FormatToken *Tok)
static FormatTokengetFunctionName (const AnnotatedLine &Line, FormatToken *&OpeningParen)
static bool isCtorOrDtorName (const FormatToken *Tok)
static bool isFunctionDeclarationName (const LangOptions &LangOpts, const FormatToken &Current, const AnnotatedLine &Line, FormatToken *&ClosingParen)
static FormatTokenfindReturnTypeStart (const AnnotatedLine &Line)
static bool isAllmanBrace (const FormatToken &Tok)
static bool IsFunctionArgument (const FormatToken &Tok)
static bool isEmptyLambdaAllowed (const FormatToken &Tok, FormatStyle::ShortLambdaStyle ShortLambdaOption)
static bool isAllmanLambdaBrace (const FormatToken &Tok)
static auto computeNewlines (const AnnotatedLine &Line, const AnnotatedLine *PreviousLine, const AnnotatedLine *PrevPrevLine, const SmallVectorImpl< AnnotatedLine * > &Lines, const FormatStyle &Style)
std::ostream & operator<< (std::ostream &Stream, const UnwrappedLine &Line)
template<class T>
static void hash_combine (std::size_t &seed, const T &v)
static bool isGoogScope (const UnwrappedLine &Line)
static bool isIIFE (const UnwrappedLine &Line, const AdditionalKeywords &Keywords)
static bool ShouldBreakBeforeBrace (const FormatStyle &Style, const FormatToken &InitialToken, bool IsEmptyBlock, bool IsJavaRecord=false)
static bool tokenCanStartNewLine (const FormatToken &Tok)
static bool mustBeJSIdent (const AdditionalKeywords &Keywords, const FormatToken *FormatTok)
static bool mustBeJSIdentOrValue (const AdditionalKeywords &Keywords, const FormatToken *FormatTok)
static bool isJSDeclOrStmt (const AdditionalKeywords &Keywords, const FormatToken *FormatTok)
static bool isC78Type (const FormatToken &Tok)
static bool isC78ParameterDecl (const FormatToken *Tok, const FormatToken *Next, const FormatToken *FuncName)
static FormatTokengetLastNonComment (const UnwrappedLine &Line)
static void markOptionalBraces (FormatToken *LeftBrace)
static bool continuesLineCommentSection (const FormatToken &FormatTok, const UnwrappedLine &Line, const FormatStyle &Style, const llvm::Regex &CommentPragmasRegex)
static const FormatTokengetLineStart (const FormatToken &Tok)
static unsigned indentLevelFor (const WhitespaceManager::Change &C)
static void SetChangeSpaces (unsigned Start, unsigned Spaces, MutableArrayRef< WhitespaceManager::Change > Changes)
static void IncrementChangeSpaces (unsigned Start, int Delta, MutableArrayRef< WhitespaceManager::Change > Changes)
static void AlignTokenSequence (const FormatStyle &Style, unsigned Start, unsigned End, unsigned Column, bool RightJustify, ArrayRef< unsigned > Matches, SmallVector< WhitespaceManager::Change, 16 > &Changes)
template<typename F, AlignStrategy Strategy = AlignStrategy::Normal>
static unsigned AlignTokens (const FormatStyle &Style, F &&Matches, SmallVector< WhitespaceManager::Change, 16 > &Changes, unsigned StartAt, const FormatStyle::AlignConsecutiveStyle &ACS={}, bool RightJustify=false)

Variables

const char * StyleOptionHelpDescription
 Description to be used for help text for a llvm::cl option for specifying format style.
const char * DefaultFormatStyle = "file"
 The suggested format style to use by default.
const char * DefaultFallbackStyle = "LLVM"
 The suggested predefined style to use as the fallback style in getStyle.
static constexpr std::array< StringRef, 16 > QtPropertyKeywords
static constexpr std::array< StringRef, 14 > CppNonKeywordTypes

Typedef Documentation

◆ AnalyzerPass

Enumeration Type Documentation

◆ Base

enum class clang::format::Base
strong
Enumerator
Binary 
Decimal 
Hex 
Other 

Definition at line 20 of file IntegerLiteralSeparatorFixer.cpp.

◆ BraceBlockKind

Enumerator
BK_Unknown 
BK_Block 
BK_BracedInit 

Definition at line 238 of file FormatToken.h.

◆ FormatDecision

Enumerator
FD_Unformatted 
FD_Continue 
FD_Break 

Definition at line 243 of file FormatToken.h.

◆ LexerState

Enumerator
NORMAL 
TEMPLATE_STRING 
TOKEN_STASHED 

Definition at line 29 of file FormatTokenLexer.h.

◆ LineType

Enumerator
LT_Invalid 
LT_AccessModifier 
LT_ImportStatement 
LT_ObjCDecl 
LT_ObjCMethodDecl 
LT_ObjCProperty 
LT_Other 
LT_PreprocessorDirective 
LT_VirtualFunctionDecl 
LT_ArrayOfStructInitializer 
LT_CommentAbovePPDirective 
LT_RequiresExpression 
LT_SimpleRequirement 

Definition at line 23 of file TokenAnnotator.h.

◆ MacroRole

Roles a token can take in a configured macro expansion.

Enumerator
MR_ExpandedArg 

The token was expanded from a macro argument when formatting the expanded token sequence.

MR_UnexpandedArg 

The token is part of a macro argument that was previously formatted as expansion when formatting the unexpanded macro call.

MR_Hidden 

The token was expanded from a macro definition, and is not visible as part of the macro call.

Definition at line 246 of file FormatToken.h.

◆ ParameterPackingKind

Enumerator
PPK_BinPacked 
PPK_OnePerLine 
PPK_Inconclusive 

Definition at line 241 of file FormatToken.h.

◆ ParseError

enum class clang::format::ParseError
strong
Enumerator
Success 
Error 
Unsuitable 
BinPackTrailingCommaConflict 
InvalidQualifierSpecified 
DuplicateQualifierSpecified 
MissingQualifierType 
MissingQualifierOrder 

Definition at line 36 of file Format.h.

◆ ScopeType

Enumerator
ST_Class 
ST_Enum 
ST_CompoundRequirement 
ST_Other 

Definition at line 40 of file TokenAnnotator.h.

◆ TokenType

Determines the semantic type of a syntactic token, e.g.

whether "<" is a template opener or binary operator.

Enumerator
NUM_TOKEN_TYPES 

Definition at line 227 of file FormatToken.h.

Function Documentation

◆ addQualifierAlignmentFixerPasses()

void clang::format::addQualifierAlignmentFixerPasses ( const FormatStyle & Style,
SmallVectorImpl< AnalyzerPass > & Passes )

◆ affectsRange()

bool clang::format::affectsRange ( ArrayRef< tooling::Range > Ranges,
unsigned Start,
unsigned End )
static

Definition at line 3571 of file Format.cpp.

Referenced by sortCppIncludes(), and sortJavaImports().

◆ AlignTokens()

template<typename F, AlignStrategy Strategy = AlignStrategy::Normal>
unsigned clang::format::AlignTokens ( const FormatStyle & Style,
F && Matches,
SmallVector< WhitespaceManager::Change, 16 > & Changes,
unsigned StartAt,
const FormatStyle::AlignConsecutiveStyle & ACS = {},
bool RightJustify = false )
static

Definition at line 506 of file WhitespaceManager.cpp.

◆ AlignTokenSequence()

void clang::format::AlignTokenSequence ( const FormatStyle & Style,
unsigned Start,
unsigned End,
unsigned Column,
bool RightJustify,
ArrayRef< unsigned > Matches,
SmallVector< WhitespaceManager::Change, 16 > & Changes )
static

◆ Blanks()

◆ cleanup()

tooling::Replacements clang::format::cleanup ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName = "<stdin>" )

Clean up any erroneous/redundant code in the given Ranges in Code.

Returns the Replacements that clean up all Ranges in Code.

Definition at line 4468 of file Format.cpp.

References clang::FileName, clang::format::FormatStyle::LK_Cpp, and clang::format::Environment::make().

Referenced by cleanupAroundReplacements().

◆ cleanupAroundReplacements()

Expected< tooling::Replacements > clang::format::cleanupAroundReplacements ( StringRef Code,
const tooling::Replacements & Replaces,
const FormatStyle & Style )

Returns the replacements corresponding to applying Replaces and cleaning up the code after that on success; otherwise, return an llvm::Error carrying llvm::StringError.

This also supports inserting/deleting C++ #include directives:

  • If a replacement has offset UINT_MAX, length 0, and a replacement text that is an #include directive, this will insert the #include into the correct block in the Code.
  • If a replacement has offset UINT_MAX, length 1, and a replacement text that is the name of the header to be removed, the header will be removed from Code if it exists. The include manipulation is done via tooling::HeaderInclude, see its documentation for more details on how include insertion points are found and what edits are produced.

Definition at line 4235 of file Format.cpp.

References cleanup(), clang::FileName, and processReplacements().

Referenced by clang::tooling::applyAtomicChanges().

◆ closesBlockOrBlockTypeList()

bool clang::format::closesBlockOrBlockTypeList ( const FormatStyle & Style) const

Same as opensBlockOrBlockTypeList, but for the closing token.

Definition at line 941 of file FormatToken.h.

References clang::format::FormatToken::isNot().

◆ CodePointsBetween()

unsigned clang::format::CodePointsBetween ( const FormatToken * Begin,
const FormatToken * End )
static

◆ computeNewlines()

◆ configurationAsText()

std::string clang::format::configurationAsText ( const FormatStyle & Style)

Gets configuration in a YAML string.

Definition at line 2588 of file Format.cpp.

References expandPresetsBraceWrapping(), expandPresetsSpaceBeforeParens(), expandPresetsSpacesInParens(), and clang::Text.

◆ continuesLineCommentSection()

◆ copyFrom()

void clang::format::copyFrom ( const FormatToken & Tok)

◆ countLeadingWhitespace()

size_t clang::format::countLeadingWhitespace ( StringRef Text)
static

Count the length of leading whitespace in a token.

Definition at line 1226 of file FormatTokenLexer.cpp.

References clang::isHorizontalWhitespace(), clang::isVerticalWhitespace(), clang::isWhitespace(), and clang::Text.

◆ endsWithSpace()

bool clang::format::endsWithSpace ( const std::string & s)
static

Definition at line 100 of file QualifierAlignmentFixer.cpp.

Referenced by rotateTokens().

◆ expandPresetsBraceWrapping()

void clang::format::expandPresetsBraceWrapping ( FormatStyle & Expanded)
static

Definition at line 1715 of file Format.cpp.

References clang::format::FormatStyle::BraceWrappingFlags::AfterCaseLabel, clang::format::FormatStyle::BraceWrappingFlags::AfterClass, clang::format::FormatStyle::BraceWrappingFlags::AfterControlStatement, clang::format::FormatStyle::BraceWrappingFlags::AfterEnum, clang::format::FormatStyle::BraceWrappingFlags::AfterExternBlock, clang::format::FormatStyle::BraceWrappingFlags::AfterFunction, clang::format::FormatStyle::BraceWrappingFlags::AfterNamespace, clang::format::FormatStyle::BraceWrappingFlags::AfterObjCDeclaration, clang::format::FormatStyle::BraceWrappingFlags::AfterStruct, clang::format::FormatStyle::BraceWrappingFlags::AfterUnion, clang::format::FormatStyle::BraceWrappingFlags::BeforeCatch, clang::format::FormatStyle::BraceWrappingFlags::BeforeElse, clang::format::FormatStyle::BraceWrappingFlags::BeforeLambdaBody, clang::format::FormatStyle::BraceWrapping, clang::format::FormatStyle::BreakBeforeBraces, clang::format::FormatStyle::BS_Allman, clang::format::FormatStyle::BS_Custom, clang::format::FormatStyle::BS_GNU, clang::format::FormatStyle::BS_Linux, clang::format::FormatStyle::BS_Mozilla, clang::format::FormatStyle::BS_Stroustrup, clang::format::FormatStyle::BS_WebKit, clang::format::FormatStyle::BS_Whitesmiths, clang::format::FormatStyle::BWACS_Always, clang::format::FormatStyle::BWACS_Never, clang::format::FormatStyle::BraceWrappingFlags::SplitEmptyFunction, and clang::format::FormatStyle::BraceWrappingFlags::SplitEmptyRecord.

Referenced by configurationAsText(), and clang::format::internal::reformat().

◆ expandPresetsSpaceBeforeParens()

◆ expandPresetsSpacesInParens()

◆ FindCursorIndex()

std::pair< unsigned, unsigned > clang::format::FindCursorIndex ( const ArrayRef< IncludeDirective > & Includes,
const ArrayRef< unsigned > & Indices,
unsigned Cursor )
static

Definition at line 3591 of file Format.cpp.

References clang::Text.

Referenced by sortCppIncludes().

◆ findJavaImportGroup()

unsigned clang::format::findJavaImportGroup ( const FormatStyle & Style,
StringRef ImportIdentifier )
static

Definition at line 3899 of file Format.cpp.

Referenced by sortJavaImports().

◆ findReturnTypeStart()

FormatToken * clang::format::findReturnTypeStart ( const AnnotatedLine & Line)
static

◆ fixNamespaceEndComments()

tooling::Replacements clang::format::fixNamespaceEndComments ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName = "<stdin>" )

Fix namespace end comments in the given Ranges in Code.

Returns the Replacements that fix the namespace comments in all Ranges in Code.

Definition at line 4490 of file Format.cpp.

References clang::FileName, clang::format::Environment::make(), and clang::format::TokenAnalyzer::process().

◆ forEachToken()

template<typename T>
void clang::format::forEachToken ( const UnwrappedLine & Line,
const T & Call,
FormatToken * Parent = nullptr )

◆ format()

◆ formatReplacements()

Expected< tooling::Replacements > clang::format::formatReplacements ( StringRef Code,
const tooling::Replacements & Replaces,
const FormatStyle & Style )

Returns the replacements corresponding to applying and formatting Replaces on success; otheriwse, return an llvm::Error carrying llvm::StringError.

Definition at line 4123 of file Format.cpp.

References clang::FileName, processReplacements(), reformat(), clang::format::FormatStyle::SortIncludes, and sortIncludes().

Referenced by clang::tooling::formatAndApplyAllReplacements().

◆ getBase()

Base clang::format::getBase ( StringRef IntegerLiteral)
static

◆ getCanonicalRawStringDelimiter()

StringRef clang::format::getCanonicalRawStringDelimiter ( const FormatStyle & Style,
FormatStyle::LanguageKind Language )
static

Definition at line 230 of file ContinuationIndenter.cpp.

◆ getChainLength()

unsigned clang::format::getChainLength ( const FormatToken & Op)
static

Definition at line 149 of file ContinuationIndenter.cpp.

References clang::Last.

Referenced by mustBreakBinaryOperation().

◆ getChromiumStyle()

◆ getClangFormatStyle()

FormatStyle clang::format::getClangFormatStyle ( )

◆ getCommentSplit()

BreakableToken::Split clang::format::getCommentSplit ( StringRef Text,
unsigned ContentStartColumn,
unsigned ColumnLimit,
unsigned TabWidth,
encoding::Encoding Encoding,
const FormatStyle & Style,
bool DecorationEndsWithStar = false )
static

◆ getEnclosingFunctionName()

StringRef clang::format::getEnclosingFunctionName ( const FormatToken & Current)
static

Definition at line 2584 of file ContinuationIndenter.cpp.

References Tok.

◆ getFormattingLangOpts()

◆ getFunctionName()

FormatToken * clang::format::getFunctionName ( const AnnotatedLine & Line,
FormatToken *& OpeningParen )
static

Definition at line 3745 of file TokenAnnotator.cpp.

References clang::Line, Next, skipNameQualifier(), and Tok.

Referenced by clang::format::TokenAnnotator::annotate().

◆ getGNUStyle()

◆ getGoogleStyle()

FormatStyle clang::format::getGoogleStyle ( FormatStyle::LanguageKind Language)

Returns a format style complying with one of Google's style guides: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml.

http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml. https://developers.google.com/protocol-buffers/docs/style.

Definition at line 2097 of file Format.cpp.

References clang::format::FormatStyle::AccessModifierOffset, clang::format::FormatStyle::AlignAfterOpenBracket, clang::format::FormatStyle::AlignEscapedNewlines, clang::format::FormatStyle::AlignOperands, clang::format::FormatStyle::AlignTrailingComments, clang::format::FormatStyle::AllowShortFunctionsOnASingleLine, clang::format::FormatStyle::AllowShortIfStatementsOnASingleLine, clang::format::FormatStyle::AllowShortLambdasOnASingleLine, clang::format::FormatStyle::AllowShortLoopsOnASingleLine, clang::format::FormatStyle::AlwaysBreakBeforeMultilineStrings, clang::format::FormatStyle::KeepEmptyLinesStyle::AtStartOfBlock, clang::format::FormatStyle::AttributeMacros, clang::format::FormatStyle::BLS_Block, clang::format::FormatStyle::BOS_NonAssignment, clang::format::FormatStyle::BPS_Never, clang::format::FormatStyle::BreakAfterOpenBracketBracedList, clang::format::FormatStyle::BreakAfterOpenBracketFunction, clang::format::FormatStyle::BreakAfterOpenBracketIf, clang::format::FormatStyle::BreakBeforeBinaryOperators, clang::format::FormatStyle::BreakBeforeTernaryOperators, clang::format::FormatStyle::BreakStringLiterals, clang::format::FormatStyle::BreakTemplateDeclarations, clang::format::FormatStyle::BTDS_Yes, clang::format::FormatStyle::ColumnLimit, clang::format::FormatStyle::CommentPragmas, clang::format::FormatStyle::Cpp11BracedListStyle, clang::format::FormatStyle::DerivePointerAlignment, clang::format::FormatStyle::ENAS_Left, getGoogleStyle(), getLLVMStyle(), clang::tooling::IncludeStyle::IBS_Preserve, clang::tooling::IncludeStyle::IBS_Regroup, clang::tooling::IncludeStyle::IncludeBlocks, clang::tooling::IncludeStyle::IncludeCategories, clang::tooling::IncludeStyle::IncludeIsMainRegex, clang::format::FormatStyle::IncludeStyle, clang::format::FormatStyle::IndentCaseLabels, clang::format::FormatStyle::JavaScriptQuotes, clang::format::FormatStyle::JavaScriptWrapImports, clang::format::FormatStyle::JSQS_Single, clang::format::FormatStyle::KeepEmptyLines, clang::format::FormatStyle::TrailingCommentsAlignmentStyle::Kind, clang::format::FormatStyle::Language, clang::format::FormatStyle::LK_Cpp, clang::format::FormatStyle::LK_CSharp, clang::format::FormatStyle::LK_Java, clang::format::FormatStyle::LK_JavaScript, clang::format::FormatStyle::LK_ObjC, clang::format::FormatStyle::LK_Proto, clang::format::FormatStyle::LK_TextProto, clang::format::FormatStyle::LS_Auto, clang::format::FormatStyle::MaxEmptyLinesToKeep, clang::format::FormatStyle::NamespaceIndentation, clang::format::FormatStyle::NI_All, clang::format::FormatStyle::OAS_DontAlign, clang::format::FormatStyle::ObjCBinPackProtocolList, clang::format::FormatStyle::ObjCSpaceAfterProperty, clang::format::FormatStyle::ObjCSpaceBeforeProtocolList, clang::format::FormatStyle::PackConstructorInitializers, clang::format::FormatStyle::PAS_Left, clang::format::FormatStyle::PCIS_NextLine, clang::format::FormatStyle::PenaltyBreakBeforeFirstCallParameter, clang::format::FormatStyle::PenaltyReturnTypeOnItsOwnLine, clang::format::FormatStyle::PointerAlignment, clang::format::FormatStyle::RawStringFormats, clang::format::FormatStyle::ShortFunctionStyle::setEmptyOnly(), clang::format::FormatStyle::SIS_Never, clang::format::FormatStyle::SIS_WithoutElse, clang::format::FormatStyle::SLS_Empty, clang::format::FormatStyle::SpaceAfterCStyleCast, clang::format::FormatStyle::SpacesBeforeTrailingComments, clang::format::FormatStyle::SpacesInContainerLiterals, clang::format::FormatStyle::Standard, and clang::format::FormatStyle::TCAS_Never.

Referenced by getChromiumStyle(), getGoogleStyle(), and getPredefinedStyle().

◆ getLanguageByComment()

◆ getLanguageByFileName()

◆ getLanguageName()

◆ getLastLineEndColumn()

unsigned clang::format::getLastLineEndColumn ( StringRef Text,
unsigned StartColumn,
unsigned TabWidth,
encoding::Encoding Encoding )
static

◆ getLastNonComment()

FormatToken * clang::format::getLastNonComment ( const UnwrappedLine & Line)
static

Definition at line 2882 of file UnwrappedLineParser.cpp.

References getLastNonComment(), clang::Token::isNot(), and clang::Line.

Referenced by getLastNonComment().

◆ getLengthToMatchingParen()

◆ getLengthToNextOperator()

unsigned clang::format::getLengthToNextOperator ( const FormatToken & Tok)
static

Definition at line 119 of file ContinuationIndenter.cpp.

References Tok.

Referenced by clang::format::ContinuationIndenter::mustBreak().

◆ getLineCommentIndentPrefix()

StringRef clang::format::getLineCommentIndentPrefix ( StringRef Comment,
const FormatStyle & Style )
static

◆ getLineStart()

const FormatToken & clang::format::getLineStart ( const FormatToken & Tok)
static

Definition at line 24 of file WhitespaceManager.cpp.

References FD_Break, clang::Result, and Tok.

Referenced by indentLevelFor().

◆ getLLVMStyle()

FormatStyle clang::format::getLLVMStyle ( FormatStyle::LanguageKind Language = FormatStyle::LK_Cpp)

Returns a format style complying with the LLVM coding standards: http://llvm.org/docs/CodingStandards.html.

Definition at line 1847 of file Format.cpp.

References clang::format::FormatStyle::ABS_Leave, clang::format::FormatStyle::AccessModifierOffset, clang::format::FormatStyle::SpaceBeforeParensCustom::AfterControlStatements, clang::format::FormatStyle::SpaceBeforeParensCustom::AfterForeachMacros, clang::format::FormatStyle::SpaceBeforeParensCustom::AfterIfMacros, clang::format::FormatStyle::AIAS_None, clang::format::FormatStyle::AlignAfterOpenBracket, clang::format::FormatStyle::AlignArrayOfStructures, clang::format::FormatStyle::AlignConsecutiveAssignments, clang::format::FormatStyle::AlignConsecutiveBitFields, clang::format::FormatStyle::AlignConsecutiveDeclarations, clang::format::FormatStyle::AlignConsecutiveMacros, clang::format::FormatStyle::AlignConsecutiveShortCaseStatements, clang::format::FormatStyle::AlignConsecutiveTableGenBreakingDAGArgColons, clang::format::FormatStyle::AlignConsecutiveTableGenCondOperatorColons, clang::format::FormatStyle::AlignConsecutiveTableGenDefinitionColons, clang::format::FormatStyle::AlignEscapedNewlines, clang::format::FormatStyle::AlignConsecutiveStyle::AlignFunctionDeclarations, clang::format::FormatStyle::AlignOperands, clang::format::FormatStyle::TrailingCommentsAlignmentStyle::AlignPPAndNotPP, clang::format::FormatStyle::AlignTrailingComments, clang::format::FormatStyle::AllowAllArgumentsOnNextLine, clang::format::FormatStyle::AllowAllParametersOfDeclarationOnNextLine, clang::format::FormatStyle::AllowBreakBeforeNoexceptSpecifier, clang::format::FormatStyle::AllowBreakBeforeQtProperty, clang::format::FormatStyle::AllowShortBlocksOnASingleLine, clang::format::FormatStyle::AllowShortCaseExpressionOnASingleLine, clang::format::FormatStyle::AllowShortCaseLabelsOnASingleLine, clang::format::FormatStyle::AllowShortCompoundRequirementOnASingleLine, clang::format::FormatStyle::AllowShortEnumsOnASingleLine, clang::format::FormatStyle::AllowShortFunctionsOnASingleLine, clang::format::FormatStyle::AllowShortIfStatementsOnASingleLine, clang::format::FormatStyle::AllowShortLambdasOnASingleLine, clang::format::FormatStyle::AllowShortLoopsOnASingleLine, clang::format::FormatStyle::AllowShortNamespacesOnASingleLine, clang::format::FormatStyle::AllowShortRecordOnASingleLine, clang::format::FormatStyle::AlwaysBreakAfterDefinitionReturnType, clang::format::FormatStyle::AlwaysBreakBeforeMultilineStrings, clang::prec::Assignment, clang::format::FormatStyle::AttributeMacros, clang::format::FormatStyle::BBCDS_Always, clang::format::FormatStyle::BBIAS_OnlyMultiline, clang::format::FormatStyle::BBNSS_Never, clang::format::FormatStyle::BBO_Never, clang::format::FormatStyle::BBRTS_None, clang::format::FormatStyle::BCIS_BeforeColon, clang::format::FormatStyle::BFCS_Both, clang::format::FormatStyle::BILS_BeforeColon, clang::format::FormatStyle::BinPackLongBracedList, clang::format::FormatStyle::BitFieldColonSpacing, clang::format::FormatStyle::BLS_AlignFirstComment, clang::format::FormatStyle::BOS_None, clang::format::FormatStyle::BPAS_BinPack, clang::format::FormatStyle::BPPS_BinPack, clang::format::FormatStyle::BPS_Auto, clang::format::FormatStyle::BracedInitializerIndentWidth, clang::format::FormatStyle::BraceWrapping, clang::format::FormatStyle::BreakAdjacentStringLiterals, clang::format::FormatStyle::BreakAfterAttributes, clang::format::FormatStyle::BreakAfterJavaFieldAnnotations, clang::format::FormatStyle::BreakAfterOpenBracketBracedList, clang::format::FormatStyle::BreakAfterOpenBracketFunction, clang::format::FormatStyle::BreakAfterOpenBracketIf, clang::format::FormatStyle::BreakAfterOpenBracketLoop, clang::format::FormatStyle::BreakAfterOpenBracketSwitch, clang::format::FormatStyle::BreakAfterReturnType, clang::format::FormatStyle::BreakArrays, clang::format::FormatStyle::BreakBeforeBinaryOperators, clang::format::FormatStyle::BreakBeforeBraces, clang::format::FormatStyle::BreakBeforeCloseBracketBracedList, clang::format::FormatStyle::BreakBeforeCloseBracketFunction, clang::format::FormatStyle::BreakBeforeCloseBracketIf, clang::format::FormatStyle::BreakBeforeCloseBracketLoop, clang::format::FormatStyle::BreakBeforeCloseBracketSwitch, clang::format::FormatStyle::BreakBeforeConceptDeclarations, clang::format::FormatStyle::BreakBeforeInlineASMColon, clang::format::FormatStyle::BreakBeforeReturnType, clang::format::FormatStyle::BreakBeforeTemplateCloser, clang::format::FormatStyle::BreakBeforeTernaryOperators, clang::format::FormatStyle::BreakBinaryOperations, clang::format::FormatStyle::BreakConstructorInitializers, clang::format::FormatStyle::BreakFunctionDeclarationParameters, clang::format::FormatStyle::BreakFunctionDefinitionParameters, clang::format::FormatStyle::BreakInheritanceList, clang::format::FormatStyle::BreakStringLiterals, clang::format::FormatStyle::BreakTemplateDeclarations, clang::format::FormatStyle::BS_Attach, clang::format::FormatStyle::BTDS_MultiLine, clang::format::FormatStyle::BWACS_Never, clang::format::FormatStyle::ColumnLimit, clang::format::FormatStyle::CommentPragmas, clang::format::FormatStyle::CompactNamespaces, clang::format::FormatStyle::ConstructorInitializerIndentWidth, clang::format::FormatStyle::ContinuationIndentWidth, clang::format::FormatStyle::Cpp11BracedListStyle, clang::format::FormatStyle::DAS_DontBreak, clang::format::FormatStyle::DerivePointerAlignment, clang::format::FormatStyle::DisableFormat, clang::format::FormatStyle::DRTBS_None, clang::format::FormatStyle::ELAAMS_Never, clang::format::FormatStyle::ELBAMS_LogicalBlock, clang::format::FormatStyle::EmptyLineAfterAccessModifier, clang::format::FormatStyle::EmptyLineBeforeAccessModifier, clang::format::FormatStyle::ENAS_Right, clang::format::FormatStyle::EnumTrailingComma, clang::format::FormatStyle::ETC_Leave, clang::format::FormatStyle::ExperimentalAutoDetectBinPacking, clang::format::FormatStyle::FixNamespaceComments, clang::format::FormatStyle::ForEachMacros, clang::tooling::IncludeStyle::IBS_Preserve, clang::format::FormatStyle::IEBS_AfterExternBlock, clang::format::FormatStyle::IfMacros, clang::format::FormatStyle::IGLS_OuterIndent, clang::tooling::IncludeStyle::IncludeBlocks, clang::tooling::IncludeStyle::IncludeCategories, clang::tooling::IncludeStyle::IncludeIsMainRegex, clang::format::FormatStyle::IncludeStyle, clang::format::FormatStyle::IndentAccessModifiers, clang::format::FormatStyle::IndentCaseBlocks, clang::format::FormatStyle::IndentCaseLabels, clang::format::FormatStyle::IndentExportBlock, clang::format::FormatStyle::IndentExternBlock, clang::format::FormatStyle::IndentGotoLabels, clang::format::FormatStyle::IndentPPDirectives, clang::format::FormatStyle::IndentRequiresClause, clang::format::FormatStyle::IndentWidth, clang::format::FormatStyle::IndentWrappedFunctionNames, clang::format::FormatStyle::InsertBraces, clang::format::FormatStyle::InsertNewlineAtEOF, clang::format::FormatStyle::InsertTrailingCommas, clang::format::FormatStyle::IntegerLiteralSeparator, clang::format::FormatStyle::JavaScriptQuotes, clang::format::FormatStyle::JavaScriptWrapImports, clang::format::FormatStyle::JSQS_Leave, clang::format::FormatStyle::KeepEmptyLines, clang::format::FormatStyle::KeepFormFeed, clang::format::FormatStyle::TrailingCommentsAlignmentStyle::Kind, clang::format::FormatStyle::LambdaBodyIndentation, clang::format::FormatStyle::Language, clang::format::FormatStyle::LBI_Signature, clang::format::FormatStyle::LE_DeriveLF, clang::format::FormatStyle::LineEnding, clang::format::FormatStyle::LK_Json, clang::format::FormatStyle::LK_TableGen, clang::format::FormatStyle::LK_Verilog, clang::format::FormatStyle::LS_Latest, clang::tooling::IncludeStyle::MainIncludeChar, clang::format::FormatStyle::MaxEmptyLinesToKeep, clang::tooling::IncludeStyle::MICD_Quote, clang::format::FormatStyle::NamespaceIndentation, clang::format::FormatStyle::NI_None, clang::format::FormatStyle::NLCS_Leave, clang::format::FormatStyle::NumericLiteralCase, clang::format::FormatStyle::OAS_Align, clang::format::FormatStyle::ObjCBinPackProtocolList, clang::format::FormatStyle::ObjCBlockIndentWidth, clang::format::FormatStyle::ObjCBreakBeforeNestedBlockParam, clang::format::FormatStyle::ObjCSpaceAfterMethodDeclarationPrefix, clang::format::FormatStyle::ObjCSpaceAfterProperty, clang::format::FormatStyle::ObjCSpaceBeforeProtocolList, clang::format::FormatStyle::TrailingCommentsAlignmentStyle::OverEmptyLines, clang::format::FormatStyle::PackArguments, clang::format::FormatStyle::PackConstructorInitializers, clang::format::FormatStyle::PackParameters, clang::format::FormatStyle::AlignConsecutiveStyle::PadOperators, clang::format::FormatStyle::PAS_Right, clang::format::FormatStyle::PCIS_BinPack, clang::format::FormatStyle::PenaltyBreakAssignment, clang::format::FormatStyle::PenaltyBreakBeforeFirstCallParameter, clang::format::FormatStyle::PenaltyBreakBeforeMemberAccess, clang::format::FormatStyle::PenaltyBreakComment, clang::format::FormatStyle::PenaltyBreakFirstLessLess, clang::format::FormatStyle::PenaltyBreakOpenParenthesis, clang::format::FormatStyle::PenaltyBreakScopeResolution, clang::format::FormatStyle::PenaltyBreakString, clang::format::FormatStyle::PenaltyBreakTemplateDeclaration, clang::format::FormatStyle::PenaltyExcessCharacter, clang::format::FormatStyle::PenaltyIndentedWhitespace, clang::format::FormatStyle::PenaltyReturnTypeOnItsOwnLine, clang::format::FormatStyle::PointerAlignment, clang::format::FormatStyle::PPDIS_None, clang::format::FormatStyle::PPIndentWidth, clang::format::FormatStyle::QAS_Leave, clang::format::FormatStyle::QualifierAlignment, clang::format::FormatStyle::RAS_Pointer, clang::format::FormatStyle::RCPS_OwnLine, clang::format::FormatStyle::RCS_Always, clang::format::FormatStyle::ReferenceAlignment, clang::format::FormatStyle::ReflowComments, clang::format::FormatStyle::REI_OuterScope, clang::prec::Relational, clang::format::FormatStyle::RemoveBracesLLVM, clang::format::FormatStyle::RemoveEmptyLinesInUnwrappedLines, clang::format::FormatStyle::RemoveParentheses, clang::format::FormatStyle::RemoveSemicolon, clang::format::FormatStyle::RequiresClausePosition, clang::format::FormatStyle::RequiresExpressionIndentation, clang::format::FormatStyle::RPS_Leave, clang::format::FormatStyle::RTBS_None, clang::format::FormatStyle::SAPQ_Default, clang::format::FormatStyle::SBPO_ControlStatements, clang::format::FormatStyle::SBS_Never, clang::format::FormatStyle::SDS_Leave, clang::format::FormatStyle::SeparateDefinitionBlocks, clang::format::FormatStyle::ShortFunctionStyle::setAll(), clang::format::FormatStyle::ShortNamespaceLines, clang::format::FormatStyle::SIAS_Never, clang::format::FormatStyle::SIBCS_Leave, clang::format::FormatStyle::SIEB_Never, clang::format::FormatStyle::SIPO_Never, clang::format::FormatStyle::SIS_Never, clang::format::FormatStyle::SJSIO_Before, clang::format::FormatStyle::SkipMacroDefinitionBody, clang::format::FormatStyle::SLS_All, clang::format::FormatStyle::SortIncludes, clang::format::FormatStyle::SortJavaStaticImport, clang::format::FormatStyle::SortUsingDeclarations, clang::format::FormatStyle::SpaceAfterCStyleCast, clang::format::FormatStyle::SpaceAfterLogicalNot, clang::format::FormatStyle::SpaceAfterOperatorKeyword, clang::format::FormatStyle::SpaceAfterTemplateKeyword, clang::format::FormatStyle::SpaceAroundPointerQualifiers, clang::format::FormatStyle::SpaceBeforeAssignmentOperators, clang::format::FormatStyle::SpaceBeforeCaseColon, clang::format::FormatStyle::SpaceBeforeCpp11BracedList, clang::format::FormatStyle::SpaceBeforeCtorInitializerColon, clang::format::FormatStyle::SpaceBeforeEnumUnderlyingTypeColon, clang::format::FormatStyle::SpaceBeforeInheritanceColon, clang::format::FormatStyle::SpaceBeforeJsonColon, clang::format::FormatStyle::SpaceBeforeParens, clang::format::FormatStyle::SpaceBeforeParensOptions, clang::format::FormatStyle::SpaceBeforeRangeBasedForLoopColon, clang::format::FormatStyle::SpaceBeforeSquareBrackets, clang::format::FormatStyle::SpaceInEmptyBraces, clang::format::FormatStyle::SpacesBeforeTrailingComments, clang::format::FormatStyle::SpacesInAngles, clang::format::FormatStyle::SpacesInContainerLiterals, clang::format::FormatStyle::SpacesInLineCommentPrefix, clang::format::FormatStyle::SpacesInParens, clang::format::FormatStyle::SpacesInSquareBrackets, clang::format::FormatStyle::SRS_EmptyAndAttached, clang::format::FormatStyle::Standard, clang::format::FormatStyle::StatementAttributeLikeMacros, clang::format::FormatStyle::StatementMacros, clang::format::FormatStyle::SUD_LexicographicNumeric, clang::format::FormatStyle::TableGenBreakingDAGArgOperators, clang::format::FormatStyle::TableGenBreakInsideDAGArg, clang::format::FormatStyle::TabWidth, clang::format::FormatStyle::TCAS_Always, clang::format::FormatStyle::TCS_None, clang::format::FormatStyle::UseTab, clang::format::FormatStyle::UT_Never, clang::format::FormatStyle::VerilogBreakBetweenInstancePorts, clang::format::FormatStyle::WhitespaceSensitiveMacros, clang::format::FormatStyle::WNBWELS_Leave, and clang::format::FormatStyle::WrapNamespaceBodyWithEmptyLines.

Referenced by getClangFormatStyle(), getGNUStyle(), getGoogleStyle(), getMicrosoftStyle(), getMozillaStyle(), getNoStyle(), getPredefinedStyle(), getStyle(), getWebKitStyle(), guessLanguage(), and clang::format::RawStringFormatStyleManager::RawStringFormatStyleManager().

◆ getMicrosoftStyle()

◆ getMozillaStyle()

FormatStyle clang::format::getMozillaStyle ( )

Returns a format style complying with Mozilla's style guide: https://firefox-source-docs.mozilla.org/code-quality/coding-style/index.html.

Definition at line 2309 of file Format.cpp.

References clang::format::FormatStyle::AllowAllParametersOfDeclarationOnNextLine, clang::format::FormatStyle::AllowShortFunctionsOnASingleLine, clang::format::FormatStyle::AlwaysBreakAfterDefinitionReturnType, clang::format::FormatStyle::BCIS_BeforeComma, clang::format::FormatStyle::BILS_BeforeComma, clang::format::FormatStyle::PackArgumentsStyle::BinPack, clang::format::FormatStyle::PackParametersStyle::BinPack, clang::format::FormatStyle::BLS_Block, clang::format::FormatStyle::BPAS_OnePerLine, clang::format::FormatStyle::BPPS_OnePerLine, clang::format::FormatStyle::BreakAfterReturnType, clang::format::FormatStyle::BreakBeforeBraces, clang::format::FormatStyle::BreakConstructorInitializers, clang::format::FormatStyle::BreakInheritanceList, clang::format::FormatStyle::BreakTemplateDeclarations, clang::format::FormatStyle::BS_Mozilla, clang::format::FormatStyle::BTDS_Yes, clang::format::FormatStyle::ConstructorInitializerIndentWidth, clang::format::FormatStyle::ContinuationIndentWidth, clang::format::FormatStyle::Cpp11BracedListStyle, clang::format::FormatStyle::DRTBS_TopLevel, clang::format::FormatStyle::FixNamespaceComments, getLLVMStyle(), clang::format::FormatStyle::IndentCaseLabels, clang::format::FormatStyle::ObjCSpaceAfterProperty, clang::format::FormatStyle::ObjCSpaceBeforeProtocolList, clang::format::FormatStyle::PackArguments, clang::format::FormatStyle::PackParameters, clang::format::FormatStyle::PAS_Left, clang::format::FormatStyle::PenaltyReturnTypeOnItsOwnLine, clang::format::FormatStyle::PointerAlignment, clang::format::FormatStyle::RTBS_TopLevel, clang::format::FormatStyle::ShortFunctionStyle::setEmptyAndInline(), and clang::format::FormatStyle::SpaceAfterTemplateKeyword.

Referenced by getPredefinedStyle().

◆ getNamespaceToken() [1/2]

const FormatToken * clang::format::getNamespaceToken ( ) const

Return the actual namespace token, if this token starts a namespace block.

Definition at line 949 of file FormatToken.h.

Referenced by clang::format::NamespaceEndCommentsFixer::analyze(), computeNewlines(), and getNamespaceTokenText().

◆ getNamespaceToken() [2/2]

const FormatToken * clang::format::getNamespaceToken ( const AnnotatedLine * Line,
const SmallVectorImpl< AnnotatedLine * > & AnnotatedLines )

◆ getNamespaceTokenText()

StringRef clang::format::getNamespaceTokenText ( const AnnotatedLine * Line,
const SmallVectorImpl< AnnotatedLine * > & AnnotatedLines )

◆ getNextNonComment()

FormatToken * clang::format::getNextNonComment ( ) const
nodiscard

Returns the next token ignoring comments.

Definition at line 886 of file FormatToken.h.

References Tok.

◆ getNoStyle()

FormatStyle clang::format::getNoStyle ( )

◆ getParseCategory()

const std::error_category & clang::format::getParseCategory ( )

Definition at line 1676 of file Format.cpp.

References clang::C.

Referenced by make_error_code().

◆ getPredefinedStyle()

bool clang::format::getPredefinedStyle ( StringRef Name,
FormatStyle::LanguageKind Language,
FormatStyle * Style )

Gets a predefined style for the specified language by name.

Currently supported names: LLVM, Google, Chromium, Mozilla. Names are compared case-insensitively.

Returns true if the Style has been set.

Definition at line 2426 of file Format.cpp.

References getChromiumStyle(), getClangFormatStyle(), getGNUStyle(), getGoogleStyle(), getLLVMStyle(), getMicrosoftStyle(), getMozillaStyle(), getNoStyle(), and getWebKitStyle().

Referenced by getStyle(), and clang::format::RawStringFormatStyleManager::RawStringFormatStyleManager().

◆ getPrevious()

struct clang::format::FormatToken clang::format::getPrevious ( T A1) const

Definition at line 235 of file FormatToken.h.

◆ getPreviousNonComment()

FormatToken * clang::format::getPreviousNonComment ( ) const
nodiscard

Returns the previous token ignoring comments.

Definition at line 878 of file FormatToken.h.

References Tok.

◆ getPreviousOneOf()

template<typename... Ts>
FormatToken * clang::format::getPreviousOneOf ( Ts... Ks) const
nodiscard

Definition at line 870 of file FormatToken.h.

References ForcedPrecedence, and Tok.

◆ getRawStringDelimiter()

std::optional< StringRef > clang::format::getRawStringDelimiter ( StringRef TokenText)
static

Definition at line 204 of file ContinuationIndenter.cpp.

References TokenText.

◆ getStringSplit()

◆ getStyle()

Expected< FormatStyle > clang::format::getStyle ( StringRef StyleName,
StringRef FileName,
StringRef FallbackStyle,
StringRef Code = "",
llvm::vfs::FileSystem * FS = nullptr,
bool AllowUnknownOptions = false,
llvm::SourceMgr::DiagHandlerTy DiagHandler = nullptr )

Construct a FormatStyle based on StyleName.

StyleName can take several forms:

  • "{<key>: <value>, ...}" - Set specic style parameters.
  • "<style name>" - One of the style names supported by getPredefinedStyle().
  • "file" - Load style configuration from a file called .clang-format located in one of the parent directories of FileName or the current directory if FileName is empty.
  • "file:<format_file_path>" to explicitly specify the configuration file to use.
Parameters
[in]StyleNameStyle name to interpret according to the description above.
[in]FileNamePath to start search for .clang-format if StyleName == "file".
[in]FallbackStyleThe name of a predefined style used to fallback to in case StyleName is "file" and no file can be found.
[in]CodeThe actual code to be formatted. Used to determine the language if the filename isn't sufficient.
[in]FSThe underlying file system, in which the file resides. By default, the file system is the real file system.
[in]AllowUnknownOptionsIf true, unknown format options only emit a warning. If false, errors are emitted on unknown format options.
Returns
FormatStyle as specified by StyleName. If StyleName is "file" and no file is found, returns FallbackStyle. If no style could be determined, returns an Error.

Definition at line 4696 of file Format.cpp.

References clang::FileName, getLanguageName(), getLLVMStyle(), getNoStyle(), getPredefinedStyle(), guessLanguage(), loadAndParseConfigFile(), make_string_error(), clang::format::FormatStyle::parseConfiguration, clang::Text, and Unsuitable.

Referenced by clang::tooling::formatAndApplyAllReplacements().

◆ getTokenTypeName()

const char * clang::format::getTokenTypeName ( TokenType Type)

Determines the name of a token type.

Definition at line 23 of file FormatToken.cpp.

References LIST_TOKEN_TYPES, NUM_TOKEN_TYPES, and TokNames.

◆ getWebKitStyle()

◆ guessLanguage()

◆ hash_combine()

template<class T>
void clang::format::hash_combine ( std::size_t & seed,
const T & v )
inlinestatic

Definition at line 662 of file UnwrappedLineParser.cpp.

References clang::T.

◆ hasNestedBlockInlined()

bool clang::format::hasNestedBlockInlined ( const FormatToken * Previous,
const FormatToken & Current,
const FormatStyle & Style )
static

Definition at line 1780 of file ContinuationIndenter.cpp.

References clang::format::FormatToken::is(), and Previous.

◆ IncrementChangeSpaces()

void clang::format::IncrementChangeSpaces ( unsigned Start,
int Delta,
MutableArrayRef< WhitespaceManager::Change > Changes )
static

Definition at line 335 of file WhitespaceManager.cpp.

References abs(), and SetChangeSpaces().

Referenced by AlignTokenSequence().

◆ indentLevelFor()

◆ insertQualifierAfter()

void clang::format::insertQualifierAfter ( const SourceManager & SourceMgr,
tooling::Replacements & Fixes,
const FormatToken * First,
const std::string & Qualifier )
static

◆ insertQualifierBefore()

void clang::format::insertQualifierBefore ( const SourceManager & SourceMgr,
tooling::Replacements & Fixes,
const FormatToken * First,
const std::string & Qualifier )
static

◆ isAlignableBinaryOperator()

bool clang::format::isAlignableBinaryOperator ( const FormatToken & Token)
static

◆ isAllmanBrace()

bool clang::format::isAllmanBrace ( const FormatToken & Tok)
static

Definition at line 5824 of file TokenAnnotator.cpp.

References BK_Block, and Tok.

◆ isAllmanLambdaBrace()

bool clang::format::isAllmanLambdaBrace ( const FormatToken & Tok)
static

Definition at line 5842 of file TokenAnnotator.cpp.

References BK_Block, and Tok.

◆ isBlockIndentedInitRBrace()

bool clang::format::FormatToken::isBlockIndentedInitRBrace ( const FormatStyle & Style) const
nodiscard

Returns true if this token ends a block indented initializer list.

Definition at line 66 of file FormatToken.cpp.

References BK_BracedInit, clang::format::FormatStyle::BLS_Block, clang::format::FormatToken::is(), and MatchingParen.

◆ isC78ParameterDecl()

bool clang::format::isC78ParameterDecl ( const FormatToken * Tok,
const FormatToken * Next,
const FormatToken * FuncName )
static

◆ isC78Type()

bool clang::format::isC78Type ( const FormatToken & Tok)
static

Definition at line 1308 of file UnwrappedLineParser.cpp.

References isC78Type(), and Tok.

Referenced by isC78ParameterDecl(), and isC78Type().

◆ isClangFormatOff()

◆ isClangFormatOn()

◆ isClangFormatOnOff()

bool clang::format::isClangFormatOnOff ( StringRef Comment,
bool On )
static

Definition at line 4900 of file Format.cpp.

References clang::On.

Referenced by isClangFormatOff(), and isClangFormatOn().

◆ isConfiguredQualifier()

bool clang::format::isConfiguredQualifier ( const FormatToken *const Tok,
const std::vector< tok::TokenKind > & Qualifiers )
static

◆ isConfiguredQualifierOrType()

bool clang::format::isConfiguredQualifierOrType ( const FormatToken * Tok,
const std::vector< tok::TokenKind > & Qualifiers,
const LangOptions & LangOpts )

◆ isCppStructuredBinding()

bool clang::format::isCppStructuredBinding ( bool IsCpp) const

Returns whether the token is the left square bracket of a C++ structured binding declaration.

Definition at line 929 of file FormatToken.h.

References TokenText.

◆ isCtorOrDtorName()

bool clang::format::isCtorOrDtorName ( const FormatToken * Tok)
static

Definition at line 3820 of file TokenAnnotator.cpp.

References Tok.

Referenced by clang::format::TokenAnnotator::annotate().

◆ isEmptyLambdaAllowed()

bool clang::format::isEmptyLambdaAllowed ( const FormatToken & Tok,
FormatStyle::ShortLambdaStyle ShortLambdaOption )
static

Definition at line 5837 of file TokenAnnotator.cpp.

References clang::format::FormatStyle::SLS_None, and Tok.

◆ IsFunctionArgument()

bool clang::format::IsFunctionArgument ( const FormatToken & Tok)
static

Definition at line 5830 of file TokenAnnotator.cpp.

References Tok.

◆ isFunctionDeclarationName()

◆ isGoogScope()

bool clang::format::isGoogScope ( const UnwrappedLine & Line)
static

Definition at line 920 of file UnwrappedLineParser.cpp.

References isGoogScope(), and clang::Line.

Referenced by isGoogScope().

◆ isIIFE()

bool clang::format::isIIFE ( const UnwrappedLine & Line,
const AdditionalKeywords & Keywords )
static

Definition at line 938 of file UnwrappedLineParser.cpp.

References isIIFE(), clang::AdditionalKeywords::kw_function, and clang::Line.

Referenced by isIIFE().

◆ isJSDeclOrStmt()

◆ isLikelyXml()

bool clang::format::isLikelyXml ( StringRef Code)

Definition at line 4080 of file Format.cpp.

Referenced by clang::format::internal::reformat(), and sortIncludes().

◆ isMpegTS()

bool clang::format::isMpegTS ( StringRef Code)

Definition at line 4073 of file Format.cpp.

Referenced by clang::format::internal::reformat(), and sortIncludes().

◆ isNumericLiteralCaseFixerNeeded()

◆ isPossibleMacro()

bool clang::format::isPossibleMacro ( bool AllowFollowingColonColon = false) const

Returns true if this token likely names an object-like macro.

If AllowFollowingColonColon is true, a following :: does not disqualify the token from being considered macro-like.

Definition at line 897 of file FormatToken.h.

◆ isQualifier()

◆ isQualifierOrType()

bool clang::format::isQualifierOrType ( const FormatToken * Tok,
const LangOptions & LangOpts )

◆ lexCSharpString()

auto clang::format::lexCSharpString ( const char * Begin,
const char * End,
bool Verbatim,
bool Interpolated )
static

Definition at line 812 of file FormatTokenLexer.cpp.

◆ loadAndParseConfigFile()

llvm::ErrorOr< std::unique_ptr< llvm::MemoryBuffer > > clang::format::loadAndParseConfigFile ( StringRef ConfigFile,
llvm::vfs::FileSystem * FS,
FormatStyle * Style,
bool AllowUnknownOptions,
llvm::SourceMgr::DiagHandlerTy DiagHandler,
bool IsDotHFile )

Definition at line 4680 of file Format.cpp.

References clang::format::FormatStyle::parseConfiguration, and clang::Text.

Referenced by getStyle().

◆ make_error_code()

std::error_code clang::format::make_error_code ( ParseError e)

Definition at line 1680 of file Format.cpp.

References getParseCategory().

Referenced by clang::format::FormatStyle::parseConfiguration.

◆ make_string_error()

llvm::Error clang::format::make_string_error ( const Twine & Message)
inline

Definition at line 1684 of file Format.cpp.

Referenced by getStyle().

◆ markOptionalBraces()

void clang::format::markOptionalBraces ( FormatToken * LeftBrace)
static

◆ matchesReservedSuffix()

bool clang::format::matchesReservedSuffix ( StringRef Suffix)
static

Test if Suffix matches a C++ literal reserved by the library.

Matches against all suffixes reserved in the C++23 standard.

Definition at line 62 of file NumericLiteralCaseFixer.cpp.

Referenced by format().

◆ matchFilePath() [1/2]

bool clang::format::matchFilePath ( llvm::StringRef Pattern,
llvm::StringRef FilePath )

◆ matchFilePath() [2/2]

bool clang::format::matchFilePath ( StringRef Pattern,
StringRef FilePath )

Definition at line 24 of file MatchFilePath.cpp.

References clang::C, clang::Match, and matchFilePath().

Referenced by matchFilePath().

◆ maxNestingDepth()

unsigned clang::format::maxNestingDepth ( const AnnotatedLine & Line)
static

Definition at line 3703 of file TokenAnnotator.cpp.

References clang::Line, clang::Result, and Tok.

Referenced by clang::format::TokenAnnotator::annotate().

◆ mayReflowContent()

bool clang::format::mayReflowContent ( StringRef Content)
static

◆ mustBeJSIdent()

◆ mustBeJSIdentOrValue()

bool clang::format::mustBeJSIdentOrValue ( const AdditionalKeywords & Keywords,
const FormatToken * FormatTok )
static

◆ mustBreakAfterAttributes()

bool clang::format::mustBreakAfterAttributes ( const FormatToken & Tok,
const FormatStyle & Style )
static

◆ mustBreakBinaryOperation()

◆ opensBlockOrBlockTypeList()

bool clang::format::FormatToken::opensBlockOrBlockTypeList ( const FormatStyle & Style) const
nodiscard

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 82 of file FormatToken.cpp.

References BK_Block, BK_BracedInit, clang::format::FormatStyle::BLS_Block, clang::format::FormatToken::getBlockKind(), clang::format::FormatToken::is(), and NestingLevel.

◆ opensProtoMessageField()

◆ operator<()

◆ operator<<()

std::ostream & clang::format::operator<< ( std::ostream & Stream,
const UnwrappedLine & Line )

Definition at line 90 of file UnwrappedLineParser.cpp.

References clang::Line.

◆ parseConfiguration() [1/2]

std::error_code clang::format::parseConfiguration ( llvm::MemoryBufferRef Config,
FormatStyle * Style,
bool AllowUnknownOptions = false,
llvm::SourceMgr::DiagHandlerTy DiagHandler = nullptr,
void * DiagHandlerCtx = nullptr,
bool IsDotHFile = false )

Parse configuration from YAML-formatted text.

Style->Language is used to get the base style, if the BasedOnStyle option is present.

The FormatStyleSet of Style is reset.

When BasedOnStyle is not present, options not present in the YAML document, are retained in Style.

If AllowUnknownOptions is true, no errors are emitted if unknown format options are occurred.

If set all diagnostics are emitted through the DiagHandler.

Definition at line 2491 of file Format.cpp.

Referenced by parseConfiguration().

◆ parseConfiguration() [2/2]

std::error_code clang::format::parseConfiguration ( StringRef Config,
FormatStyle * Style,
bool AllowUnknownOptions = false,
bool IsDotHFile = false )
inline

Like above but accepts an unnamed buffer.

Definition at line 6409 of file Format.h.

References parseConfiguration().

◆ prepareLeftRightOrderingForQualifierAlignmentFixer()

void clang::format::prepareLeftRightOrderingForQualifierAlignmentFixer ( const std::vector< std::string > & Order,
std::vector< std::string > & LeftOrder,
std::vector< std::string > & RightOrder,
std::vector< tok::TokenKind > & Qualifiers )

◆ processReplacements()

template<typename T>
Expected< tooling::Replacements > clang::format::processReplacements ( T ProcessFunc,
StringRef Code,
const tooling::Replacements & Replaces,
const FormatStyle & Style )
static

◆ reformat() [1/2]

tooling::Replacements clang::format::reformat ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName,
bool * IncompleteFormat )

Same as above, except if IncompleteFormat is non-null, its value will be set to true if any of the affected ranges were not formatted due to a non-recoverable syntax error.

Definition at line 4480 of file Format.cpp.

References clang::FileName, reformat(), and clang::Result.

◆ reformat() [2/2]

tooling::Replacements clang::format::reformat ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName = "<stdin>",
FormattingAttemptStatus * Status = nullptr )

Reformats the given Ranges in Code.

Each range is extended on either end to its next bigger logic unit, i.e. everything that might influence its formatting or might be influenced by its formatting.

Returns the Replacements necessary to make all Ranges comply with Style.

If Status is non-null, its value will be populated with the status of this formatting attempt. See FormattingAttemptStatus.

Definition at line 4457 of file Format.cpp.

References clang::FileName, and clang::format::internal::reformat().

Referenced by clang::tooling::applyAtomicChanges(), formatReplacements(), and reformat().

◆ removeToken()

void clang::format::removeToken ( const SourceManager & SourceMgr,
tooling::Replacements & Fixes,
const FormatToken * First )
static

◆ replaceCRLF()

std::string clang::format::replaceCRLF ( const std::string & Code)

Definition at line 3612 of file Format.cpp.

Referenced by sortCppIncludes(), and sortJavaImports().

◆ replaceToken()

void clang::format::replaceToken ( const SourceManager & SourceMgr,
tooling::Replacements & Fixes,
const CharSourceRange & Range,
std::string NewText )
static

◆ rotateTokens()

◆ separateDefinitionBlocks()

tooling::Replacements clang::format::separateDefinitionBlocks ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName = "<stdin>" )

Inserts or removes empty lines separating definition blocks including classes, structs, functions, namespaces, and enums in the given Ranges in Code.

Returns the Replacements that inserts or removes empty lines separating definition blocks in all Ranges in Code.

References DefaultFallbackStyle, DefaultFormatStyle, clang::FileName, and StyleOptionHelpDescription.

◆ SetChangeSpaces()

void clang::format::SetChangeSpaces ( unsigned Start,
unsigned Spaces,
MutableArrayRef< WhitespaceManager::Change > Changes )
static

Definition at line 308 of file WhitespaceManager.cpp.

Referenced by IncrementChangeSpaces().

◆ ShouldBreakBeforeBrace()

bool clang::format::ShouldBreakBeforeBrace ( const FormatStyle & Style,
const FormatToken & InitialToken,
bool IsEmptyBlock,
bool IsJavaRecord = false )
static

◆ shouldIndentWrappedSelectorName()

bool clang::format::shouldIndentWrappedSelectorName ( const FormatStyle & Style,
LineType LineType )
static

Definition at line 34 of file ContinuationIndenter.cpp.

References LT_ObjCMethodDecl.

◆ shouldUnindentNextOperator()

bool clang::format::shouldUnindentNextOperator ( const FormatToken & Tok)
static

Definition at line 41 of file ContinuationIndenter.cpp.

References clang::prec::Assignment, Previous, and Tok.

◆ skipNameQualifier()

FormatToken * clang::format::skipNameQualifier ( const FormatToken * Tok)
static

Definition at line 3712 of file TokenAnnotator.cpp.

References Tok.

Referenced by getFunctionName().

◆ sortCppIncludes() [1/2]

void clang::format::sortCppIncludes ( const FormatStyle & Style,
const ArrayRef< IncludeDirective > & Includes,
ArrayRef< tooling::Range > Ranges,
StringRef FileName,
StringRef Code,
tooling::Replacements & Replaces,
unsigned * Cursor )
static

◆ sortCppIncludes() [2/2]

◆ sortIncludes()

tooling::Replacements clang::format::sortIncludes ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName,
unsigned * Cursor = nullptr )

Returns the replacements necessary to sort all #include blocks that are affected by Ranges.

Definition at line 4082 of file Format.cpp.

References clang::FileName, isLikelyXml(), isMpegTS(), sortCppIncludes(), sortJavaImports(), and sortJavaScriptImports().

Referenced by clang::tooling::applyAtomicChanges(), and formatReplacements().

◆ sortJavaImports() [1/2]

void clang::format::sortJavaImports ( const FormatStyle & Style,
const ArrayRef< JavaImportDirective > & Imports,
ArrayRef< tooling::Range > Ranges,
StringRef FileName,
StringRef Code,
tooling::Replacements & Replaces )
static

◆ sortJavaImports() [2/2]

tooling::Replacements clang::format::sortJavaImports ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName,
tooling::Replacements & Replaces )

◆ sortJavaScriptImports()

tooling::Replacements clang::format::sortJavaScriptImports ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName )

◆ sortUsingDeclarations()

tooling::Replacements clang::format::sortUsingDeclarations ( const FormatStyle & Style,
StringRef Code,
ArrayRef< tooling::Range > Ranges,
StringRef FileName = "<stdin>" )

Sort consecutive using declarations in the given Ranges in Code.

Returns the Replacements that sort the using declarations in all Ranges in Code.

Definition at line 4500 of file Format.cpp.

References clang::FileName, clang::format::Environment::make(), and clang::format::TokenAnalyzer::process().

◆ startsNextOperand()

bool clang::format::startsNextOperand ( const FormatToken & Current)
static

◆ startsNextParameter()

◆ startsSegmentOfBuilderTypeCall()

bool clang::format::startsSegmentOfBuilderTypeCall ( const FormatToken & Tok)
static

Definition at line 127 of file ContinuationIndenter.cpp.

References Tok.

Referenced by clang::format::ContinuationIndenter::mustBreak().

◆ startsWithSpace()

bool clang::format::startsWithSpace ( const std::string & s)
static

Definition at line 106 of file QualifierAlignmentFixer.cpp.

Referenced by rotateTokens().

◆ switchesFormatting()

bool clang::format::switchesFormatting ( const FormatToken & Token)

Checks if Token switches formatting, like /* clang-format off *‍/.

Token must be a comment.

Definition at line 206 of file BreakableToken.cpp.

References clang::Token::is().

Referenced by clang::format::BreakableLineCommentSection::BreakableLineCommentSection(), clang::format::BreakableBlockComment::mayReflow(), and clang::format::BreakableLineCommentSection::mayReflow().

◆ tokenCanStartNewLine()

bool clang::format::tokenCanStartNewLine ( const FormatToken & Tok)
static

Definition at line 1243 of file UnwrappedLineParser.cpp.

References Tok, and tokenCanStartNewLine().

Referenced by tokenCanStartNewLine().

◆ transformComponent()

std::string clang::format::transformComponent ( StringRef Component,
FormatStyle::NumericLiteralComponentStyle ConfigValue )
static

◆ validateQualifierOrder()

Variable Documentation

◆ CppNonKeywordTypes

std::array<StringRef, 14> clang::format::CppNonKeywordTypes
staticconstexpr
Initial value:
= {
"clock_t", "int16_t", "int32_t", "int64_t", "int8_t",
"intptr_t", "ptrdiff_t", "size_t", "time_t", "uint16_t",
"uint32_t", "uint64_t", "uint8_t", "uintptr_t",
}

Definition at line 48 of file FormatToken.cpp.

◆ DefaultFallbackStyle

const char * clang::format::DefaultFallbackStyle = "LLVM"

The suggested predefined style to use as the fallback style in getStyle.

Different builds can modify the value to the preferred styles.

Definition at line 4677 of file Format.cpp.

Referenced by separateDefinitionBlocks().

◆ DefaultFormatStyle

const char * clang::format::DefaultFormatStyle = "file"

The suggested format style to use by default.

This allows tools using getStyle to have a consistent default style. Different builds can modify the value to the preferred styles.

Definition at line 4675 of file Format.cpp.

Referenced by separateDefinitionBlocks().

◆ QtPropertyKeywords

std::array<StringRef, 16> clang::format::QtPropertyKeywords
staticconstexpr
Initial value:
= {
"BINDABLE", "CONSTANT", "DESIGNABLE", "FINAL", "MEMBER", "NOTIFY",
"OVERRIDE", "READ", "REQUIRED", "RESET", "REVISION", "SCRIPTABLE",
"STORED", "USER", "VIRTUAL", "WRITE",
}

Definition at line 36 of file FormatToken.cpp.

◆ StyleOptionHelpDescription

const char * clang::format::StyleOptionHelpDescription
Initial value:
=
"Set coding style. <string> can be:\n"
"1. A preset: LLVM, GNU, Google, Chromium, Microsoft,\n"
" Mozilla, WebKit.\n"
"2. 'file' to load style configuration from a\n"
" .clang-format file in one of the parent directories\n"
" of the source file (for stdin, see --assume-filename).\n"
" If no .clang-format file is found, falls back to\n"
" --fallback-style.\n"
" --style=file is the default.\n"
"3. 'file:<format_file_path>' to explicitly specify\n"
" the configuration file.\n"
"4. \"{key: value, ...}\" to set specific parameters, e.g.:\n"
" --style=\"{BasedOnStyle: llvm, IndentWidth: 8}\""

Description to be used for help text for a llvm::cl option for specifying format style.

The description is closely related to the operation of getStyle().

Definition at line 4556 of file Format.cpp.

Referenced by separateDefinitionBlocks().