如何让我的代码语句以 clang 格式出现在一行中?
How to make my code statements appear in one line with clang-format?
我创建了 .clang-format,但找不到导致此问题的行。我希望单个语句在单独的行上,即使它们很长,也不要将它们分成多行。我尝试将 ColumnLimit 增加到 150 仍然无法获得所需的格式。
我正在尝试让我的代码看起来像这样(在一行中)-
std::cout << "Congratulations, you sorted the list.\n" << "You needed " << score << " reversals." << std::endl;
std::vector<uint32_t> returnVector(uint32_t *LongNameForParameter1, double *LongNameForParameter2, const float &LongNameForParameter3,const std::map<std::string, int32_t> &LongNameForParameter4)
但是使用这种 .clang 格式它看起来像这样
std::cout << "Congratulations, you sorted the list.\n"
<< "You needed " << score << " reversals." << std::endl;
std::vector<uint32_t> returnVector(uint32_t *LongNameForParameter1, double *LongNameForParameter2, const float &LongNameForParameter3,
const std::map<std::string, int32_t> &LongNameForParameter4)
我的 .clang 格式
BasedOnStyle: LLVM
AccessModifierOffset: '-2'
AlignConsecutiveMacros: 'true'
AlignConsecutiveAssignments: 'true'
AlignTrailingComments: 'true'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: 'false'
BreakBeforeBraces: Stroustrup
ColumnLimit: '150'
CompactNamespaces: 'false'
IncludeBlocks: Regroup
IndentCaseLabels: 'true'
IndentPPDirectives: None
IndentWidth: '4'
Language: Cpp
NamespaceIndentation: All
ReflowComments: 'true'
SortIncludes: 'true'
SortUsingDeclarations: 'true'
SpaceAfterCStyleCast: 'true'
SpaceAfterLogicalNot: 'false'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeCpp11BracedList: 'true'
SpaceBeforeCtorInitializerColon: 'true'
SpaceBeforeInheritanceColon: 'true'
SpaceBeforeParens: Never
SpaceBeforeRangeBasedForLoopColon: 'false'
SpaceInEmptyParentheses: 'true'
SpacesInAngles: 'false'
SpacesInParentheses: 'false'
SpacesInSquareBrackets: 'false'
Standard: Auto
TabWidth: '4'
使用 clang-format 时,您应该远离格式比实际更好的想法。正确配置样式后,接受它并在有不正确的更改时记录错误。
在这种情况下,ColumnLimit
是正确的更改。根据您的屏幕,您可能希望在此处具有不同的值。该数字是可以放在一行中的字符数(如果制表符被空格替换)。如果你超过这个数字,它会一直分裂。
您最好的办法是通过键入 #
150 次来可视化这些字符的数量。这可以帮助您确定数字是否足够好或是否需要更改。请记住,此限制适用于您的所有代码。
如评论中所述,您可以添加 // clang-format off
以禁用更改,添加 // clang-format on
以重新启用格式。但是,这种情况不适合这样做。
我创建了 .clang-format,但找不到导致此问题的行。我希望单个语句在单独的行上,即使它们很长,也不要将它们分成多行。我尝试将 ColumnLimit 增加到 150 仍然无法获得所需的格式。
我正在尝试让我的代码看起来像这样(在一行中)-
std::cout << "Congratulations, you sorted the list.\n" << "You needed " << score << " reversals." << std::endl;
std::vector<uint32_t> returnVector(uint32_t *LongNameForParameter1, double *LongNameForParameter2, const float &LongNameForParameter3,const std::map<std::string, int32_t> &LongNameForParameter4)
但是使用这种 .clang 格式它看起来像这样
std::cout << "Congratulations, you sorted the list.\n"
<< "You needed " << score << " reversals." << std::endl;
std::vector<uint32_t> returnVector(uint32_t *LongNameForParameter1, double *LongNameForParameter2, const float &LongNameForParameter3,
const std::map<std::string, int32_t> &LongNameForParameter4)
我的 .clang 格式
BasedOnStyle: LLVM
AccessModifierOffset: '-2'
AlignConsecutiveMacros: 'true'
AlignConsecutiveAssignments: 'true'
AlignTrailingComments: 'true'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: 'false'
BreakBeforeBraces: Stroustrup
ColumnLimit: '150'
CompactNamespaces: 'false'
IncludeBlocks: Regroup
IndentCaseLabels: 'true'
IndentPPDirectives: None
IndentWidth: '4'
Language: Cpp
NamespaceIndentation: All
ReflowComments: 'true'
SortIncludes: 'true'
SortUsingDeclarations: 'true'
SpaceAfterCStyleCast: 'true'
SpaceAfterLogicalNot: 'false'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeCpp11BracedList: 'true'
SpaceBeforeCtorInitializerColon: 'true'
SpaceBeforeInheritanceColon: 'true'
SpaceBeforeParens: Never
SpaceBeforeRangeBasedForLoopColon: 'false'
SpaceInEmptyParentheses: 'true'
SpacesInAngles: 'false'
SpacesInParentheses: 'false'
SpacesInSquareBrackets: 'false'
Standard: Auto
TabWidth: '4'
使用 clang-format 时,您应该远离格式比实际更好的想法。正确配置样式后,接受它并在有不正确的更改时记录错误。
在这种情况下,ColumnLimit
是正确的更改。根据您的屏幕,您可能希望在此处具有不同的值。该数字是可以放在一行中的字符数(如果制表符被空格替换)。如果你超过这个数字,它会一直分裂。
您最好的办法是通过键入 #
150 次来可视化这些字符的数量。这可以帮助您确定数字是否足够好或是否需要更改。请记住,此限制适用于您的所有代码。
如评论中所述,您可以添加 // clang-format off
以禁用更改,添加 // clang-format on
以重新启用格式。但是,这种情况不适合这样做。