diff --git a/.clang-format b/.clang-format index 05639fd7..4c79ba4f 100644 --- a/.clang-format +++ b/.clang-format @@ -1,6 +1,102 @@ -# https://clang.llvm.org/docs/ClangFormatStyleOptions.html -BasedOnStyle: Google -IndentWidth: 4 -UseTab: Never -IndentPPDirectives: BeforeHash +# clang-format configuration +# compatible with clang-format 18 + +UseTab: Never +ColumnLimit: 120 + +# Indent +IndentWidth: 4 +BracedInitializerIndentWidth: 4 +AccessModifierOffset: -4 +IndentAccessModifiers: false +IndentCaseLabels: true +IndentExternBlock: Indent +IndentGotoLabels: true +IndentRequiresClause: true +IndentWrappedFunctionNames: true +NamespaceIndentation: None +LambdaBodyIndentation: Signature +BitFieldColonSpacing: Both + +# Insert +InsertBraces: true +InsertNewlineAtEOF: true +KeepEmptyLinesAtEOF: true + +# Align +AlignAfterOpenBracket: true +AlignTrailingComments: + Kind: Always + +AlignArrayOfStructures: Left +PointerAlignment: Left + +BreakAfterAttributes: Leave +BreakBeforeBinaryOperators: None +BreakBeforeConceptDeclarations: Always +BreakBeforeInlineASMColon: OnlyMultiline +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: AfterColon +BreakInheritanceList: AfterColon +BreakAdjacentStringLiterals: false +BreakStringLiterals: false +CompactNamespaces: false +Cpp11BracedListStyle: true +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: Always + +AllowAllArgumentsOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowBreakBeforeNoexceptSpecifier: Never +AllowShortBlocksOnASingleLine: Always +AllowShortCaseLabelsOnASingleLine: true +AllowShortCompoundRequirementOnASingleLine: true +AllowShortEnumsOnASingleLine: true +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: Yes +RequiresClausePosition: OwnLine +BinPackArguments: false +BinPackParameters: false + +# Space +SeparateDefinitionBlocks: Always +SpaceBeforeParens: Custom +SpaceBeforeParensOptions: + AfterControlStatements: false + AfterForeachMacros: false + AfterFunctionDeclarationName: false + AfterFunctionDefinitionName: false + AfterIfMacros: false + AfterOverloadedOperator: true + AfterRequiresInClause: true + AfterRequiresInExpression: false + BeforeNonEmptyParentheses: false + +SpaceBeforeRangeBasedForLoopColon: false +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: Never + +SpacesInParens: Custom +SpacesInParensOptions: + InConditionalStatements: false + InCStyleCasts: false + InEmptyParentheses: false + Other: false + +SpacesInSquareBrackets: false + +# Order +QualifierAlignment: Custom +QualifierOrder: ["constexpr", "const", "inline", "static", "type"] +SortIncludes: Never +SortUsingDeclarations: LexicographicNumeric + +WhitespaceSensitiveMacros: ["PK_PROTECTED"] \ No newline at end of file diff --git a/scripts/format.py b/scripts/format.py index fd07c5c7..b77b18eb 100644 --- a/scripts/format.py +++ b/scripts/format.py @@ -16,7 +16,7 @@ def get_all_files(root: str): if __name__ == '__main__': files = [] - # files.extend(get_all_files('include')) - # files.extend(get_all_files('src')) + files.extend(get_all_files('include')) + files.extend(get_all_files('src')) files.extend(get_all_files('src2')) subprocess.run(['clang-format', '-i'] + files, check=True) diff --git a/src/compiler/compiler.cpp b/src/compiler/compiler.cpp index b070a985..d9f5cd89 100644 --- a/src/compiler/compiler.cpp +++ b/src/compiler/compiler.cpp @@ -110,7 +110,7 @@ namespace pkpy{ // http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/ #define PK_METHOD(name) &Compiler::name #define PK_NO_INFIX nullptr, PREC_LOWEST - for(TokenIndex i=0; i