diff --git a/arduino-ide-extension/src/node/clang-formatter.ts b/arduino-ide-extension/src/node/clang-formatter.ts index 2431d96d6..a1ba2345e 100644 --- a/arduino-ide-extension/src/node/clang-formatter.ts +++ b/arduino-ide-extension/src/node/clang-formatter.ts @@ -147,189 +147,10 @@ function styleJson({ UseTab, }: ClangFormatOptions): Record { // Source: https://github.com/arduino/tooling-project-assets/tree/main/other/clang-format-configuration + const defaultConfig = require('../../src/node/default-formatter-config.json'); return { - AccessModifierOffset: -2, - AlignAfterOpenBracket: 'Align', - AlignArrayOfStructures: 'None', - AlignConsecutiveAssignments: 'None', - AlignConsecutiveBitFields: 'None', - AlignConsecutiveDeclarations: 'None', - AlignConsecutiveMacros: 'None', - AlignEscapedNewlines: 'DontAlign', - AlignOperands: 'Align', - AlignTrailingComments: true, - AllowAllArgumentsOnNextLine: true, - AllowAllConstructorInitializersOnNextLine: true, - AllowAllParametersOfDeclarationOnNextLine: true, - AllowShortBlocksOnASingleLine: 'Always', - AllowShortCaseLabelsOnASingleLine: true, - AllowShortEnumsOnASingleLine: true, - AllowShortFunctionsOnASingleLine: 'Empty', - AllowShortIfStatementsOnASingleLine: 'AllIfsAndElse', - AllowShortLambdasOnASingleLine: 'Empty', - AllowShortLoopsOnASingleLine: true, - AlwaysBreakAfterDefinitionReturnType: 'None', - AlwaysBreakAfterReturnType: 'None', - AlwaysBreakBeforeMultilineStrings: false, - AlwaysBreakTemplateDeclarations: 'No', - AttributeMacros: ['__capability'], - BasedOnStyle: 'LLVM', - BinPackArguments: true, - BinPackParameters: true, - BitFieldColonSpacing: 'Both', - BraceWrapping: { - AfterCaseLabel: false, - AfterClass: false, - AfterControlStatement: 'Never', - AfterEnum: false, - AfterFunction: false, - AfterNamespace: false, - AfterObjCDeclaration: false, - AfterStruct: false, - AfterUnion: false, - AfterExternBlock: false, - BeforeCatch: false, - BeforeElse: false, - BeforeLambdaBody: false, - BeforeWhile: false, - IndentBraces: false, - SplitEmptyFunction: true, - SplitEmptyRecord: true, - SplitEmptyNamespace: true, - }, - BreakAfterJavaFieldAnnotations: false, - BreakBeforeBinaryOperators: 'NonAssignment', - BreakBeforeBraces: 'Attach', - BreakBeforeConceptDeclarations: false, - BreakBeforeInheritanceComma: false, - BreakBeforeTernaryOperators: true, - BreakConstructorInitializers: 'BeforeColon', - BreakConstructorInitializersBeforeComma: false, - BreakInheritanceList: 'BeforeColon', - BreakStringLiterals: false, - ColumnLimit: 0, - CommentPragmas: '', - CompactNamespaces: false, - ConstructorInitializerAllOnOneLineOrOnePerLine: false, - ConstructorInitializerIndentWidth: 2, - ContinuationIndentWidth: 2, - Cpp11BracedListStyle: false, - DeriveLineEnding: true, - DerivePointerAlignment: true, - DisableFormat: false, - EmptyLineAfterAccessModifier: 'Leave', - EmptyLineBeforeAccessModifier: 'Leave', - ExperimentalAutoDetectBinPacking: false, - FixNamespaceComments: false, - ForEachMacros: ['foreach', 'Q_FOREACH', 'BOOST_FOREACH'], - IfMacros: ['KJ_IF_MAYBE'], - IncludeBlocks: 'Preserve', - IncludeCategories: [ - { - Regex: '^"(llvm|llvm-c|clang|clang-c)/', - Priority: 2, - SortPriority: 0, - CaseSensitive: false, - }, - { - Regex: '^(<|"(gtest|gmock|isl|json)/)', - Priority: 3, - SortPriority: 0, - CaseSensitive: false, - }, - { Regex: '.*', Priority: 1, SortPriority: 0, CaseSensitive: false }, - ], - IncludeIsMainRegex: '', - IncludeIsMainSourceRegex: '', - IndentAccessModifiers: false, - IndentCaseBlocks: true, - IndentCaseLabels: true, - IndentExternBlock: 'Indent', - IndentGotoLabels: false, - IndentPPDirectives: 'None', - IndentRequires: true, - IndentWidth: 2, - IndentWrappedFunctionNames: false, - InsertTrailingCommas: 'None', - JavaScriptQuotes: 'Leave', - JavaScriptWrapImports: true, - KeepEmptyLinesAtTheStartOfBlocks: true, - LambdaBodyIndentation: 'Signature', - Language: 'Cpp', - MacroBlockBegin: '', - MacroBlockEnd: '', - MaxEmptyLinesToKeep: 100000, - NamespaceIndentation: 'None', - ObjCBinPackProtocolList: 'Auto', - ObjCBlockIndentWidth: 2, - ObjCBreakBeforeNestedBlockParam: true, - ObjCSpaceAfterProperty: false, - ObjCSpaceBeforeProtocolList: true, - PPIndentWidth: -1, - PackConstructorInitializers: 'BinPack', - PenaltyBreakAssignment: 1, - PenaltyBreakBeforeFirstCallParameter: 1, - PenaltyBreakComment: 1, - PenaltyBreakFirstLessLess: 1, - PenaltyBreakOpenParenthesis: 1, - PenaltyBreakString: 1, - PenaltyBreakTemplateDeclaration: 1, - PenaltyExcessCharacter: 1, - PenaltyIndentedWhitespace: 1, - PenaltyReturnTypeOnItsOwnLine: 1, - PointerAlignment: 'Right', - QualifierAlignment: 'Leave', - ReferenceAlignment: 'Pointer', - ReflowComments: false, - RemoveBracesLLVM: false, - SeparateDefinitionBlocks: 'Leave', - ShortNamespaceLines: 0, - SortIncludes: 'Never', - SortJavaStaticImport: 'Before', - SortUsingDeclarations: false, - SpaceAfterCStyleCast: false, - SpaceAfterLogicalNot: false, - SpaceAfterTemplateKeyword: false, - SpaceAroundPointerQualifiers: 'Default', - SpaceBeforeAssignmentOperators: true, - SpaceBeforeCaseColon: false, - SpaceBeforeCpp11BracedList: false, - SpaceBeforeCtorInitializerColon: true, - SpaceBeforeInheritanceColon: true, - SpaceBeforeParens: 'ControlStatements', - SpaceBeforeParensOptions: { - AfterControlStatements: true, - AfterForeachMacros: true, - AfterFunctionDefinitionName: false, - AfterFunctionDeclarationName: false, - AfterIfMacros: true, - AfterOverloadedOperator: false, - BeforeNonEmptyParentheses: false, - }, - SpaceBeforeRangeBasedForLoopColon: true, - SpaceBeforeSquareBrackets: false, - SpaceInEmptyBlock: false, - SpaceInEmptyParentheses: false, - SpacesBeforeTrailingComments: 2, - SpacesInAngles: 'Leave', - SpacesInCStyleCastParentheses: false, - SpacesInConditionalStatement: false, - SpacesInContainerLiterals: false, - SpacesInLineCommentPrefix: { Minimum: 0, Maximum: -1 }, - SpacesInParentheses: false, - SpacesInSquareBrackets: false, - Standard: 'Auto', - StatementAttributeLikeMacros: ['Q_EMIT'], - StatementMacros: ['Q_UNUSED', 'QT_REQUIRE_VERSION'], + ...defaultConfig, TabWidth, - UseCRLF: false, UseTab, - WhitespaceSensitiveMacros: [ - 'STRINGIZE', - 'PP_STRINGIZE', - 'BOOST_PP_STRINGIZE', - 'NS_SWIFT_NAME', - 'CF_SWIFT_NAME', - ], }; } diff --git a/arduino-ide-extension/src/node/default-formatter-config.json b/arduino-ide-extension/src/node/default-formatter-config.json new file mode 100644 index 000000000..f0f560449 --- /dev/null +++ b/arduino-ide-extension/src/node/default-formatter-config.json @@ -0,0 +1,193 @@ +{ + "AccessModifierOffset": -2, + "AlignAfterOpenBracket": "Align", + "AlignArrayOfStructures": "None", + "AlignConsecutiveAssignments": "None", + "AlignConsecutiveBitFields": "None", + "AlignConsecutiveDeclarations": "None", + "AlignConsecutiveMacros": "None", + "AlignEscapedNewlines": "DontAlign", + "AlignOperands": "Align", + "AlignTrailingComments": true, + "AllowAllArgumentsOnNextLine": true, + "AllowAllConstructorInitializersOnNextLine": true, + "AllowAllParametersOfDeclarationOnNextLine": true, + "AllowShortBlocksOnASingleLine": "Always", + "AllowShortCaseLabelsOnASingleLine": true, + "AllowShortEnumsOnASingleLine": true, + "AllowShortFunctionsOnASingleLine": "Empty", + "AllowShortIfStatementsOnASingleLine": "AllIfsAndElse", + "AllowShortLambdasOnASingleLine": "Empty", + "AllowShortLoopsOnASingleLine": true, + "AlwaysBreakAfterDefinitionReturnType": "None", + "AlwaysBreakAfterReturnType": "None", + "AlwaysBreakBeforeMultilineStrings": false, + "AlwaysBreakTemplateDeclarations": "No", + "AttributeMacros": ["__capability"], + "BasedOnStyle": "LLVM", + "BinPackArguments": true, + "BinPackParameters": true, + "BitFieldColonSpacing": "Both", + "BraceWrapping": { + "AfterCaseLabel": false, + "AfterClass": false, + "AfterControlStatement": "Never", + "AfterEnum": false, + "AfterFunction": false, + "AfterNamespace": false, + "AfterObjCDeclaration": false, + "AfterStruct": false, + "AfterUnion": false, + "AfterExternBlock": false, + "BeforeCatch": false, + "BeforeElse": false, + "BeforeLambdaBody": false, + "BeforeWhile": false, + "IndentBraces": false, + "SplitEmptyFunction": true, + "SplitEmptyRecord": true, + "SplitEmptyNamespace": true + }, + "BreakAfterJavaFieldAnnotations": false, + "BreakBeforeBinaryOperators": "NonAssignment", + "BreakBeforeBraces": "Attach", + "BreakBeforeConceptDeclarations": false, + "BreakBeforeInheritanceComma": false, + "BreakBeforeTernaryOperators": true, + "BreakConstructorInitializers": "BeforeColon", + "BreakConstructorInitializersBeforeComma": false, + "BreakInheritanceList": "BeforeColon", + "BreakStringLiterals": false, + "ColumnLimit": 0, + "CommentPragmas": "", + "CompactNamespaces": false, + "ConstructorInitializerAllOnOneLineOrOnePerLine": false, + "ConstructorInitializerIndentWidth": 2, + "ContinuationIndentWidth": 2, + "Cpp11BracedListStyle": false, + "DeriveLineEnding": true, + "DerivePointerAlignment": true, + "DisableFormat": false, + "EmptyLineAfterAccessModifier": "Leave", + "EmptyLineBeforeAccessModifier": "Leave", + "ExperimentalAutoDetectBinPacking": false, + "FixNamespaceComments": false, + "ForEachMacros": ["foreach", "Q_FOREACH", "BOOST_FOREACH"], + "IfMacros": ["KJ_IF_MAYBE"], + "IncludeBlocks": "Preserve", + "IncludeCategories": [ + { + "Regex": "^\"(llvm|llvm-c|clang|clang-c)/", + "Priority": 2, + "SortPriority": 0, + "CaseSensitive": false + }, + { + "Regex": "^(<|\"(gtest|gmock|isl|json)/)", + "Priority": 3, + "SortPriority": 0, + "CaseSensitive": false + }, + { + "Regex": ".*", + "Priority": 1, + "SortPriority": 0, + "CaseSensitive": false + } + ], + "IncludeIsMainRegex": "", + "IncludeIsMainSourceRegex": "", + "IndentAccessModifiers": false, + "IndentCaseBlocks": true, + "IndentCaseLabels": true, + "IndentExternBlock": "Indent", + "IndentGotoLabels": false, + "IndentPPDirectives": "None", + "IndentRequires": true, + "IndentWidth": 2, + "IndentWrappedFunctionNames": false, + "InsertTrailingCommas": "None", + "JavaScriptQuotes": "Leave", + "JavaScriptWrapImports": true, + "KeepEmptyLinesAtTheStartOfBlocks": true, + "LambdaBodyIndentation": "Signature", + "Language": "Cpp", + "MacroBlockBegin": "", + "MacroBlockEnd": "", + "MaxEmptyLinesToKeep": 100000, + "NamespaceIndentation": "None", + "ObjCBinPackProtocolList": "Auto", + "ObjCBlockIndentWidth": 2, + "ObjCBreakBeforeNestedBlockParam": true, + "ObjCSpaceAfterProperty": false, + "ObjCSpaceBeforeProtocolList": true, + "PPIndentWidth": -1, + "PackConstructorInitializers": "BinPack", + "PenaltyBreakAssignment": 1, + "PenaltyBreakBeforeFirstCallParameter": 1, + "PenaltyBreakComment": 1, + "PenaltyBreakFirstLessLess": 1, + "PenaltyBreakOpenParenthesis": 1, + "PenaltyBreakString": 1, + "PenaltyBreakTemplateDeclaration": 1, + "PenaltyExcessCharacter": 1, + "PenaltyIndentedWhitespace": 1, + "PenaltyReturnTypeOnItsOwnLine": 1, + "PointerAlignment": "Right", + "QualifierAlignment": "Leave", + "ReferenceAlignment": "Pointer", + "ReflowComments": false, + "RemoveBracesLLVM": false, + "SeparateDefinitionBlocks": "Leave", + "ShortNamespaceLines": 0, + "SortIncludes": "Never", + "SortJavaStaticImport": "Before", + "SortUsingDeclarations": false, + "SpaceAfterCStyleCast": false, + "SpaceAfterLogicalNot": false, + "SpaceAfterTemplateKeyword": false, + "SpaceAroundPointerQualifiers": "Default", + "SpaceBeforeAssignmentOperators": true, + "SpaceBeforeCaseColon": false, + "SpaceBeforeCpp11BracedList": false, + "SpaceBeforeCtorInitializerColon": true, + "SpaceBeforeInheritanceColon": true, + "SpaceBeforeParens": "ControlStatements", + "SpaceBeforeParensOptions": { + "AfterControlStatements": true, + "AfterForeachMacros": true, + "AfterFunctionDefinitionName": false, + "AfterFunctionDeclarationName": false, + "AfterIfMacros": true, + "AfterOverloadedOperator": false, + "BeforeNonEmptyParentheses": false + }, + "SpaceBeforeRangeBasedForLoopColon": true, + "SpaceBeforeSquareBrackets": false, + "SpaceInEmptyBlock": false, + "SpaceInEmptyParentheses": false, + "SpacesBeforeTrailingComments": 2, + "SpacesInAngles": "Leave", + "SpacesInCStyleCastParentheses": false, + "SpacesInConditionalStatement": false, + "SpacesInContainerLiterals": false, + "SpacesInLineCommentPrefix": { + "Minimum": 0, + "Maximum": -1 + }, + "SpacesInParentheses": false, + "SpacesInSquareBrackets": false, + "Standard": "Auto", + "StatementAttributeLikeMacros": ["Q_EMIT"], + "StatementMacros": ["Q_UNUSED", "QT_REQUIRE_VERSION"], + "TabWidth": 2, + "UseCRLF": false, + "UseTab": "Never", + "WhitespaceSensitiveMacros": [ + "STRINGIZE", + "PP_STRINGIZE", + "BOOST_PP_STRINGIZE", + "NS_SWIFT_NAME", + "CF_SWIFT_NAME" + ] +} diff --git a/arduino-ide-extension/tsconfig.json b/arduino-ide-extension/tsconfig.json index 24604fe4c..31b89c625 100644 --- a/arduino-ide-extension/tsconfig.json +++ b/arduino-ide-extension/tsconfig.json @@ -13,6 +13,7 @@ "emitDecoratorMetadata": true, "module": "commonjs", "moduleResolution": "node", + "resolveJsonModule": true, "target": "ES2017", "outDir": "lib", "lib": [