Формат Clang не всегда соответствует BinPackParameters: false - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь использовать файл в формате .clang с Visual Studio 2017, но, похоже, он не всегда учитывает аргумент BinPackParameters, который я установил в false.

со следующими установленными параметрами:

AlignAfterOpenBracket: AlwaysBreak
AllowAllParametersOfDeclarationOnNextLine: false
BinPackArguments: false
BinPackParameters: false
ColumnLimit: 110

Я бы ожидал, что мои вызовы методов, которые были слишком длинными (то есть больше, чем параметр ColumnWidth), всегда будут переносить строки для каждого параметра метода, чтобы каждый из них находился в разных строках, например:

LongMethodNameCall(
    someLongParameter1,
    someLongParameter2,
    someLongParameter3,
    someLongParameter4 );

Это иногда так, но в других случаях я получаю:

LongMethodNameCall(
    someLongParameter1, someLongParameter2, someLongParameter3, someLongParameter4 );

Чтобы было ясно, я хочу, чтобы всегда разрыв строки после открывающей скобки и помещал каждый параметр в одинстрока, если весь оператор превышает параметр ColumnWidth .

Вот мой файл в формате .clang:

Language: Cpp
#DisableFormat: true

AccessModifierOffset: -4
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
    AfterClass:      true   
    AfterControlStatement: true
    AfterEnum:       true
    AfterFunction:   true          
    AfterNamespace:  false                
    AfterStruct:     true
    AfterUnion:      true
    BeforeCatch:     true
    BeforeElse:      true   
    IndentBraces:    false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: AfterColon
BreakStringLiterals: true
ColumnLimit: 110
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
IncludeCategories:
    - Regex:           '\/stdafx.h'
      Priority:        -1
IndentCaseLabels: true
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
PenaltyBreakAssignment: 100
PenaltyBreakBeforeFirstCallParameter: 0
PenaltyBreakComment: 0
PenaltyBreakFirstLessLess: 100
PenaltyBreakString: 50
PenaltyExcessCharacter: 20
PenaltyReturnTypeOnItsOwnLine: 1000
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesInAngles: true
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: true
SpacesInParentheses: true
SpacesInSquareBrackets: true
TabWidth: 4
UseTab: Never

1 Ответ

0 голосов
/ 28 февраля 2019

Единственное время BinPackParameters: ложь не соблюдается, когда AllowAllParametersOfDeclarationOnNextLine установлено на true , что не в вашем случае.

Я пытался с предоставленнымconfig и не может воспроизвести проблему.

Инструмент, вероятно, был изменен в то время.

...