lo2s
lo2s copied to clipboard
Update clang-format file for include grouping
We decided to order includes in the following format:
<main file header>
<lo2s group>
<cpp dependencies group>
<std lib group>
<cstr lib group>
extern "C" {
<c dependencies>
}
It's possible to explain that to clang-format:
- https://clang.llvm.org/docs/ClangFormatStyleOptions.html#includecategories
- https://clang.llvm.org/docs/ClangFormatStyleOptions.html#includeblocks
- https://clang.llvm.org/docs/ClangFormatStyleOptions.html#includeismainregex
We need https://clang.llvm.org/docs/ClangFormatStyleOptions.html#mainincludechar
Which is Part of clang format 19 ...
With clang-format-19 this works. With older versions it doesn't.
MainIncludeChar: Any
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<lo2s/'
Priority: 2
- Regex: '(hpp|hxx)>$'
Priority: 3
- Regex: '^<([^c][[:alnum:]|_]+|chrono|compare|charconv|complex|condition_variable|codecvt|coroutine|concepts)>$'
Priority: 4
- Regex: '^<c[[:alnum:]|_]+>'
Priority: 5
- Regex: '\.h>'
Priority: 6
clang-format 19 is not yet released. So we do have to wait a bit.