---
Language: Cpp
BasedOnStyle: LLVM
Standard: c++20

ColumnLimit: 100
IndentWidth: 4
TabWidth: 4
UseTab: Never

AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: WithoutElse
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BreakBeforeBraces: Attach
IndentPPDirectives: AfterHash
NamespaceIndentation: None
PointerAlignment: Left
SeparateDefinitionBlocks: Always
SpaceAfterTemplateKeyword: false

# Keep the public headers first, then the rest -- makes include cycles obvious.
SortIncludes: CaseSensitive
IncludeBlocks: Regroup
IncludeCategories:
  - Regex: '^<tfidf/'
    Priority: 1
  - Regex: '^<nanobind/'
    Priority: 2
  - Regex: '^<doctest'
    Priority: 3
  - Regex: '^<'
    Priority: 4
  - Regex: '.*'
    Priority: 5
