diff --git a/.clang-format b/.clang-format index 9fdba8f2f..cf5ff2c05 100644 --- a/.clang-format +++ b/.clang-format @@ -1,65 +1,88 @@ -# Copyright (C) 2016 Olivier Goffart -# -# You may use this file under the terms of the 3-clause BSD license. -# See the file LICENSE from this package for details. - -# This is the clang-format configuration style to be used by Qt, -# based on the rules from https://wiki.qt.io/Qt_Coding_Style and -# https://wiki.qt.io/Coding_Conventions - --- -# Webkit style was loosely based on the Qt style +# SPDX-FileCopyrightText: 2019 Christoph Cullmann +# SPDX-FileCopyrightText: 2019 Gernot Gebhard +# +# SPDX-License-Identifier: MIT + +# This file got automatically created by ECM, do not edit +# See https://clang.llvm.org/docs/ClangFormatStyleOptions.html for the config options +# and https://community.kde.org/Policies/Frameworks_Coding_Style#Clang-format_automatic_code_formatting +# for clang-format tips & tricks +--- +Language: JavaScript +DisableFormat: true +--- + +# Style for C++ +Language: Cpp + +# base is WebKit coding style: https://webkit.org/code-style-guidelines/ +# below are only things set that diverge from this style! BasedOnStyle: WebKit +# enforce C++11 (e.g. for std::vector> Standard: Cpp11 -ColumnLimit: 120 -# Disable reflow of qdoc comments: indentation rules are different. -# Translation comments are also excluded -CommentPragmas: "^!|^:" +# 4 spaces indent +TabWidth: 4 -# We want a space between the type and the star for pointer types -PointerBindsToType: false +# 2 * 80 wide lines +ColumnLimit: 160 -# We want to break before the operators, but not before a '=' +# sort includes inside line separated groups +SortIncludes: true + +# break before braces on function, namespace and class definitions. +BreakBeforeBraces: Linux + +# CrlInstruction *a; +PointerAlignment: Right + +# horizontally aligns arguments after an open bracket. +AlignAfterOpenBracket: Align + +# don't move all parameters to new line +AllowAllParametersOfDeclarationOnNextLine: false + +# no single line functions +AllowShortFunctionsOnASingleLine: None + +# always break before you encounter multi line strings +AlwaysBreakBeforeMultilineStrings: true + +# don't move arguments to own lines if they are not all on the same +BinPackArguments: false + +# don't move parameters to own lines if they are not all on the same +BinPackParameters: false + +# In case we have an if statement with multiple lines the operator should be at the beginning of the line +# but we do not want to break assignments BreakBeforeBinaryOperators: NonAssignment -# Braces are usually attached, but not after functions or classes declaration -BreakBeforeBraces: Custom -BraceWrapping: - AfterClass: true - AfterControlStatement: false - AfterEnum: false - AfterFunction: true - AfterNamespace: false - AfterObjCDeclaration: false - AfterStruct: true - AfterUnion: false - BeforeCatch: false - BeforeElse: false - IndentBraces: false +# format C++11 braced lists like function calls +Cpp11BracedListStyle: true -# The coding style does not specify the following, but this is what gives -# results closest to the existing code. -AlignAfterOpenBracket: DontAlign -AlwaysBreakTemplateDeclarations: true +# do not put a space before C++11 braced lists +SpaceBeforeCpp11BracedList: false -# Ideally we should also allow less short function in a single line, but -# clang-format does not handle that -AllowShortFunctionsOnASingleLine: Inline - -# The coding style specifies some include order categories, but also tells to -# separate categories with an empty line. It does not specify the order within -# the categories. Since the SortInclude feature of clang-format does not -# re-order includes separated by empty lines, the feature is not used. -SortIncludes: false - -# macros for which the opening brace stays attached -ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE ] - -# Allow two empty lines for structuring -MaxEmptyLinesToKeep: 2 +# remove empty lines KeepEmptyLinesAtTheStartOfBlocks: false -SpaceBeforeCpp11BracedList: false -Cpp11BracedListStyle: true +# no namespace indentation to keep indent level low +NamespaceIndentation: None + +# we use template< without space. +SpaceAfterTemplateKeyword: false + +# Always break after template declaration +AlwaysBreakTemplateDeclarations: true + +# macros for which the opening brace stays attached. +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE , wl_resource_for_each, wl_resource_for_each_safe ] + +# keep lambda formatting multi-line if not empty +AllowShortLambdasOnASingleLine: Empty + +# We do not want clang-format to put all arguments on a new line +AllowAllArgumentsOnNextLine: false