Skip to content

Commit 9c91f63

Browse files
authored
Merge branch 'main' into addCLMRules
2 parents 02598ac + 6883618 commit 9c91f63

14 files changed

+1714
-8
lines changed

Directory.Packages.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
1010
<PackageVersion Include="Pluralize.NET" Version="1.0.2" />
1111
<PackageVersion Include="PowerShellStandard.Library" Version="5.1.1" />
12-
<!-- Please update minimumPowerShellCoreVersion in PSScriptAnalyzer.psm1 when updating below SMA version for better user-facing error message -->
13-
<PackageVersion Include="System.Management.Automation" Version="7.4.13" />
12+
<!-- Please update minimumPowerShellCoreVersion in PSScriptAnalyzer.psm1 when updating below SMA major or minor version (but not patch) for better user-facing error message -->
13+
<PackageVersion Include="System.Management.Automation" Version="7.4.14" />
1414
<PackageVersion Include="System.Reflection.TypeExtensions" Version="4.7.0" />
1515
</ItemGroup>
1616
</Project>

Engine/PSScriptAnalyzer.psm1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ $PSModuleRoot = $PSModule.ModuleBase
99

1010
# Import the appropriate nested binary module based on the current PowerShell version
1111
$binaryModuleRoot = $PSModuleRoot
12-
[Version] $minimumPowerShellCoreVersion = '7.4.13'
12+
# This should be the equivalent of 7.4.x i.e. latest major/minor supported but lowest patch.
13+
[Version] $minimumPowerShellCoreVersion = '7.4.6'
1314
if ($PSVersionTable.PSVersion.Major -ge 6) {
1415
$binaryModuleRoot = Join-Path -Path $PSModuleRoot -ChildPath "PSv$($PSVersionTable.PSVersion.Major)"
1516
# Minimum PowerShell Core version given by PowerShell Core support itself and

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,11 @@ documentation for the latest release is published on on learn.microsoft.com.
6666
## Installation
6767

6868
To install **PSScriptAnalyzer** from the PowerShell Gallery, see
69-
[Installing PSScriptAnalyzer](https://learn.microsoft.com/powershell/utility-modules/psscriptanalyzer/overview#installing-psscriptanalyzer).
69+
[Installing PSScriptAnalyzer](https://learn.microsoft.com/powershell/utility-modules/psscriptanalyzer/overview#installing-psscriptanalyzer) or simply open PowerShell in a Terminal and run:
70+
71+
```powershell
72+
Install-Module -Name PSScriptAnalyzer
73+
```
7074

7175
To install **PSScriptAnalyzer** from source code:
7276

Rules/Strings.resx

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1224,6 +1224,33 @@
12241224
<data name="AvoidUsingAllowUnencryptedAuthenticationName" xml:space="preserve">
12251225
<value>AvoidUsingAllowUnencryptedAuthentication</value>
12261226
</data>
1227+
<data name="UseConsistentParameterSetNameCommonName" xml:space="preserve">
1228+
<value>Use Consistent Parameter Set Name</value>
1229+
</data>
1230+
<data name="UseConsistentParameterSetNameDescription" xml:space="preserve">
1231+
<value>Parameter set names are case-sensitive in PowerShell. This rule checks for case mismatches between DefaultParameterSetName and ParameterSetName values, case mismatches between different ParameterSetName values, and missing DefaultParameterSetName when parameter sets are used.</value>
1232+
</data>
1233+
<data name="UseConsistentParameterSetNameMissingDefaultError" xml:space="preserve">
1234+
<value>Param block uses parameter sets but does not specify a DefaultParameterSetName. Consider adding DefaultParameterSetName to the CmdletBinding attribute.</value>
1235+
</data>
1236+
<data name="UseConsistentParameterSetNameCaseMismatchDefaultError" xml:space="preserve">
1237+
<value>DefaultParameterSetName '{0}' does not match the case of ParameterSetName '{1}'. Parameter set names are case-sensitive.</value>
1238+
</data>
1239+
<data name="UseConsistentParameterSetNameCaseMismatchParameterError" xml:space="preserve">
1240+
<value>ParameterSetName '{0}' does not match the case of '{1}'. Parameter set names are case-sensitive and should use consistent casing.</value>
1241+
</data>
1242+
<data name="UseConsistentParameterSetNameMultipleDeclarationsError" xml:space="preserve">
1243+
<value>Parameter '{0}' is declared in parameter-set '{1}' multiple times.</value>
1244+
</data>
1245+
<data name="UseConsistentParameterSetNameNewLineError" xml:space="preserve">
1246+
<value>Parameter set names should not contain new lines.</value>
1247+
</data>
1248+
<data name="UseConsistentParameterSetNameCaseMismatchSuggestedCorrectionDescription" xml:space="preserve">
1249+
<value>Rename ParameterSet '{0}' to '{1}'.</value>
1250+
</data>
1251+
<data name="UseConsistentParameterSetNameName" xml:space="preserve">
1252+
<value>UseConsistentParameterSetName</value>
1253+
</data>
12271254
<data name="AvoidReservedWordsAsFunctionNamesCommonName" xml:space="preserve">
12281255
<value>Avoid reserved words as function names</value>
12291256
</data>
@@ -1286,6 +1313,17 @@
12861313
</data>
12871314
<data name="UseConstrainedLanguageModePSCustomObjectError" xml:space="preserve">
12881315
<value>[PSCustomObject]@{{}} syntax is not permitted in Constrained Language Mode. Use New-Object PSObject -Property @{{}} or plain hashtables instead.</value>
1316+
<data name="UseSingleValueFromPipelineParameterCommonName" xml:space="preserve">
1317+
<value>Use a single ValueFromPipeline parameter per parameter set</value>
1318+
</data>
1319+
<data name="UseSingleValueFromPipelineParameterDescription" xml:space="preserve">
1320+
<value>Use at most a single ValueFromPipeline parameter per parameter set to avoid undefined or unexpected behaviour.</value>
1321+
</data>
1322+
<data name="UseSingleValueFromPipelineParameterError" xml:space="preserve">
1323+
<value>Multiple parameters ({0}) in parameter set '{1}' are marked as ValueFromPipeline. Only one parameter per parameter set should accept pipeline input.</value>
1324+
</data>
1325+
<data name="UseSingleValueFromPipelineParameterName" xml:space="preserve">
1326+
<value>UseSingleValueFromPipelineParameter</value>
12891327
</data>
12901328
<data name="UseConsistentParametersKindCommonName" xml:space="preserve">
12911329
<value>Use correct function parameters definition kind.</value>
@@ -1302,4 +1340,4 @@
13021340
<data name="UseConsistentParametersKindParamBlockError" xml:space="preserve">
13031341
<value>Use inline parameters definition instead of param() block in function body.</value>
13041342
</data>
1305-
</root>
1343+
</root>

0 commit comments

Comments
 (0)