Если бы вы использовали более позднюю версию clang-format, вы могли бы подойти очень близко. Но с 3.4.2 я так не думаю.
С версией 6.0.0 вы можете очень близко подойти, но кажется необходимым поставить скобку в той же строке, что и extern "C"
чтобы отключить отступ в разделе extern "C"
. Для этого необходимо использовать настройку Custom
для BreakBeforeBraces
. Такое поведение при отключении отступа блока extern "C"
нигде не задокументировано, но оно работает для меня.
Попробуйте изменить свой .clang-format
файл, чтобы он содержал следующее:
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true # <-- You need this
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: false # <-- And this
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBraces: Custom # <-- And this
Обратите внимание, что там есть множество опций, которые вы можете оставить, как обычно. Для этого важны только значения AfterEnum
, AfterExternBlock
и BreakBeforeBraces
. См. Дополнительную информацию об этих настройках в документации .
Если у вас еще нет файла .clang-format
, вы должны начать с clang-format -dump-config > .clang-format
, а затем отредактировать файл.