--- Language: Cpp #https://releases.llvm.org/14.0.0/tools/clang/docs/ClangFormatStyleOptions.html #Особый отступ для модификаторов видимости (на уровне с 'class') AccessModifierOffset: -4 #Выравнивание аргументов после открытия скобки AlignAfterOpenBracket: Align #Выравнивание элементов в {}, когда несколько строк друг под другом #Настройка забирает гибкость, пока от нее отказываемся AlignArrayOfStructures: None #Выравнивание после =, когда несколько строк друг под другом AlignConsecutiveAssignments: None #Выравнивание значений битовых полей AlignConsecutiveBitFields: None #Выравнивание деклараций имен, когда несколько строк друг под другом AlignConsecutiveDeclarations: None #Выравнивание значений дефайнов, когда несколько строк друг под другом AlignConsecutiveMacros: AcrossComments #Выравнивание бэкслешей в макросах AlignEscapedNewlines: Left #Выравнивание операторов (так себе настройка) AlignOperands: DontAlign #Выравнивание комментов, когда несколько строк друг под другом AlignTrailingComments: true #Если вызов функции или список инициализаторов в фигурных скобках #не помещается на одной строке, разрешите помещать все аргументы # на следующую строку, даже если BinPackArguments имеет значение false. AllowAllArgumentsOnNextLine: false #Если объявление функции не помещается на одной строке, разрешите # помещать все аргументы на следующую строку, даже если # BinPackArguments имеет значение false. AllowAllParametersOfDeclarationOnNextLine: false #Если в {} нет выражений, то закрывающая скобка рядом с открывающей, без переноса: {} AllowShortBlocksOnASingleLine: Empty #Запрещаем мультилайн в кейзах свича AllowShortCaseLabelsOnASingleLine: false #Запрещаем мультилайн в enum AllowShortEnumsOnASingleLine: false #В классах однострочные функции всегда single-line #Свободные функции всегда НЕ single-line #Функции без тела всегда single-line AllowShortFunctionsOnASingleLine: Inline #Запрет single-line if-конструкций AllowShortIfStatementsOnASingleLine: Never #Можно воротить лямбды как душе угодно AllowShortLambdasOnASingleLine: All #Запрет single-line циклов AllowShortLoopsOnASingleLine: false #Разрыв строки после возвращаемого типа объявляемой функции AlwaysBreakAfterReturnType: None #Если true, всегда разрывать строку перед многострочными строковыми литералами. AlwaysBreakBeforeMultilineStrings: false #Всегда перенос строки после обьявления шаблона AlwaysBreakTemplateDeclarations: Yes #DisableFormat: false #Если false, аргументы вызова функции будут либо все в одной строке, #либо будут иметь по одной строке каждый. # ВАЖНО! с true получается гибкая настройка BinPackArguments: true #Если false, параметры объявления функции или определения функции будут #либо все в одной строке, либо будут иметь по одной строке каждый. # ВАЖНО! с true получается гибкая настройка BinPackParameters: true #Добавляет по одному пробелу с каждой стороны : (для битового поля) BitFieldColonSpacing: Both #Правило переноса строки перед фигурными скобками (и не только) BreakBeforeBraces: Custom BraceWrapping: AfterEnum: true AfterStruct: true AfterFunction: true AfterCaseLabel: true AfterClass: true AfterControlStatement: true AfterNamespace: true AfterUnion: true AfterExternBlock: true BeforeElse: true BeforeCatch: true BeforeLambdaBody: false SplitEmptyNamespace: false BeforeWhile: false SplitEmptyFunction: false SplitEmptyRecord: false #При переносе операторы с левого края, но = остается на своей строке BreakBeforeBinaryOperators: NonAssignment #Если true, концепт будет помещен на новую строку. BreakBeforeConceptDeclarations: true #Операторы тернарного операторы с левого края (при переносе) BreakBeforeTernaryOperators: true #При инициализации в конструкторе ':' и ',' не переносятся BreakConstructorInitializers: AfterColon #При наследовании классов ':' и ',' не переносятся BreakInheritanceList: AfterComma #Разрешить разрыв строковых литералов при форматировании. BreakStringLiterals: false #Ограничение по ширине исходников ColumnLimit: 0 #Если true, последовательные объявления пространств имен будут находиться в одной строке. #Если false, каждое пространство имен объявляется в новой строке. CompactNamespaces: false #Количество символов, используемых для отступа в списках инициализаторов конструктора, #а также в списках наследования. ConstructorInitializerIndentWidth: 4 #Отступ от продолжения выражения после переноса строки #Используется при выравнивании длинных макросов по левому краю ContinuationIndentWidth: 0 #Пробелы в { 1, 2, 3 } перед первым и после последнего элемента Cpp11BracedListStyle: false #Если true, анализирует отформатированный файл на предмет #наиболее распространенного выравнивания & и * DerivePointerAlignment: false #Если нужно полностью отключить форматирование (зачем??) DisableFormat: false #Пропуск строки ПОСЛЕ модификатора доступа (например, public:) EmptyLineAfterAccessModifier: Never #Пропуск строки ДО модификатора доступа (например, public:) EmptyLineBeforeAccessModifier: LogicalBlock #Экспериментировать с экспериментальными настройками не будем #ExperimentalAutoDetectBinPacking: false #Комменты после namespace FixNamespaceComments: true #Сортировка инклюдов - каждая секция (разделенная пустой строкой) сортируется лексикографически IncludeBlocks: Preserve #Сложная ненужная настройка отступов модификаторов доступа - при true # будет игнорировать AccessModifierOffset IndentAccessModifiers: false #Дополнительный отступ у {} после case: в switch-операторе. Выглядит страшно, поэтому false IndentCaseBlocks: false #Отступ у ключевого слова case в switch. при false case и switch на одном уровне IndentCaseLabels: false #Выравнивание тела extern-секции IndentExternBlock: NoIndent #Выравнивание goto лэйблов IndentGotoLabels: false #Выравнивание вложенных препроцессорных директив IndentPPDirectives: None #Сделать отступ для пункта required в шаблоне IndentRequires: false #Отступы, пробелов IndentWidth: 4 #При длинной сигнатуре функции можно перенести имя на новую строку без доп. отступов IndentWrappedFunctionNames: false #Делать пропуск строки после начала блока { } KeepEmptyLinesAtTheStartOfBlocks: false #Выравнивание тела лямбды LambdaBodyIndentation: OuterScope #Максимум пустых строк подряд MaxEmptyLinesToKeep: 1 #Отступы у тел вложенных namespace's NamespaceIndentation: None #Количество столбцов, используемых для отступов операторов препроцессора. #Настройка не используется #PPIndentWidth: 10 #Порядок в списке инициализации. BinPack дает гибкость в настройке PackConstructorInitializers: BinPack #PenaltyBreak настройки непонятно че делают вообще.. не используется #Выравнивание * и & к типу 'int* num' PointerAlignment: Left #Не используется: #QualifierAlignment #QualifierOrder #RawStringFormats #Выравнивание ссылки, как и указателя: int& obj ReferenceAlignment: Pointer #Перенос длинных комментов ReflowComments: false #Удалять {} у if, for, ... где их можно опустить (single-line тело) #false - не удаляем RemoveBracesLLVM: false #Указывает использование пустых строк для разделения блоков определения, #включая классы, структуры, перечисления и функции. #Leave - гибкая настройка. Оставить как есть SeparateDefinitionBlocks: Leave #Максимальное количество развернутых строк, которые охватывает короткое пространство имен. ShortNamespaceLines: 5 #При сортировке инклюдов учитывать регистр SortIncludes: CaseSensitive #Если true, clang-format будет сортировать using-декларации SortUsingDeclarations: false #Пробел после CStyle cast (int) a; SpaceAfterCStyleCast: false #пробел после '!' в логических условиях SpaceAfterLogicalNot: false #Пробел после ключевого слова template SpaceAfterTemplateKeyword: true #Пробелы после PointerQualifiers # Default - также как в PointerAlignment SpaceAroundPointerQualifiers: Default #Пробел перед '=' SpaceBeforeAssignmentOperators: true #Пробел после case colon: (case 1 : ) #false - (case 1:) SpaceBeforeCaseColon: false #Если значение равно true, перед списком в фигурных скобках C++11, #используемым для инициализации объекта, будет вставлен пробел #(после предшествующего идентификатора или типа). SpaceBeforeCpp11BracedList: true #Если false, пробелы будут удалены перед двоеточием инициализатора конструктора. SpaceBeforeCtorInitializerColon: true #Если false, пробелы будут удалены перед двоеточием наследования. SpaceBeforeInheritanceColon: true #Определяет, в каких случаях ставить пробел перед открывающими скобками. # ControlStatements ставит пробел перед открывающими скобками только # после ключевых слов (for/if/while...). SpaceBeforeParens: ControlStatements #Если false, пробелы будут удалены перед двоеточием цикла range-based fr. SpaceBeforeRangeBasedForLoopColon: true #Если true, вокруг условий if/for/switch/while будут вставлены пробелы. SpacesInConditionalStatement: false ---