.clang-format 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. # SPDX-License-Identifier: Apache-2.0
  2. #
  3. # Note: The list of ForEachMacros can be obtained using:
  4. #
  5. # git grep -h '^#define [^[:space:]]*FOR_EACH[^[:space:]]*(' include/ \
  6. # | sed "s,^#define \([^[:space:]]*FOR_EACH[^[:space:]]*\)(.*$, - '\1'," \
  7. # | sort | uniq
  8. #
  9. # References:
  10. # - https://clang.llvm.org/docs/ClangFormatStyleOptions.html
  11. ---
  12. BasedOnStyle: LLVM
  13. AlignConsecutiveMacros: AcrossComments
  14. AllowShortBlocksOnASingleLine: false
  15. AllowShortCaseLabelsOnASingleLine: false
  16. AllowShortEnumsOnASingleLine: false
  17. AllowShortFunctionsOnASingleLine: None
  18. AllowShortIfStatementsOnASingleLine: false
  19. AllowShortLoopsOnASingleLine: false
  20. AttributeMacros:
  21. - __aligned
  22. - __deprecated
  23. - __packed
  24. - __printf_like
  25. - __syscall
  26. - __subsystem
  27. ColumnLimit: 100
  28. ConstructorInitializerIndentWidth: 8
  29. ContinuationIndentWidth: 8
  30. ForEachMacros:
  31. - 'FOR_EACH'
  32. - 'FOR_EACH_FIXED_ARG'
  33. - 'FOR_EACH_IDX'
  34. - 'FOR_EACH_IDX_FIXED_ARG'
  35. - 'FOR_EACH_NONEMPTY_TERM'
  36. - 'RB_FOR_EACH'
  37. - 'RB_FOR_EACH_CONTAINER'
  38. - 'SYS_DLIST_FOR_EACH_CONTAINER'
  39. - 'SYS_DLIST_FOR_EACH_CONTAINER_SAFE'
  40. - 'SYS_DLIST_FOR_EACH_NODE'
  41. - 'SYS_DLIST_FOR_EACH_NODE_SAFE'
  42. - 'SYS_SFLIST_FOR_EACH_CONTAINER'
  43. - 'SYS_SFLIST_FOR_EACH_CONTAINER_SAFE'
  44. - 'SYS_SFLIST_FOR_EACH_NODE'
  45. - 'SYS_SFLIST_FOR_EACH_NODE_SAFE'
  46. - 'SYS_SLIST_FOR_EACH_CONTAINER'
  47. - 'SYS_SLIST_FOR_EACH_CONTAINER_SAFE'
  48. - 'SYS_SLIST_FOR_EACH_NODE'
  49. - 'SYS_SLIST_FOR_EACH_NODE_SAFE'
  50. - '_WAIT_Q_FOR_EACH'
  51. - 'Z_FOR_EACH'
  52. - 'Z_FOR_EACH_ENGINE'
  53. - 'Z_FOR_EACH_EXEC'
  54. - 'Z_FOR_EACH_FIXED_ARG'
  55. - 'Z_FOR_EACH_FIXED_ARG_EXEC'
  56. - 'Z_FOR_EACH_IDX'
  57. - 'Z_FOR_EACH_IDX_EXEC'
  58. - 'Z_FOR_EACH_IDX_FIXED_ARG'
  59. - 'Z_FOR_EACH_IDX_FIXED_ARG_EXEC'
  60. - 'Z_GENLIST_FOR_EACH_CONTAINER'
  61. - 'Z_GENLIST_FOR_EACH_CONTAINER_SAFE'
  62. - 'Z_GENLIST_FOR_EACH_NODE'
  63. - 'Z_GENLIST_FOR_EACH_NODE_SAFE'
  64. SortIncludes: Never
  65. IncludeBlocks: Regroup
  66. IncludeCategories:
  67. - Regex: '^<(assert|complex|ctype|errno|fenv|float|inttypes|limits|locale|math|setjmp|signal|stdarg|stdbool|stddef|stdint|stdio|stdlib|string|tgmath|time|wchar|wctype)\.h>$'
  68. Priority: 0
  69. - Regex: '.*'
  70. Priority: 1
  71. IndentCaseLabels: false
  72. IndentWidth: 4
  73. # SpaceBeforeParens: ControlStatementsExceptControlMacros # clang-format >= 13.0
  74. UseTab: Never
  75. WhitespaceSensitiveMacros:
  76. - STRINGIFY
  77. - Z_STRINGIFY
  78. AlignAfterOpenBracket: Align
  79. BraceWrapping:
  80. AfterClass: true
  81. AfterControlStatement: true
  82. AfterEnum: true
  83. AfterFunction: true
  84. AfterNamespace: true
  85. AfterObjCDeclaration: true
  86. AfterStruct: true
  87. AfterUnion: true
  88. AfterCaseLabel: true
  89. AfterExternBlock: false # Fix "extern "C""
  90. BeforeCatch: true
  91. BeforeElse: true
  92. BeforeWhile: false
  93. IndentBraces: false
  94. SplitEmptyFunction: true
  95. SplitEmptyRecord: true
  96. SplitEmptyNamespace: true
  97. BreakBeforeBraces: Custom # Fix "extern "C""
  98. IndentExternBlock: AfterExternBlock # Not useful for "extern "C""