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 }, diff --git a/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs b/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs index 8cbf953b9..6106fb25c 100644 --- a/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs +++ b/src/PowerShellEditorServices.Protocol/Server/LanguageServerSettings.cs @@ -189,6 +189,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; } @@ -248,6 +249,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[] { @@ -255,43 +294,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}, - {"PipelineIndentation", PipelineIndentationStyle }, - {"Kind", insertSpaces ? "space" : "tab"} - }}, - {"PSUseConsistentWhitespace", new Hashtable { - {"Enable", true}, - {"CheckOpenBrace", WhitespaceBeforeOpenBrace}, - {"CheckOpenParen", WhitespaceBeforeOpenParen}, - {"CheckOperator", WhitespaceAroundOperator}, - {"CheckSeparator", WhitespaceAfterSeparator}, - {"CheckInnerBrace", WhitespaceInsideBrace}, - {"CheckPipe", WhitespaceAroundPipe}, - }}, - {"PSAlignAssignmentStatement", new Hashtable { - {"Enable", true}, - {"CheckHashtable", AlignPropertyValuePairs} - }}, - {"PSUseCorrectCasing", new Hashtable { - {"Enable", UseCorrectCasing} - }}, - }} + { + "Rules", ruleConfigurations + }, }; } }