diff --git a/extensions/typescript/package.json b/extensions/typescript/package.json index e9f9f98887a..c94700ecfd6 100644 --- a/extensions/typescript/package.json +++ b/extensions/typescript/package.json @@ -229,6 +229,11 @@ "default": false, "description": "%format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces%" }, + "typescript.format.insertSpaceAfterTypeAssertion": { + "type": "boolean", + "default": false, + "description": "%format.insertSpaceAfterTypeAssertion%" + }, "typescript.format.placeOpenBraceOnNewLineForFunctions": { "type": "boolean", "default": false, diff --git a/extensions/typescript/package.nls.json b/extensions/typescript/package.nls.json index 890ac8e8ef6..d23b9011527 100644 --- a/extensions/typescript/package.nls.json +++ b/extensions/typescript/package.nls.json @@ -23,6 +23,7 @@ "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": "Defines space handling after opening and before closing non empty braces. Requires TypeScript >= 2.3.0.", "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Defines space handling after opening and before closing template string braces. Requires TypeScript >= 2.0.6.", "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Defines space handling after opening and before closing JSX expression braces. Requires TypeScript >= 2.0.6.", + "format.insertSpaceAfterTypeAssertion": "Defines space handling after type assertions in TypeScript. Requires TypeScript >= 2.4.", "format.placeOpenBraceOnNewLineForFunctions": "Defines whether an open brace is put onto a new line for functions or not.", "format.placeOpenBraceOnNewLineForControlBlocks": "Defines whether an open brace is put onto a new line for control blocks or not.", "javascript.validate.enable": "Enable/disable JavaScript validation.", diff --git a/extensions/typescript/src/features/formattingProvider.ts b/extensions/typescript/src/features/formattingProvider.ts index 2687d317b2b..2554620ac65 100644 --- a/extensions/typescript/src/features/formattingProvider.ts +++ b/extensions/typescript/src/features/formattingProvider.ts @@ -21,6 +21,7 @@ interface Configuration { insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: boolean; insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: boolean; insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: boolean; + insertSpaceAfterTypeAssertion: boolean; insertSpaceBeforeFunctionParenthesis: boolean; placeOpenBraceOnNewLineForFunctions: boolean; placeOpenBraceOnNewLineForControlBlocks: boolean; @@ -39,6 +40,7 @@ namespace Configuration { export const insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces = 'insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces'; export const insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces = 'insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces'; export const insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces = 'insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces'; + export const insertSpaceAfterTypeAssertion = 'insertSpaceAfterTypeAssertion'; export const placeOpenBraceOnNewLineForFunctions = 'placeOpenBraceOnNewLineForFunctions'; export const placeOpenBraceOnNewLineForControlBlocks = 'placeOpenBraceOnNewLineForControlBlocks'; @@ -68,6 +70,7 @@ namespace Configuration { result.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces = true; result.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces = false; result.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces = false; + result.insertSpaceAfterTypeAssertion = false; result.placeOpenBraceOnNewLineForFunctions = false; result.placeOpenBraceOnNewLineForControlBlocks = false; return result; @@ -225,6 +228,7 @@ export default class TypeScriptFormattingProvider implements DocumentRangeFormat insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: this.config.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces, insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: this.config.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces, insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: this.config.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces, + insertSpaceAfterTypeAssertion: this.config.insertSpaceAfterTypeAssertion, placeOpenBraceOnNewLineForFunctions: this.config.placeOpenBraceOnNewLineForFunctions, placeOpenBraceOnNewLineForControlBlocks: this.config.placeOpenBraceOnNewLineForControlBlocks,