From def08ee9d09849f5a68d8154cf4f0afddec96a77 Mon Sep 17 00:00:00 2001 From: "Raghu Shantha [MSFT]" Date: Wed, 16 Dec 2015 12:22:42 -0800 Subject: [PATCH 1/3] Rename Configurations to Settings, update binplace logic --- Engine/ScriptAnalyzerEngine.csproj | 9 +++++++-- Engine/{Configurations => Settings}/CmdletDesign.psd1 | 0 Engine/{Configurations => Settings}/DSC.psd1 | 0 Engine/{Configurations => Settings}/ScriptFunctions.psd1 | 0 Engine/{Configurations => Settings}/ScriptSecurity.psd1 | 0 Engine/{Configurations => Settings}/ScriptingStyle.psd1 | 0 6 files changed, 7 insertions(+), 2 deletions(-) rename Engine/{Configurations => Settings}/CmdletDesign.psd1 (100%) rename Engine/{Configurations => Settings}/DSC.psd1 (100%) rename Engine/{Configurations => Settings}/ScriptFunctions.psd1 (100%) rename Engine/{Configurations => Settings}/ScriptSecurity.psd1 (100%) rename Engine/{Configurations => Settings}/ScriptingStyle.psd1 (100%) diff --git a/Engine/ScriptAnalyzerEngine.csproj b/Engine/ScriptAnalyzerEngine.csproj index 46c607751..cf73f3044 100644 --- a/Engine/ScriptAnalyzerEngine.csproj +++ b/Engine/ScriptAnalyzerEngine.csproj @@ -86,6 +86,11 @@ + + + + + @@ -105,8 +110,8 @@ if not exist "$(SolutionDir)$(SolutionName)" mkdir "$(SolutionDir)$(SolutionName)" copy /y "$(ProjectDir)*.ps1xml" "$(SolutionDir)$(SolutionName)" copy /y "$(ProjectDir)*.psd1" "$(SolutionDir)$(SolutionName)" - if not exist "$(SolutionDir)$(SolutionName)\Configurations" mkdir "$(SolutionDir)$(SolutionName)\Configurations" - copy /y "$(ProjectDir)Configurations\*.psd1" "$(SolutionDir)$(SolutionName)\Configurations" + if not exist "$(SolutionDir)$(SolutionName)\Settings" mkdir "$(SolutionDir)$(SolutionName)\Settings" + copy /y "$(ProjectDir)Settings\*.psd1" "$(SolutionDir)$(SolutionName)\Settings" copy /y "$(TargetPath)" "$(SolutionDir)$(SolutionName)" if not exist "$(SolutionDir)$(SolutionName)\en-US" mkdir "$(SolutionDir)$(SolutionName)\en-US" copy /y "$(ProjectDir)about_*.help.txt" "$(SolutionDir)$(SolutionName)\en-US" diff --git a/Engine/Configurations/CmdletDesign.psd1 b/Engine/Settings/CmdletDesign.psd1 similarity index 100% rename from Engine/Configurations/CmdletDesign.psd1 rename to Engine/Settings/CmdletDesign.psd1 diff --git a/Engine/Configurations/DSC.psd1 b/Engine/Settings/DSC.psd1 similarity index 100% rename from Engine/Configurations/DSC.psd1 rename to Engine/Settings/DSC.psd1 diff --git a/Engine/Configurations/ScriptFunctions.psd1 b/Engine/Settings/ScriptFunctions.psd1 similarity index 100% rename from Engine/Configurations/ScriptFunctions.psd1 rename to Engine/Settings/ScriptFunctions.psd1 diff --git a/Engine/Configurations/ScriptSecurity.psd1 b/Engine/Settings/ScriptSecurity.psd1 similarity index 100% rename from Engine/Configurations/ScriptSecurity.psd1 rename to Engine/Settings/ScriptSecurity.psd1 diff --git a/Engine/Configurations/ScriptingStyle.psd1 b/Engine/Settings/ScriptingStyle.psd1 similarity index 100% rename from Engine/Configurations/ScriptingStyle.psd1 rename to Engine/Settings/ScriptingStyle.psd1 From c14b5f940858055d048727cf90ce7ee4f311c752 Mon Sep 17 00:00:00 2001 From: Quoc Truong Date: Wed, 16 Dec 2015 12:23:39 -0800 Subject: [PATCH 2/3] Fix a bug where AvoidPositionalParameter is raised based on number of total arguments rather than positional arguments --- Engine/Helper.cs | 3 ++- Tests/Rules/AvoidPositionalParametersNoViolations.ps1 | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Engine/Helper.cs b/Engine/Helper.cs index 78e43dc2a..8fcae65f9 100644 --- a/Engine/Helper.cs +++ b/Engine/Helper.cs @@ -353,7 +353,8 @@ public bool PositionalParameterUsed(CommandAst cmdAst, bool moreThanThreePositio arguments += 1; } - if (moreThanThreePositional && arguments < 3) + // if we are only checking for 3 or more positional parameters, check that arguments < parameters + 3 + if (moreThanThreePositional && (arguments - parameters) < 3) { return false; } diff --git a/Tests/Rules/AvoidPositionalParametersNoViolations.ps1 b/Tests/Rules/AvoidPositionalParametersNoViolations.ps1 index 1c3841846..9a5cc7d75 100644 --- a/Tests/Rules/AvoidPositionalParametersNoViolations.ps1 +++ b/Tests/Rules/AvoidPositionalParametersNoViolations.ps1 @@ -20,4 +20,6 @@ Get-Content Test Get-ChildItem Tests Write-Output "I don't want to use positional parameters" Split-Path "RandomPath" -Leaf -Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan} \ No newline at end of file +Get-Process | ForEach-Object {Write-Host $_.name -foregroundcolor cyan} + +$srvc = Get-WmiObject Win32_Service -ComputerName $computername -Filter "name=""$service""" -Credential $credential \ No newline at end of file From 3485de599280f21798f798cf6a33e109c95c2d58 Mon Sep 17 00:00:00 2001 From: "Raghu Shantha [MSFT]" Date: Wed, 16 Dec 2015 12:31:14 -0800 Subject: [PATCH 3/3] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d2de4d679..2ecd05141 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,9 @@ Announcements ##### ISE Add-On for ScriptAnalyzer is available in PowerShell Gallery! (https://www.powershellgallery.com/packages/ISEScriptAnalyzerAddOn/) +##### Visual Studio Code now has PowerShell language support with ScriptAnalyzer integration +(http://blogs.msdn.com/b/powershell/archive/2015/11/17/announcing-windows-powershell-for-visual-studio-code-and-more.aspx) + ============= ##### ScriptAnalyzer community meeting schedule: