diff --git a/package.json b/package.json index 0bdbb511ef..bf27a5fa90 100644 --- a/package.json +++ b/package.json @@ -366,6 +366,11 @@ "type": "boolean", "default": true, "description": "There must be a whitespaces after a separator (',' and ';')." + }, + "powershell.codeFormatting.ignoreOneLineBlock": { + "type": "boolean", + "default": true, + "description": "Ignore blocks of code on one line. For example, if true, the braces in \"if (...) {...} else {...}\", will not be formatted." } } } diff --git a/src/features/DocumentFormatter.ts b/src/features/DocumentFormatter.ts index 04bfc35f9d..139ce34964 100644 --- a/src/features/DocumentFormatter.ts +++ b/src/features/DocumentFormatter.ts @@ -328,6 +328,11 @@ class PSDocumentFormattingEditProvider implements DocumentFormattingEditProvider case "PSPlaceOpenBrace": ruleSettings["OnSameLine"] = psSettings.codeFormatting.openBraceOnSameLine; ruleSettings["NewLineAfter"] = psSettings.codeFormatting.newLineAfterOpenBrace; + ruleSettings["IgnoreOneLineBlock"] = psSettings.codeFormatting.ignoreOneLineBlock; + break; + + case "PSPlaceCloseBrace": + ruleSettings["IgnoreOneLineBlock"] = psSettings.codeFormatting.ignoreOneLineBlock; break; case "PSUseConsistentIndentation": diff --git a/src/settings.ts b/src/settings.ts index 8950584025..7065887a55 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -13,6 +13,7 @@ export interface ICodeFormattingSettings { whitespaceBeforeOpenParen: boolean; whitespaceAroundOperator: boolean; whitespaceAfterSeparator: boolean; + ignoreOneLineBlock: boolean; } export interface IScriptAnalysisSettings { @@ -58,7 +59,8 @@ export function load(myPluginId: string): ISettings { whitespaceBeforeOpenBrace: true, whitespaceBeforeOpenParen: true, whitespaceAroundOperator: true, - whitespaceAfterSeparator: true + whitespaceAfterSeparator: true, + ignoreOneLineBlock: true }; return {