Files
f-task/.clang-format

296 lines
13 KiB
Plaintext
Raw Normal View History

---
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
---