diff options
author | Daniel Jasper <djasper@google.com> | 2013-07-31 23:16:02 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-07-31 23:16:02 +0000 |
commit | 65ee347285832ef21c6850e4820fcc4d6fa16cb6 (patch) | |
tree | ee0f987c3e20f2014b0bcac97b4b5fb204d337b2 /clang/lib/Format/Format.cpp | |
parent | 44a6ed8d4e0a3f9a99b5e506a7e83ce4dda8ff54 (diff) | |
download | bcm5719-llvm-65ee347285832ef21c6850e4820fcc4d6fa16cb6.tar.gz bcm5719-llvm-65ee347285832ef21c6850e4820fcc4d6fa16cb6.zip |
clang-format: Add more options to namespace indentation.
With this patch, clang-format can be configured to:
* not indent in namespace at all (former behavior).
* indent in namespace as in other blocks.
* indent only in inner namespaces (as required by WebKit style).
Also fix alignment of access specifiers in WebKit style.
Patch started by Marek Kurdej. Thank you!
llvm-svn: 187540
Diffstat (limited to 'clang/lib/Format/Format.cpp')
-rw-r--r-- | clang/lib/Format/Format.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 008693619cd..65b1a265e59 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -53,6 +53,18 @@ struct ScalarEnumerationTraits<clang::format::FormatStyle::BraceBreakingStyle> { } }; +template <> +struct ScalarEnumerationTraits< + clang::format::FormatStyle::NamespaceIndentationKind> { + static void + enumeration(IO &IO, + clang::format::FormatStyle::NamespaceIndentationKind &Value) { + IO.enumCase(Value, "None", clang::format::FormatStyle::NI_None); + IO.enumCase(Value, "Inner", clang::format::FormatStyle::NI_Inner); + IO.enumCase(Value, "All", clang::format::FormatStyle::NI_All); + } +}; + template <> struct MappingTraits<clang::format::FormatStyle> { static void mapping(llvm::yaml::IO &IO, clang::format::FormatStyle &Style) { if (IO.outputting()) { @@ -102,6 +114,7 @@ template <> struct MappingTraits<clang::format::FormatStyle> { Style.ExperimentalAutoDetectBinPacking); IO.mapOptional("IndentCaseLabels", Style.IndentCaseLabels); IO.mapOptional("MaxEmptyLinesToKeep", Style.MaxEmptyLinesToKeep); + IO.mapOptional("NamespaceIndentation", Style.NamespaceIndentation); IO.mapOptional("ObjCSpaceBeforeProtocolList", Style.ObjCSpaceBeforeProtocolList); IO.mapOptional("PenaltyBreakComment", Style.PenaltyBreakComment); @@ -158,6 +171,7 @@ FormatStyle getLLVMStyle() { LLVMStyle.IndentFunctionDeclarationAfterType = false; LLVMStyle.IndentWidth = 2; LLVMStyle.MaxEmptyLinesToKeep = 1; + LLVMStyle.NamespaceIndentation = FormatStyle::NI_None; LLVMStyle.ObjCSpaceBeforeProtocolList = true; LLVMStyle.PointerBindsToType = false; LLVMStyle.SpacesBeforeTrailingComments = 1; @@ -192,6 +206,7 @@ FormatStyle getGoogleStyle() { GoogleStyle.IndentFunctionDeclarationAfterType = true; GoogleStyle.IndentWidth = 2; GoogleStyle.MaxEmptyLinesToKeep = 1; + GoogleStyle.NamespaceIndentation = FormatStyle::NI_None; GoogleStyle.ObjCSpaceBeforeProtocolList = false; GoogleStyle.PointerBindsToType = true; GoogleStyle.SpacesBeforeTrailingComments = 2; @@ -229,11 +244,13 @@ FormatStyle getMozillaStyle() { FormatStyle getWebKitStyle() { FormatStyle Style = getLLVMStyle(); - Style.ColumnLimit = 0; - Style.BreakBeforeBraces = FormatStyle::BS_Stroustrup; + Style.AccessModifierOffset = -4; Style.BreakBeforeBinaryOperators = true; + Style.BreakBeforeBraces = FormatStyle::BS_Stroustrup; Style.BreakConstructorInitializersBeforeComma = true; + Style.ColumnLimit = 0; Style.IndentWidth = 4; + Style.NamespaceIndentation = FormatStyle::NI_Inner; Style.PointerBindsToType = true; return Style; } |