diff --git a/package.json b/package.json index ab805873be..c29dbb81dc 100644 --- a/package.json +++ b/package.json @@ -408,6 +408,11 @@ "default": true, "description": "Does not reformat one-line code blocks, such as \"if (...) {...} else {...}\"." }, + "powershell.codeFormatting.alignPropertyValuePairs": { + "type": "boolean", + "default": true, + "description": "Align assignment statements in a hashtable or a DSC Configuration." + }, "powershell.integratedConsole.showOnStartup": { "type": "boolean", "default": true, diff --git a/src/features/DocumentFormatter.ts b/src/features/DocumentFormatter.ts index 17e4628796..18855ceb95 100644 --- a/src/features/DocumentFormatter.ts +++ b/src/features/DocumentFormatter.ts @@ -174,7 +174,8 @@ class PSDocumentFormattingEditProvider implements "PSPlaceCloseBrace", "PSPlaceOpenBrace", "PSUseConsistentWhitespace", - "PSUseConsistentIndentation"]; + "PSUseConsistentIndentation", + "PSAlignAssignmentStatement"] // Allows edits to be undone and redone is a single step. // It is usefuld to have undo stops after every edit while debugging @@ -426,6 +427,10 @@ class PSDocumentFormattingEditProvider implements ruleSettings["CheckSeparator"] = psSettings.codeFormatting.whitespaceAfterSeparator; break; + case "PSAlignAssignmentStatement": + ruleSettings["CheckHashtable"] = psSettings.codeFormatting.alignPropertyValuePairs; + break; + default: break; } diff --git a/src/settings.ts b/src/settings.ts index 68501c5317..091cedc794 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -15,6 +15,7 @@ export interface ICodeFormattingSettings { whitespaceAroundOperator: boolean; whitespaceAfterSeparator: boolean; ignoreOneLineBlock: boolean; + alignPropertyValuePairs: boolean; } export interface IScriptAnalysisSettings { @@ -71,7 +72,8 @@ export function load(myPluginId: string): ISettings { whitespaceBeforeOpenParen: true, whitespaceAroundOperator: true, whitespaceAfterSeparator: true, - ignoreOneLineBlock: true + ignoreOneLineBlock: true, + alignPropertyValuePairs: true }; let defaultIntegratedConsoleSettings: IIntegratedConsoleSettings = {