diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-06-25 00:58:49 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2021-08-11 10:33:40 +0100 |
commit | 0e1ff86e78ae1813b29972ce4a682ad99dbb41e3 (patch) | |
tree | 65843bb5a3d776304029090a6bd8c6bb211317f7 /.clang-format | |
parent | e552981c8f77981390dc4241525276648d616a37 (diff) |
clang-format: Regroup sort orders
Utilise the clang-format header sort to provide a regex based pattern
match for our header inclusion coding style.
The rules are updated to match as closely as possible the existing
practices and the documentation is updated accordingly.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to '.clang-format')
-rw-r--r-- | .clang-format | 53 |
1 files changed, 50 insertions, 3 deletions
diff --git a/.clang-format b/.clang-format index 3a8a896e..ff60b928 100644 --- a/.clang-format +++ b/.clang-format @@ -66,10 +66,57 @@ ExperimentalAutoDetectBinPacking: false FixNamespaceComments: true ForEachMacros: - 'udev_list_entry_foreach' -IncludeBlocks: Preserve +SortIncludes: true +IncludeBlocks: Regroup IncludeCategories: - - Regex: '.*' - Priority: 1 + # Headers matching the name of the component are matched automatically. + # Priority 1 + # Other library headers (explicit overrides to match before system headers) + - Regex: '(<jpeglib.h>|<libudev.h>|<tiffio.h>|<xf86drm.h>|<xf86drmMode.h>|<yaml.h>)' + Priority: 9 + # Qt includes (match before C++ standard library) + - Regex: '<Q([A-Za-z0-9\-_])+>' + Priority: 9 + CaseSensitive: true + # Headers in <> with an extension. (+system libraries) + - Regex: '<([A-Za-z0-9\-_])+\.h>' + Priority: 2 + # System headers + - Regex: '<sys/.*>' + Priority: 2 + # C++ standard library includes (no extension) + - Regex: '<([A-Za-z0-9\-_/])+>' + Priority: 2 + # Linux headers, as a second group/subset of system headers + - Regex: '<linux/.*>' + Priority: 3 + # Headers for libcamera Base support + - Regex: '<libcamera/base/private.h>' + Priority: 4 + - Regex: '<libcamera/base/.*\.h>' + Priority: 5 + # Public API Headers for libcamera, which are not in a subdir (i.e. ipa/,internal/) + - Regex: '<libcamera/([A-Za-z0-9\-_])+.h>' + Priority: 6 + # IPA Interfaces + - Regex: '<libcamera/ipa/.*\.h>' + Priority: 7 + # libcamera Internal headers in "" + - Regex: '"libcamera/internal/.*\.h"' + Priority: 8 + # Other libraries headers with one group per library (.h or .hpp) + - Regex: '<.*/.*\.hp*>' + Priority: 9 + # local modular includes "path/file.h" (.h or .hpp) + - Regex: '"(.*/)+.*\.hp*"' + Priority: 10 + # Other local headers "file.h" with extension (.h or .hpp) + - Regex: '".*.hp*"' + Priority: 11 + # Any unmatched line, separated from the last group + - Regex: '"*"' + Priority: 100 + IncludeIsMainRegex: '(_test)?$' IndentCaseLabels: false IndentPPDirectives: None |