---
Language:        Cpp
BasedOnStyle:    llvm
IndentWidth:     4
ColumnLimit:     90
SpacesBeforeTrailingComments: 2
ForEachMacros:   [ foreach, LIST_FOREACH, LIST_FOREACH_SAFE ]
DisableFormat:   false

# No space between if and parentheses
SpaceBeforeParens: Never

# Format function declarations
BinPackParameters: true
AllowAllParametersOfDeclarationOnNextLine: true
AlignAfterOpenBracket: Align
AlwaysBreakAfterReturnType: All


IndentCaseLabels: true

# Order of includes

IncludeBlocks: Regroup
# Includes are sorted with increasing priority number and then alphabetically
# The first regex which matches is the resulting priority
# We want something like this:

#include <open62541/client_subscriptions.h>
#include <open62541/client_highlevel.h>
#include <open62541/client_config_default.h>
#include <open62541/plugin/log_stdout.h>

#include "server/ua_server_internal.h"
#include "ua_network_tcp.h"
#include "ua_securechannel.h"
#include "ua_types_encoding_binary.h"

#include <check.h>
#include <stdlib.h>

#include "testing_clock.h"
#include "thread_wrapper.h"

IncludeCategories:
    # Public open62541 includes starting with <open62541/
  - Regex:           '^(<(open62541)\/)'
    Priority:        10

    # Public open62541 includes starting with "open62541/
  - Regex:           '^("(open62541)\/)'
    Priority:        20

    # Internal open62541 includes starting with "ua_" or "open62541_"
  - Regex:           '^((<|")(([[:alnum:]]+\/)?ua_|open62541_))'
    Priority:        30

    # All other system header
  - Regex:           '<[[:alnum:].]+>'
    Priority:        40

    # The rest
  - Regex:           '.*'
    Priority:        50