clang -нарушение формата длинных комментариев doxygen

#comments #doxygen #clang-format

#Комментарии #doxygen #clang-форматирование

Вопрос:

Я получил эти комментарии doxygen в своей устаревшей кодовой базе, и мне нравится сохранять их для согласованности.

 /***************//****************************************************************
 *
 * @file
 *
 * Serial inteface to Novatel OEM4 GPS API.
 *
 *******************************************************************************/
  

К сожалению, clang-format-7 форматирует комментарии необычно и делает комментарии doxygen бесполезными.

 /*****************************************************************************/ /**
                                                                                 *
                                                                                 * @file
                                                                                 *
                                                                                 * Serial inteface to Novatel OEM4 GPS API.
                                                                                                                                                                *
                                                                                 *******************************************************************************/
  

Я попробовал CommentPragmas: ‘^ . ‘ или ‘// **’ в моем формате .clang
безуспешно.

Мой формат .clang следующий

 ---
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: 'true'
AlignConsecutiveDeclarations: 'true'
AlignEscapedNewlines: Right
AlignOperands: 'true'
AlignTrailingComments: 'true'
AllowAllParametersOfDeclarationOnNextLine: 'false'
AllowShortBlocksOnASingleLine: 'false'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: 'false'
AlwaysBreakAfterDefinitionReturnType: None
BinPackArguments: 'false'
BinPackParameters: 'false'
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Stroustrup
BreakBeforeTernaryOperators: 'true'
BreakConstructorInitializers: BeforeComma
BreakStringLiterals: 'true'
ColumnLimit: '132'
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
Cpp11BracedListStyle: 'true'
DerivePointerAlignment: 'false'
IndentCaseLabels: 'false'
IndentPPDirectives: AfterHash
IndentWidth: '4'
IndentWrappedFunctionNames: 'false'
KeepEmptyLinesAtTheStartOfBlocks: 'false'
Language: Cpp
MaxEmptyLinesToKeep: '1'
PointerAlignment: Right
ReflowComments: 'true'
SortIncludes: 'false'
SortUsingDeclarations: 'false'
SpaceAfterCStyleCast: 'true'
SpacesBeforeTrailingComments: '2'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeCpp11BracedList: 'false'
SpaceBeforeParens: ControlStatements
Standard: Cpp11
TabWidth: '4'
UseTab: Never
CommentPragmas: '^\. '

...

  

Я ожидаю, что комментарий doxygen не будет затронут моими фрагментами комментариев, но у меня это не работает.

Любая помощь приветствуется.

Ответ №1:

Изменение ReflowComments на false должно привести к нужному результату (по крайней мере, с clang-format 8.0 ).

Комментарии:

1. Это остановит любое повторное использование комментариев повсюду. И это преобразует первую строку в …***/<ПРОБЕЛ> /**. Это не то, чего я хочу. Я попробовал опцию CommentPragmaS, но не смог разобраться: (