From 4f212831c395466868975506a4d492953cefdf89 Mon Sep 17 00:00:00 2001 From: vvakame Date: Thu, 2 Mar 2017 12:41:44 +0900 Subject: [PATCH] feat(tsfmt): support new 6 settings refs #85 option name & default values. baseIndentSize: 0 insertSpaceAfterConstructor: false insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: false insertSpaceAfterTypeAssertion: false insertSpaceBeforeFunctionParenthesis: false --- lib/cli.ts | 2 +- lib/index.ts | 2 +- lib/provider/base.ts | 35 +++++++++++++------ lib/provider/tslintjson.ts | 2 ++ lib/provider/vscodesettings.ts | 4 +++ lib/utils.ts | 6 ++++ test/expected/default/main.json | 6 ++++ test/expected/editorconfig/a/main.json | 6 ++++ .../insert_final_newline/main.json | 6 ++++ .../editorconfig/newline-cr/main.json | 6 ++++ .../editorconfig/newline-crlf/main.json | 6 ++++ .../editorconfig/newline-lf/main.json | 6 ++++ test/expected/editorconfig/tab/main.json | 6 ++++ test/expected/schemats/main.json | 6 ++++ .../specified-config/tsconfig/main.json | 6 ++++ .../expected/specified-config/tsfmt/main.json | 6 ++++ .../specified-config/tslint/main.json | 6 ++++ .../expected/tsc-version/decorators/main.json | 6 ++++ test/expected/tsconfig/a/main.json | 6 ++++ test/expected/tsconfig/crlf/main.json | 6 ++++ test/expected/tsconfig/extends/main.json | 6 ++++ test/expected/tsconfig/lf/main.json | 6 ++++ test/expected/tsfmt/a/main.ts | 5 --- test/expected/tsfmt/b/main.json | 6 ++++ test/expected/tsfmt/c/main.json | 6 ++++ test/expected/tsfmt/d/main.json | 6 ++++ test/expected/tsfmt/e/main.json | 6 ++++ test/expected/tsfmt/f/main.json | 23 ++++++++++++ test/expected/tsfmt/f/main.ts | 11 ++++++ test/expected/tsfmt/g/main.json | 23 ++++++++++++ test/expected/tsfmt/g/main.ts | 3 ++ test/expected/tsfmt/h/main.json | 23 ++++++++++++ test/expected/tsfmt/h/main.tsx | 8 +++++ test/expected/tslint/a/main.json | 6 ++++ test/expected/tslint/b/main.json | 6 ++++ test/expected/tslint/indent-tabs/main.json | 6 ++++ .../no-consecutive-blank-lines/main.json | 6 ++++ .../tslint/no-trailing-whitespace/main.json | 6 ++++ .../tslint/whitespace-check-branch/main.json | 6 ++++ .../whitespace-check-operator/main.json | 6 ++++ .../whitespace-check-separator/main.json | 6 ++++ .../whitespace-check-typecast/main.json | 6 ++++ test/expected/vscode/a/main.json | 9 +++-- test/expected/vscode/b/main.json | 9 +++-- test/fixture/tsfmt/f/main.ts | 11 ++++++ test/fixture/tsfmt/f/tsfmt.json | 6 ++++ test/fixture/tsfmt/g/main.ts | 3 ++ test/fixture/tsfmt/g/tsfmt.json | 3 ++ test/fixture/tsfmt/h/main.tsx | 8 +++++ test/fixture/tsfmt/h/tsfmt.json | 3 ++ test/indexSpec.ts | 4 +-- 51 files changed, 353 insertions(+), 24 deletions(-) delete mode 100644 test/expected/tsfmt/a/main.ts create mode 100644 test/expected/tsfmt/f/main.json create mode 100644 test/expected/tsfmt/f/main.ts create mode 100644 test/expected/tsfmt/g/main.json create mode 100644 test/expected/tsfmt/g/main.ts create mode 100644 test/expected/tsfmt/h/main.json create mode 100644 test/expected/tsfmt/h/main.tsx create mode 100644 test/fixture/tsfmt/f/main.ts create mode 100644 test/fixture/tsfmt/f/tsfmt.json create mode 100644 test/fixture/tsfmt/g/main.ts create mode 100644 test/fixture/tsfmt/g/tsfmt.json create mode 100644 test/fixture/tsfmt/h/main.tsx create mode 100644 test/fixture/tsfmt/h/tsfmt.json diff --git a/lib/cli.ts b/lib/cli.ts index 496b814..b3715d6 100644 --- a/lib/cli.ts +++ b/lib/cli.ts @@ -13,7 +13,7 @@ import * as commandpost from "commandpost"; import * as lib from "./"; import { getConfigFileName, readFilesFromTsconfig } from "./utils"; -const packageJson = JSON.parse(fs.readFileSync(path.join( __dirname, "../package.json")).toString()); +const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json")).toString()); interface RootOptions { replace: boolean; diff --git a/lib/index.ts b/lib/index.ts index d754970..5979f31 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -13,7 +13,7 @@ import editorconfig, { postProcess as editorconfigPostProcess } from "./provider import tslintjson, { postProcess as tslintPostProcess } from "./provider/tslintjson"; import vscodesettings from "./provider/vscodesettings"; -const packageJson = JSON.parse(fs.readFileSync(path.join( __dirname, "../package.json")).toString()); +const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json")).toString()); export const version = packageJson.version; export interface Options { diff --git a/lib/provider/base.ts b/lib/provider/base.ts index 84e83b2..e0bcd34 100644 --- a/lib/provider/base.ts +++ b/lib/provider/base.ts @@ -7,27 +7,22 @@ import { Options } from "../"; import { getConfigFileName, parseJSON } from "../utils"; interface TsfmtSettings { - // from FormatCodeOptions - // コンマ区切り記号の後にスペースを追加する insertSpaceAfterCommaDelimiter?: boolean; - // 'for' ステートメントでセミコロンの後にスペースを挿入する insertSpaceAfterSemicolonInForStatements?: boolean; - // 二項演算子の前後にスペースを挿入する insertSpaceBeforeAndAfterBinaryOperators?: boolean; - // 制御フローステートメント内のキーワードの後にスペースを追加する + insertSpaceAfterConstructor?: boolean; insertSpaceAfterKeywordsInControlFlowStatements?: boolean; - // 匿名関数に対する関数キーワードの後にスペースを追加する insertSpaceAfterFunctionKeywordForAnonymousFunctions?: boolean; - // かっこ内が空でない場合に始め括弧の後ろと終わりカッコの前にスペースを挿入する insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis?: boolean; insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets?: boolean; - // template string literalsの括弧内にスペースを挿入する + insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces?: boolean; insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces?: boolean; - // 新しい行に関数の始め中括弧を配置する + insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces?: boolean; + insertSpaceAfterTypeAssertion?: boolean; + insertSpaceBeforeFunctionParenthesis?: boolean; placeOpenBraceOnNewLineForFunctions?: boolean; - // 新しい行にコントロールブロックの始め中括弧を配置する placeOpenBraceOnNewLineForControlBlocks?: boolean; - // from EditorOptions + baseIndentSize?: number; indentSize?: number; // 0, 1, 2 or None, Block, Smart indentStyle?: number | string; @@ -62,6 +57,9 @@ export default function makeFormatCodeOptions(fileName: string, opts: Options, f if (typeof config.insertSpaceBeforeAndAfterBinaryOperators === "boolean") { formatSettings.insertSpaceBeforeAndAfterBinaryOperators = config.insertSpaceBeforeAndAfterBinaryOperators; } + if (typeof config.insertSpaceAfterConstructor === "boolean") { + formatSettings.insertSpaceAfterConstructor = config.insertSpaceAfterConstructor; + } if (typeof config.insertSpaceAfterKeywordsInControlFlowStatements === "boolean") { formatSettings.insertSpaceAfterKeywordsInControlFlowStatements = config.insertSpaceAfterKeywordsInControlFlowStatements; } @@ -71,18 +69,33 @@ export default function makeFormatCodeOptions(fileName: string, opts: Options, f if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis === "boolean") { formatSettings.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis; } + if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces === "boolean") { + formatSettings.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces; + } if (typeof config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets === "boolean") { formatSettings.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets = config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets; } if (typeof config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces === "boolean") { formatSettings.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces = config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces; } + if (typeof config.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces === "boolean") { + formatSettings.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces = config.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces; + } + if (typeof config.insertSpaceAfterTypeAssertion === "boolean") { + formatSettings.insertSpaceAfterTypeAssertion = config.insertSpaceAfterTypeAssertion; + } + if (typeof config.insertSpaceBeforeFunctionParenthesis === "boolean") { + formatSettings.insertSpaceBeforeFunctionParenthesis = config.insertSpaceBeforeFunctionParenthesis; + } if (typeof config.placeOpenBraceOnNewLineForFunctions === "boolean") { formatSettings.placeOpenBraceOnNewLineForFunctions = config.placeOpenBraceOnNewLineForFunctions; } if (typeof config.placeOpenBraceOnNewLineForControlBlocks === "boolean") { formatSettings.placeOpenBraceOnNewLineForControlBlocks = config.placeOpenBraceOnNewLineForControlBlocks; } + if (typeof config.baseIndentSize === "number") { + formatSettings.baseIndentSize = config.baseIndentSize; + } if (typeof config.indentSize === "number") { formatSettings.indentSize = config.indentSize; } diff --git a/lib/provider/tslintjson.ts b/lib/provider/tslintjson.ts index 2f4052d..7a7fd78 100644 --- a/lib/provider/tslintjson.ts +++ b/lib/provider/tslintjson.ts @@ -71,6 +71,8 @@ export default function makeFormatCodeOptions(fileName: string, opts: Options, f formatSettings.insertSpaceAfterSemicolonInForStatements = true; } else if (value === "check-type") { // none? + } else if (value === "check-typecast") { + formatSettings.insertSpaceAfterTypeAssertion = true; } } } diff --git a/lib/provider/vscodesettings.ts b/lib/provider/vscodesettings.ts index 44f2e6d..e0a7b35 100644 --- a/lib/provider/vscodesettings.ts +++ b/lib/provider/vscodesettings.ts @@ -19,6 +19,10 @@ interface VSCodeSettings { "typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": boolean; "typescript.format.placeOpenBraceOnNewLineForFunctions": boolean; "typescript.format.placeOpenBraceOnNewLineForControlBlocks": boolean; + + // NOTE https://github.com/Microsoft/vscode/issues/10296 + // baseIndentSize, insertSpaceAfterConstructor, insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces + // insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces, insertSpaceAfterTypeAssertion, insertSpaceBeforeFunctionParenthesis } export default function makeFormatCodeOptions(fileName: string, opts: Options, formatSettings: ts.FormatCodeSettings): ts.FormatCodeSettings { diff --git a/lib/utils.ts b/lib/utils.ts index e17ce47..865f2fe 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -6,6 +6,7 @@ import * as path from "path"; export function createDefaultFormatCodeSettings(): ts.FormatCodeSettings { return { + baseIndentSize: 0, indentSize: 4, tabSize: 4, indentStyle: ts.IndentStyle.Smart, @@ -14,11 +15,16 @@ export function createDefaultFormatCodeSettings(): ts.FormatCodeSettings { insertSpaceAfterCommaDelimiter: true, insertSpaceAfterSemicolonInForStatements: true, insertSpaceBeforeAndAfterBinaryOperators: true, + insertSpaceAfterConstructor: false, insertSpaceAfterKeywordsInControlFlowStatements: true, insertSpaceAfterFunctionKeywordForAnonymousFunctions: false, insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false, insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false, + insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true, insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false, + insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: false, + insertSpaceAfterTypeAssertion: false, + insertSpaceBeforeFunctionParenthesis: false, placeOpenBraceOnNewLineForFunctions: false, placeOpenBraceOnNewLineForControlBlocks: false, }; diff --git a/test/expected/default/main.json b/test/expected/default/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/default/main.json +++ b/test/expected/default/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/editorconfig/a/main.json b/test/expected/editorconfig/a/main.json index 29c9f5e..759fae7 100644 --- a/test/expected/editorconfig/a/main.json +++ b/test/expected/editorconfig/a/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/editorconfig/insert_final_newline/main.json b/test/expected/editorconfig/insert_final_newline/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/editorconfig/insert_final_newline/main.json +++ b/test/expected/editorconfig/insert_final_newline/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/editorconfig/newline-cr/main.json b/test/expected/editorconfig/newline-cr/main.json index 87d938f..f393ee7 100644 --- a/test/expected/editorconfig/newline-cr/main.json +++ b/test/expected/editorconfig/newline-cr/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/editorconfig/newline-crlf/main.json b/test/expected/editorconfig/newline-crlf/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/editorconfig/newline-crlf/main.json +++ b/test/expected/editorconfig/newline-crlf/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/editorconfig/newline-lf/main.json b/test/expected/editorconfig/newline-lf/main.json index 9734eee..de4a7bf 100644 --- a/test/expected/editorconfig/newline-lf/main.json +++ b/test/expected/editorconfig/newline-lf/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/editorconfig/tab/main.json b/test/expected/editorconfig/tab/main.json index 4eafe49..135f3c1 100644 --- a/test/expected/editorconfig/tab/main.json +++ b/test/expected/editorconfig/tab/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/schemats/main.json b/test/expected/schemats/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/schemats/main.json +++ b/test/expected/schemats/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/specified-config/tsconfig/main.json b/test/expected/specified-config/tsconfig/main.json index 9734eee..de4a7bf 100644 --- a/test/expected/specified-config/tsconfig/main.json +++ b/test/expected/specified-config/tsconfig/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/specified-config/tsfmt/main.json b/test/expected/specified-config/tsfmt/main.json index beb6aaa..da8ec1a 100644 --- a/test/expected/specified-config/tsfmt/main.json +++ b/test/expected/specified-config/tsfmt/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": true, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": true, "placeOpenBraceOnNewLineForControlBlocks": true } \ No newline at end of file diff --git a/test/expected/specified-config/tslint/main.json b/test/expected/specified-config/tslint/main.json index 4eafe49..135f3c1 100644 --- a/test/expected/specified-config/tslint/main.json +++ b/test/expected/specified-config/tslint/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsc-version/decorators/main.json b/test/expected/tsc-version/decorators/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tsc-version/decorators/main.json +++ b/test/expected/tsc-version/decorators/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsconfig/a/main.json b/test/expected/tsconfig/a/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tsconfig/a/main.json +++ b/test/expected/tsconfig/a/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsconfig/crlf/main.json b/test/expected/tsconfig/crlf/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tsconfig/crlf/main.json +++ b/test/expected/tsconfig/crlf/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsconfig/extends/main.json b/test/expected/tsconfig/extends/main.json index 9734eee..de4a7bf 100644 --- a/test/expected/tsconfig/extends/main.json +++ b/test/expected/tsconfig/extends/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsconfig/lf/main.json b/test/expected/tsconfig/lf/main.json index 9734eee..de4a7bf 100644 --- a/test/expected/tsconfig/lf/main.json +++ b/test/expected/tsconfig/lf/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsfmt/a/main.ts b/test/expected/tsfmt/a/main.ts deleted file mode 100644 index 86b6bf8..0000000 --- a/test/expected/tsfmt/a/main.ts +++ /dev/null @@ -1,5 +0,0 @@ -class Sample { - hello(word= "world") { return "Hello, " + word; } -} - -var s = new Sample(); diff --git a/test/expected/tsfmt/b/main.json b/test/expected/tsfmt/b/main.json index 63871a9..936079a 100644 --- a/test/expected/tsfmt/b/main.json +++ b/test/expected/tsfmt/b/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 8, "tabSize": 8, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": false, "insertSpaceAfterSemicolonInForStatements": false, "insertSpaceBeforeAndAfterBinaryOperators": false, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": false, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": true, "placeOpenBraceOnNewLineForControlBlocks": true } \ No newline at end of file diff --git a/test/expected/tsfmt/c/main.json b/test/expected/tsfmt/c/main.json index 106020e..f9922b9 100644 --- a/test/expected/tsfmt/c/main.json +++ b/test/expected/tsfmt/c/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 0, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": false, "insertSpaceAfterSemicolonInForStatements": false, "insertSpaceBeforeAndAfterBinaryOperators": false, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": false, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": true, "placeOpenBraceOnNewLineForControlBlocks": true } \ No newline at end of file diff --git a/test/expected/tsfmt/d/main.json b/test/expected/tsfmt/d/main.json index 908a5e4..ed58d5e 100644 --- a/test/expected/tsfmt/d/main.json +++ b/test/expected/tsfmt/d/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsfmt/e/main.json b/test/expected/tsfmt/e/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tsfmt/e/main.json +++ b/test/expected/tsfmt/e/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tsfmt/f/main.json b/test/expected/tsfmt/f/main.json new file mode 100644 index 0000000..84de128 --- /dev/null +++ b/test/expected/tsfmt/f/main.json @@ -0,0 +1,23 @@ +{ + "baseIndentSize": 0, + "indentSize": 4, + "tabSize": 4, + "indentStyle": 2, + "newLineCharacter": "\r\n", + "convertTabsToSpaces": true, + "insertSpaceAfterCommaDelimiter": true, + "insertSpaceAfterSemicolonInForStatements": true, + "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": true, + "insertSpaceAfterKeywordsInControlFlowStatements": true, + "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": true, + "insertSpaceBeforeFunctionParenthesis": true, + "placeOpenBraceOnNewLineForFunctions": false, + "placeOpenBraceOnNewLineForControlBlocks": false +} \ No newline at end of file diff --git a/test/expected/tsfmt/f/main.ts b/test/expected/tsfmt/f/main.ts new file mode 100644 index 0000000..171aa4b --- /dev/null +++ b/test/expected/tsfmt/f/main.ts @@ -0,0 +1,11 @@ +class Sample { + constructor () {} +} + +if (true) {} +if (true) {console.log("test");} + +let a: string | null = null as any; +let b: string | null = null; + +function() {} diff --git a/test/expected/tsfmt/g/main.json b/test/expected/tsfmt/g/main.json new file mode 100644 index 0000000..cc5cc9c --- /dev/null +++ b/test/expected/tsfmt/g/main.json @@ -0,0 +1,23 @@ +{ + "baseIndentSize": 2, + "indentSize": 4, + "tabSize": 4, + "indentStyle": 2, + "newLineCharacter": "\r\n", + "convertTabsToSpaces": true, + "insertSpaceAfterCommaDelimiter": true, + "insertSpaceAfterSemicolonInForStatements": true, + "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, + "insertSpaceAfterKeywordsInControlFlowStatements": true, + "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, + "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, + "placeOpenBraceOnNewLineForFunctions": false, + "placeOpenBraceOnNewLineForControlBlocks": false +} \ No newline at end of file diff --git a/test/expected/tsfmt/g/main.ts b/test/expected/tsfmt/g/main.ts new file mode 100644 index 0000000..80b9c95 --- /dev/null +++ b/test/expected/tsfmt/g/main.ts @@ -0,0 +1,3 @@ + function hello(name: string) { + let str = `Hi! ${name}`; + } diff --git a/test/expected/tsfmt/h/main.json b/test/expected/tsfmt/h/main.json new file mode 100644 index 0000000..eb8d441 --- /dev/null +++ b/test/expected/tsfmt/h/main.json @@ -0,0 +1,23 @@ +{ + "baseIndentSize": 0, + "indentSize": 4, + "tabSize": 4, + "indentStyle": 2, + "newLineCharacter": "\r\n", + "convertTabsToSpaces": true, + "insertSpaceAfterCommaDelimiter": true, + "insertSpaceAfterSemicolonInForStatements": true, + "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, + "insertSpaceAfterKeywordsInControlFlowStatements": true, + "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, + "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": true, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, + "placeOpenBraceOnNewLineForFunctions": false, + "placeOpenBraceOnNewLineForControlBlocks": false +} \ No newline at end of file diff --git a/test/expected/tsfmt/h/main.tsx b/test/expected/tsfmt/h/main.tsx new file mode 100644 index 0000000..620bdb7 --- /dev/null +++ b/test/expected/tsfmt/h/main.tsx @@ -0,0 +1,8 @@ +class MyComponent { + props: { + foo?: string; + } +} + +let str = "str"; +; diff --git a/test/expected/tslint/a/main.json b/test/expected/tslint/a/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tslint/a/main.json +++ b/test/expected/tslint/a/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/b/main.json b/test/expected/tslint/b/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tslint/b/main.json +++ b/test/expected/tslint/b/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/indent-tabs/main.json b/test/expected/tslint/indent-tabs/main.json index 4eafe49..135f3c1 100644 --- a/test/expected/tslint/indent-tabs/main.json +++ b/test/expected/tslint/indent-tabs/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/no-consecutive-blank-lines/main.json b/test/expected/tslint/no-consecutive-blank-lines/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tslint/no-consecutive-blank-lines/main.json +++ b/test/expected/tslint/no-consecutive-blank-lines/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/no-trailing-whitespace/main.json b/test/expected/tslint/no-trailing-whitespace/main.json index e3f0dcd..8208cc5 100644 --- a/test/expected/tslint/no-trailing-whitespace/main.json +++ b/test/expected/tslint/no-trailing-whitespace/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/whitespace-check-branch/main.json b/test/expected/tslint/whitespace-check-branch/main.json index 5833220..1095add 100644 --- a/test/expected/tslint/whitespace-check-branch/main.json +++ b/test/expected/tslint/whitespace-check-branch/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": false, "insertSpaceAfterSemicolonInForStatements": false, "insertSpaceBeforeAndAfterBinaryOperators": false, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/whitespace-check-operator/main.json b/test/expected/tslint/whitespace-check-operator/main.json index a19e0cb..ca1ca84 100644 --- a/test/expected/tslint/whitespace-check-operator/main.json +++ b/test/expected/tslint/whitespace-check-operator/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": false, "insertSpaceAfterSemicolonInForStatements": false, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": false, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/whitespace-check-separator/main.json b/test/expected/tslint/whitespace-check-separator/main.json index 2e65b83..47317ab 100644 --- a/test/expected/tslint/whitespace-check-separator/main.json +++ b/test/expected/tslint/whitespace-check-separator/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": false, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": false, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/tslint/whitespace-check-typecast/main.json b/test/expected/tslint/whitespace-check-typecast/main.json index c9e9cf2..cdc94ac 100644 --- a/test/expected/tslint/whitespace-check-typecast/main.json +++ b/test/expected/tslint/whitespace-check-typecast/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,11 +8,16 @@ "insertSpaceAfterCommaDelimiter": false, "insertSpaceAfterSemicolonInForStatements": false, "insertSpaceBeforeAndAfterBinaryOperators": false, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": false, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": true, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/expected/vscode/a/main.json b/test/expected/vscode/a/main.json index 4bfcfde..eb6205b 100644 --- a/test/expected/vscode/a/main.json +++ b/test/expected/vscode/a/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,12 +8,16 @@ "insertSpaceAfterCommaDelimiter": true, "insertSpaceAfterSemicolonInForStatements": true, "insertSpaceBeforeAndAfterBinaryOperators": true, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": true, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": true, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": true, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": true, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": true, - "placeOpenBraceOnNewLineForControlBlocks": true, - "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": true + "placeOpenBraceOnNewLineForControlBlocks": true } \ No newline at end of file diff --git a/test/expected/vscode/b/main.json b/test/expected/vscode/b/main.json index f335249..222a64b 100644 --- a/test/expected/vscode/b/main.json +++ b/test/expected/vscode/b/main.json @@ -1,4 +1,5 @@ { + "baseIndentSize": 0, "indentSize": 4, "tabSize": 4, "indentStyle": 2, @@ -7,12 +8,16 @@ "insertSpaceAfterCommaDelimiter": false, "insertSpaceAfterSemicolonInForStatements": false, "insertSpaceBeforeAndAfterBinaryOperators": false, + "insertSpaceAfterConstructor": false, "insertSpaceAfterKeywordsInControlFlowStatements": false, "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false, "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true, "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false, + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false, + "insertSpaceAfterTypeAssertion": false, + "insertSpaceBeforeFunctionParenthesis": false, "placeOpenBraceOnNewLineForFunctions": false, - "placeOpenBraceOnNewLineForControlBlocks": false, - "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false + "placeOpenBraceOnNewLineForControlBlocks": false } \ No newline at end of file diff --git a/test/fixture/tsfmt/f/main.ts b/test/fixture/tsfmt/f/main.ts new file mode 100644 index 0000000..a05704b --- /dev/null +++ b/test/fixture/tsfmt/f/main.ts @@ -0,0 +1,11 @@ +class Sample{ +constructor(){} +} + +if(true){} +if(true){console.log("test");} + +let a:string|null=null as any; +let b:string|null=null; + +function(){} diff --git a/test/fixture/tsfmt/f/tsfmt.json b/test/fixture/tsfmt/f/tsfmt.json new file mode 100644 index 0000000..21ffa75 --- /dev/null +++ b/test/fixture/tsfmt/f/tsfmt.json @@ -0,0 +1,6 @@ +{ + "insertSpaceAfterConstructor": true, + "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": false, + "insertSpaceAfterTypeAssertion": true, + "insertSpaceBeforeFunctionParenthesis": true +} diff --git a/test/fixture/tsfmt/g/main.ts b/test/fixture/tsfmt/g/main.ts new file mode 100644 index 0000000..9e70001 --- /dev/null +++ b/test/fixture/tsfmt/g/main.ts @@ -0,0 +1,3 @@ +function hello(name: string) { +let str = `Hi! ${name}`; +} diff --git a/test/fixture/tsfmt/g/tsfmt.json b/test/fixture/tsfmt/g/tsfmt.json new file mode 100644 index 0000000..7b644b6 --- /dev/null +++ b/test/fixture/tsfmt/g/tsfmt.json @@ -0,0 +1,3 @@ +{ + "baseIndentSize": 2 +} diff --git a/test/fixture/tsfmt/h/main.tsx b/test/fixture/tsfmt/h/main.tsx new file mode 100644 index 0000000..5ba5484 --- /dev/null +++ b/test/fixture/tsfmt/h/main.tsx @@ -0,0 +1,8 @@ +class MyComponent { + props: { + foo?: string; + } +} + +let str = "str"; +; diff --git a/test/fixture/tsfmt/h/tsfmt.json b/test/fixture/tsfmt/h/tsfmt.json new file mode 100644 index 0000000..84f865c --- /dev/null +++ b/test/fixture/tsfmt/h/tsfmt.json @@ -0,0 +1,3 @@ +{ + "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": true +} diff --git a/test/indexSpec.ts b/test/indexSpec.ts index 886f9c1..131419f 100644 --- a/test/indexSpec.ts +++ b/test/indexSpec.ts @@ -92,7 +92,7 @@ describe("tsfmt test", () => { describe("processFiles function", () => { let fileNames = collectFileName(fixtureDir); fileNames - .filter(fileName => /\.ts$/.test(fileName)) + .filter(fileName => /\.tsx?$/.test(fileName)) .forEach(fileName => { let ignoreList = [ "./test/fixture/editorconfig/space/main.ts", // TypeScript ignore indentSize: 8 @@ -141,7 +141,7 @@ describe("tsfmt test", () => { let expected = fs.readFileSync(expectedTsFileName, "utf-8"); assert(expected === result.dest); - let expectedSettingsFileName = expectedTsFileName.replace(/\.ts$/, ".json"); + let expectedSettingsFileName = expectedTsFileName.replace(/\.tsx?$/, ".json"); if (!fs.existsSync(expectedSettingsFileName)) { fs.writeFileSync(expectedSettingsFileName, JSON.stringify(result.settings, null, 2));