diff options
author | owenca <owenpiano@gmail.com> | 2025-08-17 12:56:22 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-17 12:56:22 -0700 |
commit | 6cfedea492c11cd46f03cfad76a638bf73de40f4 (patch) | |
tree | c3b74c903b8e30f75e6a87898c664f3f43ae6d11 /clang/lib/Format/Format.cpp | |
parent | a21d17f1d7173cdbc25f141595a0be9056760f77 (diff) | |
download | llvm-6cfedea492c11cd46f03cfad76a638bf73de40f4.zip llvm-6cfedea492c11cd46f03cfad76a638bf73de40f4.tar.gz llvm-6cfedea492c11cd46f03cfad76a638bf73de40f4.tar.bz2 |
[clang-format] Add SpaceInEmptyBraces option (#153765)
Also set it to SIEB_Always for WebKit style.
Closes #85525.
Closes #93635.
Diffstat (limited to 'clang/lib/Format/Format.cpp')
-rw-r--r-- | clang/lib/Format/Format.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 0637807..e3b22cd 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -763,6 +763,15 @@ struct ScalarEnumerationTraits<FormatStyle::SpaceBeforeParensStyle> { } }; +template <> +struct ScalarEnumerationTraits<FormatStyle::SpaceInEmptyBracesStyle> { + static void enumeration(IO &IO, FormatStyle::SpaceInEmptyBracesStyle &Value) { + IO.enumCase(Value, "Always", FormatStyle::SIEB_Always); + IO.enumCase(Value, "Block", FormatStyle::SIEB_Block); + IO.enumCase(Value, "Never", FormatStyle::SIEB_Never); + } +}; + template <> struct ScalarEnumerationTraits<FormatStyle::SpacesInAnglesStyle> { static void enumeration(IO &IO, FormatStyle::SpacesInAnglesStyle &Value) { IO.enumCase(Value, "Never", FormatStyle::SIAS_Never); @@ -931,6 +940,7 @@ template <> struct MappingTraits<FormatStyle> { bool DeriveLineEnding = true; bool UseCRLF = false; + bool SpaceInEmptyBlock = false; bool SpaceInEmptyParentheses = false; bool SpacesInConditionalStatement = false; bool SpacesInCStyleCastParentheses = false; @@ -960,6 +970,7 @@ template <> struct MappingTraits<FormatStyle> { IO.mapOptional("PointerBindsToType", Style.PointerAlignment); IO.mapOptional("SpaceAfterControlStatementKeyword", Style.SpaceBeforeParens); + IO.mapOptional("SpaceInEmptyBlock", SpaceInEmptyBlock); IO.mapOptional("SpaceInEmptyParentheses", SpaceInEmptyParentheses); IO.mapOptional("SpacesInConditionalStatement", SpacesInConditionalStatement); @@ -1193,7 +1204,7 @@ template <> struct MappingTraits<FormatStyle> { Style.SpaceBeforeRangeBasedForLoopColon); IO.mapOptional("SpaceBeforeSquareBrackets", Style.SpaceBeforeSquareBrackets); - IO.mapOptional("SpaceInEmptyBlock", Style.SpaceInEmptyBlock); + IO.mapOptional("SpaceInEmptyBraces", Style.SpaceInEmptyBraces); IO.mapOptional("SpacesBeforeTrailingComments", Style.SpacesBeforeTrailingComments); IO.mapOptional("SpacesInAngles", Style.SpacesInAngles); @@ -1276,6 +1287,13 @@ template <> struct MappingTraits<FormatStyle> { Style.LineEnding = FormatStyle::LE_DeriveCRLF; } + // If SpaceInEmptyBlock was specified but SpaceInEmptyBraces was not, + // initialize the latter from the former for backward compatibility. + if (SpaceInEmptyBlock && + Style.SpaceInEmptyBraces == FormatStyle::SIEB_Never) { + Style.SpaceInEmptyBraces = FormatStyle::SIEB_Block; + } + if (Style.SpacesInParens != FormatStyle::SIPO_Custom && (SpacesInParentheses || SpaceInEmptyParentheses || SpacesInConditionalStatement || SpacesInCStyleCastParentheses)) { @@ -1677,7 +1695,7 @@ FormatStyle getLLVMStyle(FormatStyle::LanguageKind Language) { LLVMStyle.SpaceBeforeParensOptions.AfterIfMacros = true; LLVMStyle.SpaceBeforeRangeBasedForLoopColon = true; LLVMStyle.SpaceBeforeSquareBrackets = false; - LLVMStyle.SpaceInEmptyBlock = false; + LLVMStyle.SpaceInEmptyBraces = FormatStyle::SIEB_Never; LLVMStyle.SpacesBeforeTrailingComments = 1; LLVMStyle.SpacesInAngles = FormatStyle::SIAS_Never; LLVMStyle.SpacesInContainerLiterals = true; @@ -1984,7 +2002,7 @@ FormatStyle getWebKitStyle() { Style.ObjCSpaceAfterProperty = true; Style.PointerAlignment = FormatStyle::PAS_Left; Style.SpaceBeforeCpp11BracedList = true; - Style.SpaceInEmptyBlock = true; + Style.SpaceInEmptyBraces = FormatStyle::SIEB_Always; return Style; } |