---
BasedOnStyle:  LLVM
AlignConsecutiveAssignments: true
BraceWrapping:
  AfterFunction:   true
  #llvm10-11: AfterControlStatement: false - Never
  BeforeCatch:     true
  BeforeElse:      true
  #llvm11:   BeforeLambdaBody: false
  #llvm11:   BeforeWhile:     false
BreakBeforeBraces: Stroustrup
BreakAfterJavaFieldAnnotations: true
BreakStringLiterals: true
ColumnLimit:     110
IndentWidth:     4
---
Language:        Cpp
#llvm11: AlignConsecutiveBitFields: false
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
#llvm10-11: AlignOperands:   true - Align
#llvm11: AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: None
AlwaysBreakAfterReturnType: AllDefinitions
# Can enable the following section when llvm 12.x is out
#AttributeMacros:
#  - H5_ATTR_FORMAT
#  - H5_ATTR_UNUSED
#  - H5_ATTR_DEPRECATED_USED
#  - H5_ATTR_NDEBUG_UNUSED
#  - H5_ATTR_DEBUG_API_USED
#  - H5_ATTR_PARALLEL_UNUSED
#  - H5_ATTR_PARALLEL_USED
#  - H5_ATTR_NORETURN
#  - H5_ATTR_CONST
#  - H5_ATTR_PURE
#  - H5_ATTR_FALLTHROUGH
ForEachMacros: ['ALL_MEMBERS', 'UNIQUE_MEMBERS']
IncludeCategories:
  - Regex:           '^"(llvm|llvm-c|clang|clang-c)/'
    Priority:        3
    SortPriority:    0
  - Regex:           '^(<|"(gtest|gmock|isl|json)/)'
    Priority:        4
    SortPriority:    0
  - Regex:           '.*'
    Priority:        0
    SortPriority:    0
  - Regex:           '^H5*.*'
    Priority:        1
    SortPriority:    0
  - Regex:           'private.*'
    Priority:        2
    SortPriority:    0
IncludeIsMainRegex: '(public)?$'
IndentCaseLabels: true
#llvm11: IndentCaseBlocks: false
IndentGotoLabels: false
#llvm11: IndentExternBlock: AfterExternBlock
#llvm11: InsertTrailingCommas: None
MacroBlockBegin: "^H5_BEFORE_USER_CB*|^H5E_PAUSE_ERRORS"
MacroBlockEnd: "^H5_AFTER_USER_CB*|^H5E_RESUME_ERRORS"
ObjCBlockIndentWidth: 4
#llvm11: ObjCBreakBeforeNestedBlockParam: true
ReflowComments:  true
SortIncludes:    false
StatementMacros:
  - CATCH
  - END_MEMBERS
  - FUNC_ENTER_API
  - FUNC_ENTER_API_NAMECHECK_ONLY
  - FUNC_ENTER_NOAPI
  - FUNC_ENTER_NOAPI_NAMECHECK_ONLY
  - FUNC_ENTER_NOAPI_NOERR
  - FUNC_ENTER_NOAPI_NOINIT
  - FUNC_ENTER_NOAPI_NOINIT_NOERR
  - FUNC_ENTER_PACKAGE
  - FUNC_LEAVE_API
  - FUNC_LEAVE_API_NAMECHECK_ONLY
  - FUNC_LEAVE_NOAPI
  - FUNC_LEAVE_NOAPI_NAMECHECK_ONLY
  - FUNC_LEAVE_NOAPI_VOID_NAMECHECK_ONLY
  - FUNC_LEAVE_NOAPI_NOFS
  - H5E_BEGIN_TRY
  - H5E_END_TRY
  - H5_BEGIN_TAG
  - H5_END_TAG
  - H5_LEAVE
  - H5_WARN_C11_EXTENSIONS_OFF
  - H5_WARN_C11_EXTENSIONS_ON
  - H5_WARN_CAST_ALIGNMENT_OFF
  - H5_WARN_CAST_ALIGNMENT_ON
  - H5_WARN_CAST_AWAY_CONST_OFF
  - H5_WARN_CAST_AWAY_CONST_ON
  - H5_WARN_DUPLICATED_BRANCHES_OFF
  - H5_WARN_DUPLICATED_BRANCHES_ON
  - H5_WARN_FLOAT_CONVERSION_OFF
  - H5_WARN_FLOAT_CONVERSION_ON
  - H5_WARN_FLOAT_EQUAL_OFF
  - H5_WARN_FLOAT_EQUAL_ON
  - H5_WARN_FORMAT_NONLITERAL_OFF
  - H5_WARN_FORMAT_NONLITERAL_ON
  - H5_WARN_FORMAT_TRUNCATION_OFF
  - H5_WARN_FORMAT_TRUNCATION_ON
  - H5_WARN_IMPLICIT_FALLTHROUGH_OFF
  - H5_WARN_IMPLICIT_FALLTHROUGH_ON
  - H5_WARN_LARGE_STACK_OBJECTS_OFF
  - H5_WARN_LARGE_STACK_OBJECTS_ON
  - H5_WARN_MISSING_PROTOTYPE_OFF
  - H5_WARN_MISSING_PROTOTYPE_ON
  - H5_WARN_MPI_STATUSES_IGNORE_OFF
  - H5_WARN_MPI_STATUSES_IGNORE_ON
  - H5_WARN_NONSTD_SUFFIX_OFF
  - H5_WARN_NONSTD_SUFFIX_ON
  - H5_WARN_OBJ_FXN_POINTER_CONVERSION_OFF
  - H5_WARN_OBJ_FXN_POINTER_CONVERSION_ON
  - H5_WARN_SIGN_CONVERSION_OFF
  - H5_WARN_SIGN_CONVERSION_ON
  - H5_WARN_UNUSED_PARAMETER_OFF
  - H5_WARN_UNUSED_PARAMETER_ON
  - H5_WARN_USELESS_COMPARISON_OFF
  - H5_WARN_USELESS_COMPARISON_ON
  - HGOTO_DONE
  - HMPI_DONE_ERROR
  - HMPI_ERROR
  - HMPI_GOTO_ERROR
  - HSYS_DONE_ERROR
  - HSYS_GOTO_ERROR
#llvm10: TypenameMacros:
#llvm10:   - STACK_OF
#llvm10:   - LIST
#llvm11: WhitespaceSensitiveMacros:
#llvm11:   - STRINGIZE
#llvm11:   - PP_STRINGIZE
---
Language:      Java
BreakAfterJavaFieldAnnotations: true
JavaImportGroups: ['java', 'hdf', 'hdf.hdf5lib', 'org']
...
