Blame .clang-format

5e458b
---
5e458b
Language: Cpp
5e458b
BasedOnStyle: Google
5e458b
Standard: Cpp11
5e458b
5e458b
5e458b
# Characters per line
5e458b
ColumnLimit: 120
5e458b
5e458b
5e458b
# Do not wrap comments according to ColumnLimit
5e458b
ReflowComments: false
5e458b
5e458b
5e458b
# Indentation
5e458b
IndentWidth: 4
5e458b
AccessModifierOffset: -4
5e458b
UseTab: false
5e458b
5e458b
# Keep up to 2 empty lines
5e458b
MaxEmptyLinesToKeep: 2
5e458b
5e458b
5e458b
# sort and group includes: c++, system, project
5e458b
SortIncludes: true
5e458b
IncludeBlocks: Regroup
5e458b
IncludeCategories:
5e458b
  # C++ Standard Library headers
5e458b
  - Regex:           '<[[:alnum:]_-]+>'
5e458b
    Priority:        5
5e458b
  # system libraries
5e458b
  - Regex:           '<.+>'
5e458b
    Priority:        4
5e458b
  # project includes - libdnf absolute paths
5e458b
  - Regex:           '"libdnf/.+"'
5e458b
    Priority:        3
5e458b
  # project includes - libdnf-cli absolute paths
5e458b
  - Regex:           '"libdnf-cli/.+"'
5e458b
    Priority:        2
5e458b
  # project includes
5e458b
  - Regex:           '".+"'
5e458b
    Priority:        1
5e458b
5e458b
5e458b
# Always break after an open bracket, if the parameters don't fit on a single line, e.g.:
5e458b
#
5e458b
# someLongFunction(
5e458b
#     argument1, argument2);
5e458b
#
5e458b
AlignAfterOpenBracket: AlwaysBreak
5e458b
5e458b
5e458b
# Forbid simple braced statements on a single line.
5e458b
#
5e458b
# Allowed:
5e458b
# if (a) {
5e458b
#    return;
5e458b
# }
5e458b
#
5e458b
# Forbidden:
5e458b
# if (a) { return; }
5e458b
#
5e458b
AllowShortBlocksOnASingleLine: false
5e458b
5e458b
5e458b
# Forbid short case labels on a single line.
5e458b
#
5e458b
# Allowed:
5e458b
# switch (a) {
5e458b
#     case 1:
5e458b
#         x = 1;
5e458b
#         break;
5e458b
# }
5e458b
#
5e458b
# Forbidden:
5e458b
# switch (a) {
5e458b
#     case 1: x = 1; break;
5e458b
#     case 2: return;
5e458b
# }
5e458b
#
5e458b
AllowShortCaseLabelsOnASingleLine: false
5e458b
5e458b
5e458b
# Allow only single line methods defined inside a class.
5e458b
#
5e458b
# Allowed:
5e458b
# class Foo {
5e458b
#     void f() { foo(); }
5e458b
# };
5e458b
# void f() {
5e458b
#    foo();
5e458b
# }
5e458b
#
5e458b
# Forbidden:
5e458b
# void f() { foo(); }
5e458b
AllowShortFunctionsOnASingleLine: Inline
5e458b
5e458b
5e458b
# Forbid if statements on a single line.
5e458b
#
5e458b
# Allowed:
5e458b
# if (a)
5e458b
#     return ;
5e458b
# else {
5e458b
#     return;
5e458b
# }
5e458b
#
5e458b
# Forbidden:
5e458b
# if (a) return;
5e458b
# else
5e458b
#     return;
5e458b
#
5e458b
AllowShortIfStatementsOnASingleLine: Never
5e458b
5e458b
5e458b
# Forbid loops on a single line.
5e458b
#
5e458b
# Allowed:
5e458b
# while (i < 1) {
5e458b
#     i--;
5e458b
# }
5e458b
#
5e458b
# Forbidden:
5e458b
# while (i < 1) i--;
5e458b
#
5e458b
AllowShortLoopsOnASingleLine: false
5e458b
5e458b
5e458b
# Force middle pointer alignment.
5e458b
#
5e458b
# Examples:
5e458b
# char * str;
5e458b
# const std::string & str;
5e458b
#
5e458b
DerivePointerAlignment: false
5e458b
PointerAlignment: Middle
5e458b
5e458b
5e458b
# Allow only one argument/parameter per line.
5e458b
#
5e458b
# Allowed:
5e458b
# void f(int aaaaaaaaaaaaaaaaaaaa,
5e458b
#        int aaaaaaaaaaaaaaaaaaaa,
5e458b
#        int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
5e458b
#
5e458b
# Forbidden:
5e458b
# void f(int aaaaaaaaaaaaaaaaaaaa, int aaaaaaaaaaaaaaaaaaaa,
5e458b
#        int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}
5e458b
#
5e458b
BinPackArguments: false
5e458b
BinPackParameters: false
5e458b
5e458b
5e458b
# If the function declaration doesn't fit on a line, put all parameters on the next line.
5e458b
#
5e458b
# Allowed:
5e458b
# void myFunction(
5e458b
#     int a, int b, int c, int d, int e);
5e458b
#
5e458b
# Forbidden:
5e458b
# void myFunction(int a,
5e458b
#                 int b,
5e458b
#                 int c,
5e458b
#                 int d,
5e458b
#                 int e);
5e458b
#
5e458b
AllowAllParametersOfDeclarationOnNextLine: true
5e458b
5e458b
5e458b
# Allow only per line constructor intitializers.
5e458b
#
5e458b
# Allowed:
5e458b
# MyClass::MyClass()
5e458b
#     : member0(0)
5e458b
#     , member1(2)
5e458b
#
5e458b
# Forbidden:
5e458b
# MyClass::MyClass() :
5e458b
#     member0(0), member1(2)
5e458b
#
5e458b
AllowAllConstructorInitializersOnNextLine: false
5e458b
BreakConstructorInitializers: BeforeComma
5e458b
5e458b
5e458b
# Align consecutive C/C++ preprocessor macros.
5e458b
#
5e458b
# Example:
5e458b
# #define SHORT_NAME       42
5e458b
# #define LONGER_NAME      0x007f
5e458b
# #define EVEN_LONGER_NAME (2)
5e458b
# #define foo(x)           (x * x)
5e458b
# #define bar(y, z)        (y + z)
5e458b
#
5e458b
AlignConsecutiveMacros: true
5e458b
...