有没有办法控制注释块前后的中断?

我想让我的评论块与以下功能关联。我也想在注释块之前换行。

例如此代码:

/**
 * \breif some comments
 */

void f1()
{
}


/**
 * \breif some comments
 */


void f1()
{
}


class A {

/**
 * \breif some comments
 */

void f1()
{
}

/**
 * \breif some comments
 */
void f1()
{
}
};

template<typename T>
class A {


/**
 * \breif some comments
 */

void f1()
{
}

/**
 * \breif some comments
 */
void f1()
{
}

};


要这样格式化:

/**
 * \breif some comments
 */
void f1()
{
}

/**
 * \breif some comments
 */
void f1()
{
}

class A
{
  /**
   * \breif some comments
   */
  void f1() {}

  /**
   * \breif some comments
   */
  void f1() {}
};

template < typename T >
class A
{
  /**
   * \breif some comments
   */
  void f1() {}

  /**
   * \breif some comments
   */
  void f1() {}
};


但是我得到的是:

/**
 * \breif some comments
 */

void f1()
{
}

/**
 * \breif some comments
 */

void f1()
{
}

class A
{
  /**
   * \breif some comments
   */

  void f1() {}
  /**
   * \breif some comments
   */
  void f1() {}
};

template < typename T >
class A
{
  /**
   * \breif some comments
   */

  void f1() {}
  /**
   * \breif some comments
   */
  void f1() {}
};


这是我的.clang-format

---
Language:        Cpp
BasedOnStyle:  Google
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false

AlignEscapedNewlinesLeft: true
AlignOperands:   true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true

AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false

AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: true

BinPackArguments: true
BinPackParameters: true

BraceWrapping:
  AfterClass:      false
  AfterControlStatement: false
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  BeforeCatch:     false
  BeforeElse:      false
  IndentBraces:    false

BreakBeforeBinaryOperators: None
BreakBeforeBraces: Allman
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
ColumnLimit:     100
CommentPragmas:  '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: true
DisableFormat:   false
ExperimentalAutoDetectBinPacking: false
ForEachMacros:   [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeCategories:
  - Regex:           '^<.*\.h>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3
IndentCaseLabels: false
IndentWidth:     2
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
ReflowComments:  true
SortIncludes:    true
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: Never
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles:  true
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: true
SpacesInParentheses: true
SpacesInSquareBrackets: true
Standard:        Auto
TabWidth:        2
UseTab:          Never
...

最佳答案

我发现可以通过设置解决此问题:

KeepEmptyLinesAtTheStartOfBlocks: true

关于c++ - clang-format 3.8在注释块之前和之后中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35317115/

10-12 07:36