forked from qt-creator/qt-creator
ClangFormat: Improve conversion from and to ClangFormat style
Improved conversion from ClangFormat style settings to CppCode style settings and the other way around. Task-number: QTCREATORBUG-29069 Change-Id: If4f75259f7fe77397fc144a83370749a49d25297 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -169,6 +169,12 @@ CppEditor::CppCodeStyleSettings ClangFormatFile::toCppCodeStyleSettings(
|
|||||||
settings.bindStarToRightSpecifier = style.PointerAlignment == FormatStyle::PAS_Right;
|
settings.bindStarToRightSpecifier = style.PointerAlignment == FormatStyle::PAS_Right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
settings.extraPaddingForConditionsIfConfusingAlign = style.BreakBeforeBinaryOperators
|
||||||
|
== FormatStyle::BOS_All;
|
||||||
|
settings.alignAssignments = style.BreakBeforeBinaryOperators == FormatStyle::BOS_All
|
||||||
|
|| style.BreakBeforeBinaryOperators
|
||||||
|
== FormatStyle::BOS_NonAssignment;
|
||||||
|
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,6 +194,9 @@ void ClangFormatFile::fromCppCodeStyleSettings(const CppEditor::CppCodeStyleSett
|
|||||||
if (settings.indentClassBraces || settings.indentEnumBraces || settings.indentBlockBraces
|
if (settings.indentClassBraces || settings.indentEnumBraces || settings.indentBlockBraces
|
||||||
|| settings.indentFunctionBraces)
|
|| settings.indentFunctionBraces)
|
||||||
m_style.BreakBeforeBraces = FormatStyle::BS_Whitesmiths;
|
m_style.BreakBeforeBraces = FormatStyle::BS_Whitesmiths;
|
||||||
|
else
|
||||||
|
m_style.BreakBeforeBraces = FormatStyle::BS_Custom;
|
||||||
|
|
||||||
|
|
||||||
m_style.IndentCaseLabels = settings.indentSwitchLabels;
|
m_style.IndentCaseLabels = settings.indentSwitchLabels;
|
||||||
#if LLVM_VERSION_MAJOR >= 11
|
#if LLVM_VERSION_MAJOR >= 11
|
||||||
@@ -196,11 +205,12 @@ void ClangFormatFile::fromCppCodeStyleSettings(const CppEditor::CppCodeStyleSett
|
|||||||
|| settings.indentControlFlowRelativeToSwitchLabels;
|
|| settings.indentControlFlowRelativeToSwitchLabels;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (settings.alignAssignments)
|
|
||||||
m_style.BreakBeforeBinaryOperators = FormatStyle::BOS_NonAssignment;
|
|
||||||
|
|
||||||
if (settings.extraPaddingForConditionsIfConfusingAlign)
|
if (settings.extraPaddingForConditionsIfConfusingAlign)
|
||||||
m_style.BreakBeforeBinaryOperators = FormatStyle::BOS_All;
|
m_style.BreakBeforeBinaryOperators = FormatStyle::BOS_All;
|
||||||
|
else if (settings.alignAssignments)
|
||||||
|
m_style.BreakBeforeBinaryOperators = FormatStyle::BOS_NonAssignment;
|
||||||
|
else
|
||||||
|
m_style.BreakBeforeBinaryOperators = FormatStyle::BOS_None;
|
||||||
|
|
||||||
m_style.DerivePointerAlignment = settings.bindStarToIdentifier || settings.bindStarToTypeName
|
m_style.DerivePointerAlignment = settings.bindStarToIdentifier || settings.bindStarToTypeName
|
||||||
|| settings.bindStarToLeftSpecifier
|
|| settings.bindStarToLeftSpecifier
|
||||||
|
|||||||
Reference in New Issue
Block a user