clang 24.0.0git
Format.h File Reference

Various functions to configurably format source code. More...

#include "clang/Basic/LangOptions.h"
#include "clang/Basic/TokenKinds.h"
#include "clang/Tooling/Core/Replacement.h"
#include "clang/Tooling/Inclusions/IncludeStyle.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/Regex.h"
#include "llvm/Support/SourceMgr.h"
#include <optional>
#include <system_error>

Go to the source code of this file.

Classes

class  clang::format::ParseErrorCategory
struct  clang::format::FormatStyle
 The FormatStyle is used to configure the formatting to follow specific guidelines. More...
struct  clang::format::FormatStyle::AlignConsecutiveStyle
 Alignment options. More...
struct  clang::format::FormatStyle::ShortCaseStatementsAlignmentStyle
 Alignment options. More...
struct  clang::format::FormatStyle::TrailingCommentsAlignmentStyle
 Alignment options. More...
struct  clang::format::FormatStyle::ShortFunctionStyle
 Different styles for merging short functions containing at most one statement. More...
struct  clang::format::FormatStyle::BraceWrappingFlags
 Precise control over the wrapping of braces. More...
struct  clang::format::FormatStyle::BinaryOperationBreakRule
 A rule that specifies how to break a specific set of binary operators. More...
struct  clang::format::FormatStyle::BreakBinaryOperationsOptions
 Options for BreakBinaryOperations. More...
struct  clang::format::FormatStyle::IntegerLiteralSeparatorStyle
 Separator format of integer literals of different bases. More...
struct  clang::format::FormatStyle::KeepEmptyLinesStyle
 Options regarding which empty lines are kept. More...
struct  clang::format::FormatStyle::NumericLiteralCaseStyle
 Separate control for each numeric literal component. More...
struct  clang::format::FormatStyle::PackArgumentsStyle
 Options related to packing arguments of function calls. More...
struct  clang::format::FormatStyle::PackParametersStyle
 Options related to packing parameters of function declarations and definitions. More...
struct  clang::format::FormatStyle::RawStringFormat
 See documentation of RawStringFormats. More...
struct  clang::format::FormatStyle::SortIncludesOptions
 Includes sorting options. More...
struct  clang::format::FormatStyle::SpaceBeforeParensCustom
 Precise control over the spacing before parentheses. More...
struct  clang::format::FormatStyle::SpacesInLineComment
 If true, spaces may be inserted into C style casts. More...
struct  clang::format::FormatStyle::SpacesInParensCustom
 Precise control over the spacing in parentheses. More...
struct  clang::format::FormatStyle::FormatStyleSet
struct  clang::format::FormattingAttemptStatus
 Represents the status of a formatting attempt. More...
struct  std::is_error_code_enum< clang::format::ParseError >

Namespaces

namespace  llvm
 Diagnostic wrappers for TextAPI types for error reporting.
namespace  llvm::vfs
namespace  clang
 Top level wrappers for InstallAPI frontend operations.
namespace  clang::format

Enumerations

enum class  clang::format::ParseError {
  clang::format::Success = 0 , clang::format::Error , clang::format::Unsuitable , clang::format::BinPackTrailingCommaConflict ,
  clang::format::InvalidQualifierSpecified , clang::format::DuplicateQualifierSpecified , clang::format::MissingQualifierType , clang::format::MissingQualifierOrder
}

Functions

const std::error_category & clang::format::getParseCategory ()
std::error_code clang::format::make_error_code (ParseError e)
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.
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.
FormatStyle clang::format::getChromiumStyle (FormatStyle::LanguageKind Language)
 Returns a format style complying with Chromium's style guide: http://www.chromium.org/developers/coding-style.
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.
FormatStyle clang::format::getWebKitStyle ()
 Returns a format style complying with Webkit's style guide: http://www.webkit.org/coding/coding-style.html.
FormatStyle clang::format::getGNUStyle ()
 Returns a format style complying with GNU Coding Standards: http://www.gnu.org/prep/standards/standards.html.
FormatStyle clang::format::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 clang::format::getClangFormatStyle ()
FormatStyle clang::format::getNoStyle ()
 Returns style indicating formatting should be not applied at all.
bool clang::format::getPredefinedStyle (StringRef Name, FormatStyle::LanguageKind Language, FormatStyle *Style)
 Gets a predefined style for the specified language by name.
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.
std::error_code clang::format::parseConfiguration (StringRef Config, FormatStyle *Style, bool AllowUnknownOptions=false, bool IsDotHFile=false)
 Like above but accepts an unnamed buffer.
std::string clang::format::configurationAsText (const FormatStyle &Style)
 Gets configuration in a YAML string.
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.
Expected< tooling::Replacementsclang::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.
Expected< tooling::Replacementsclang::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.
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.
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.
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.
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.
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.
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.
LangOptions clang::format::getFormattingLangOpts (const FormatStyle &Style=getLLVMStyle())
 Returns the LangOpts that the formatter expects you to set.
Expected< FormatStyleclang::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.
FormatStyle::LanguageKind clang::format::guessLanguage (StringRef FileName, StringRef Code)
StringRef clang::format::getLanguageName (FormatStyle::LanguageKind Language)
bool clang::format::isClangFormatOn (StringRef Comment)
bool clang::format::isClangFormatOff (StringRef Comment)

Variables

const char * clang::format::StyleOptionHelpDescription
 Description to be used for help text for a llvm::cl option for specifying format style.
const char * clang::format::DefaultFormatStyle = "file"
 The suggested format style to use by default.
const char * clang::format::DefaultFallbackStyle = "LLVM"
 The suggested predefined style to use as the fallback style in getStyle.

Detailed Description

Various functions to configurably format source code.

Definition in file Format.h.