From 0e1ff86e78ae1813b29972ce4a682ad99dbb41e3 Mon Sep 17 00:00:00 2001 From: Kieran Bingham Date: Fri, 25 Jun 2021 00:58:49 +0100 Subject: 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 Reviewed-by: Jean-Michel Hautbois Signed-off-by: Kieran Bingham --- .clang-format | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) (limited to '.clang-format') 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: '(|||||)' + Priority: 9 + # Qt includes (match before C++ standard library) + - Regex: '' + Priority: 9 + CaseSensitive: true + # Headers in <> with an extension. (+system libraries) + - Regex: '<([A-Za-z0-9\-_])+\.h>' + Priority: 2 + # System headers + - Regex: '' + 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: '' + Priority: 3 + # Headers for libcamera Base support + - Regex: '' + Priority: 4 + - Regex: '' + Priority: 5 + # Public API Headers for libcamera, which are not in a subdir (i.e. ipa/,internal/) + - Regex: '' + Priority: 6 + # IPA Interfaces + - Regex: '' + 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 -- cgit v1.2.1