From 501528baddd2e7f7591a381a53d54f29460d6526 Mon Sep 17 00:00:00 2001 From: "Christoph Bergmeister [MVP]" Date: Tue, 10 Sep 2019 04:07:42 +0100 Subject: [PATCH 1/2] Add AutoCorrectAliases setting (PR to be made in VS-Code repo as well) to add support for optionally correcting aliases as well (added in PSSA 1.18.2) (#1021) --- .../Server/LanguageServerSettings.cs | 74 +++++++++++-------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs b/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs index cee52d904..75e94f8a2 100644 --- a/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs +++ b/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs @@ -168,6 +168,7 @@ public CodeFormattingSettings(CodeFormattingSettings codeFormattingSettings) } } + public bool AutoCorrectAliases { get; set; } public CodeFormattingPreset Preset { get; set; } public bool OpenBraceOnSameLine { get; set; } public bool NewLineAfterOpenBrace { get; set; } @@ -223,6 +224,44 @@ public Hashtable GetPSSASettingsHashtable( private Hashtable GetCustomPSSASettingsHashtable(int tabSize, bool insertSpaces) { + var ruleConfigurations = new Hashtable { + {"PSPlaceOpenBrace", new Hashtable { + {"Enable", true}, + {"OnSameLine", OpenBraceOnSameLine}, + {"NewLineAfter", NewLineAfterOpenBrace}, + {"IgnoreOneLineBlock", IgnoreOneLineBlock} + }}, + {"PSPlaceCloseBrace", new Hashtable { + {"Enable", true}, + {"NewLineAfter", NewLineAfterCloseBrace}, + {"IgnoreOneLineBlock", IgnoreOneLineBlock} + }}, + {"PSUseConsistentIndentation", new Hashtable { + {"Enable", true}, + {"IndentationSize", tabSize}, + {"Kind", insertSpaces ? "space" : "tab"} + }}, + {"PSUseConsistentWhitespace", new Hashtable { + {"Enable", true}, + {"CheckOpenBrace", WhitespaceBeforeOpenBrace}, + {"CheckOpenParen", WhitespaceBeforeOpenParen}, + {"CheckOperator", WhitespaceAroundOperator}, + {"CheckSeparator", WhitespaceAfterSeparator} + }}, + {"PSAlignAssignmentStatement", new Hashtable { + {"Enable", true}, + {"CheckHashtable", AlignPropertyValuePairs} + }}, + {"PSUseCorrectCasing", new Hashtable { + {"Enable", UseCorrectCasing} + }}, + }; + + if (AutoCorrectAliases) + { + ruleConfigurations.Add("PSAvoidUsingCmdletAliases", new Hashtable()); + } + return new Hashtable { {"IncludeRules", new string[] { @@ -230,37 +269,12 @@ private Hashtable GetCustomPSSASettingsHashtable(int tabSize, bool insertSpaces) "PSPlaceOpenBrace", "PSUseConsistentWhitespace", "PSUseConsistentIndentation", - "PSAlignAssignmentStatement" + "PSAlignAssignmentStatement", + "PSAvoidUsingCmdletAliases", }}, - {"Rules", new Hashtable { - {"PSPlaceOpenBrace", new Hashtable { - {"Enable", true}, - {"OnSameLine", OpenBraceOnSameLine}, - {"NewLineAfter", NewLineAfterOpenBrace}, - {"IgnoreOneLineBlock", IgnoreOneLineBlock} - }}, - {"PSPlaceCloseBrace", new Hashtable { - {"Enable", true}, - {"NewLineAfter", NewLineAfterCloseBrace}, - {"IgnoreOneLineBlock", IgnoreOneLineBlock} - }}, - {"PSUseConsistentIndentation", new Hashtable { - {"Enable", true}, - {"IndentationSize", tabSize}, - {"Kind", insertSpaces ? "space" : "tab"} - }}, - {"PSUseConsistentWhitespace", new Hashtable { - {"Enable", true}, - {"CheckOpenBrace", WhitespaceBeforeOpenBrace}, - {"CheckOpenParen", WhitespaceBeforeOpenParen}, - {"CheckOperator", WhitespaceAroundOperator}, - {"CheckSeparator", WhitespaceAfterSeparator} - }}, - {"PSAlignAssignmentStatement", new Hashtable { - {"Enable", true}, - {"CheckHashtable", AlignPropertyValuePairs} - }}, - }} + { + "Rules", ruleConfigurations + }, }; } } From 238bfefc88d90690e1ae6592f8c43dc3bf512b1c Mon Sep 17 00:00:00 2001 From: Robert Holt Date: Tue, 10 Sep 2019 07:57:52 -0700 Subject: [PATCH 2/2] Update PSSA version --- modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.json b/modules.json index e4555e5de..8777ca207 100644 --- a/modules.json +++ b/modules.json @@ -1,6 +1,6 @@ { "PSScriptAnalyzer":{ - "MinimumVersion":"1.6", + "MinimumVersion":"1.18.2", "MaximumVersion":"1.99", "AllowPrerelease":false },