From a4d73cf0b3d2480666d141e15dfdc2b624ab1188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Gr=C3=A9goire?= Date: Sun, 27 Jul 2025 21:12:34 +0200 Subject: [PATCH] Refine .clang-format --- .clang-format | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/.clang-format b/.clang-format index c2c9d8bd..b66339a4 100644 --- a/.clang-format +++ b/.clang-format @@ -1,18 +1,35 @@ # Empirical format config, based on observed style guide # Use this only as an help to fit the surrounding code style - don't reformat whole files at once --- -BasedOnStyle: LLVM -AllowShortIfStatementsOnASingleLine: WithoutElse +BasedOnStyle: Microsoft +AllowShortIfStatementsOnASingleLine: AllIfsAndElse AllowShortLoopsOnASingleLine: true -AlwaysBreakTemplateDeclarations: Yes -BreakBeforeBraces: Allman +AllowShortCaseLabelsOnASingleLine: true +AllowShortFunctionsOnASingleLine: All +# AllowShortEnumsOnASingleLine: true # Broken for some reason, even in last versions of clang-format... So don't use it or it may change formating in the future. +AllowShortLambdasOnASingleLine: All BreakConstructorInitializers: BeforeComma BreakStringLiterals: false -ColumnLimit: 120 +SpaceAfterTemplateKeyword: false +AlwaysBreakTemplateDeclarations: Yes +# Allman seems to break lambda formatting for some reason with `ColumnLimit: 0`. See https://github.com/llvm/llvm-project/issues/50275 +# Even though it is supposed to have been fixed, issue still remains in 20.1.8. (and is very much present in 18.x which is the one shipped by VS2022 and VSCord clangd as of 2025-07-27) +# Things work fine with `BasedOnStyle: Microsoft` so use that instead +#BreakBeforeBraces: Allman +ColumnLimit: 0 +# We'd like to use LeftWithLastLine but it's only available in >=19.x +#AlignEscapedNewlines: LeftWithLastLine +AlignEscapedNewlines: Left FixNamespaceComments: false IndentPPDirectives: AfterHash +IndentAccessModifiers: false +AccessModifierOffset: -4 +LambdaBodyIndentation: OuterScope +PPIndentWidth: 2 IndentWidth: 4 PointerAlignment: Left SpaceBeforeParens: Never SpacesInParentheses: true TabWidth: 4 +AlignTrailingComments: + Kind: Leave