cutter/scripts/_clang-format
Premade dc76ccf59e
Enforce coding style using clang-tidy (#3603)
Added scripts/clang-tidy.py
Updated doc to tell about clang-tidy
Added checks for clang-tidy are defined below
* cppcoreguidelines-pro-type-cstyle-cast
* misc-const-correctness
* misc-unused-parameters
* modernize-loop-convert
* modernize-use-auto
* modernize-use-nullptr
* readability-braces-around-statements
* readability-identifier-naming
* readability-make-member-function-const
* performance-for-range-copy
* performance-enum-size
* performance-move-const-arg
* performance-no-automatic-move
* performance-noexcept-destructor
* performance-noexcept-move-constructor
* performance-noexcept-swap
* performance-unnecessary-copy-initialization
* performance-unnecessary-value-param
* performance-use-std-move
* performance-move-constructor-init
2026-05-22 21:46:02 +05:00

119 lines
3.9 KiB
Text

# Copyright (C) 2016 Olivier Goffart <ogoffart@woboq.com>
#
# 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
# Cutter specific modifications at the bottom. This file is used to generate
# _clang_format at the root of repository using update_clang_format.sh
---
# Webkit style was loosely based on the Qt style
BasedOnStyle: WebKit
Standard: Cpp11
# Column width is limited to 100 in accordance with Qt Coding Style.
# https://wiki.qt.io/Qt_Coding_Style
# Note that this may be changed at some point in the future.
ColumnLimit: 100
# How much weight do extra characters after the line length limit have.
# PenaltyExcessCharacter: 4
# Disable reflow of qdoc comments: indentation rules are different.
# Translation comments are also excluded.
CommentPragmas: "^!|^:"
# We want a space between the type and the star for pointer types.
PointerBindsToType: false
# We use template< without space.
SpaceAfterTemplateKeyword: false
# We want to break before the operators, but not before a '='.
BreakBeforeBinaryOperators: NonAssignment
# Braces are usually attached, but not after functions or class declarations.
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
# When constructor initializers do not fit on one line, put them each on a new line.
ConstructorInitializerAllOnOneLineOrOnePerLine: true
# Indent initializers by 4 spaces
ConstructorInitializerIndentWidth: 4
# Indent width for line continuations.
ContinuationIndentWidth: 8
# No indentation for namespaces.
NamespaceIndentation: None
# Allow indentation for preprocessing directives (if/ifdef/endif). https://reviews.llvm.org/rL312125
IndentPPDirectives: AfterHash
# Horizontally align arguments after an open bracket.
# The coding style does not specify the following, but this is what gives
# results closest to the existing code.
AlignAfterOpenBracket: true
AlwaysBreakTemplateDeclarations: true
# 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: true
# macros for which the opening brace stays attached.
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE, CutterRzListForeach ]
# Break constructor initializers before the colon and after the commas.
BreakConstructorInitializers: BeforeColon
# Cutter additions to Qt's Clang file
# ====================================
# Align the assignment operators of consecutive lines
AlignConsecutiveAssignments: false
# Sort headers in the following groups in alphabetical order
# Each group is seperated by an empty line
# 1- Main header
# 2- Local headers starting with ""
# 3- Qt headers starting with <Q...> or <q...>
# 4- Standard C++ headers or any others
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^"([^"]*)"'
Priority: 1
- Regex: '^<[Qq]'
Priority: 2
- Regex: '.*'
Priority: 3
# Insert braces after conditional statements/loops even if they
# contain a single statement
InsertBraces: true
# Insert space in empty braces
SpaceInEmptyBlock: false
# Removes the spaces around ->
StatementAttributeLikeMacros: [emit]