July 28th, 2020

PSScriptAnalyzer 1.19.1

PSScriptAnalyzer 1.19.1 is now available on the PowerShell Gallery. This minor update fixes a few user-reported bugs and introduces a new rule (which is disabled by default) for avoiding using double quotes for constant strings. To install this version of the module, open any PowerShell console and run: Install-Module PSScriptAnalyzer -Force -Repository PSGallery

New Rule

AvoidUsingDoubleQuotesForConstantString (disabled by default)

Severity Level: Information

Rule Description

When the value of a string is constant (i.e. not being interpolated by injecting variables or expression into such as e.g. "$PID-$(hostname)"), then single quotes should be used to express the constant nature of the string. This is not only to make the intent clearer that the string is a constant and makes it easier to use some special characters such as e.g. $ within that string expression without the need to escape them. There are exceptions to that when double quoted strings are more readable though, e.g. when the string value itself has to contain a single quote (which would require a double single quotes to escape the character itself) or certain very special characters such as e.g. "\n" are already being escaped, the rule would not warn in this case as it is up to the author to decide on what is more readable in those cases.

Rule Example

Incorrect

$constantValue = "I Love PowerShell"

Correct

$constantValue = 'I Love PowerShell'

Bug Fixes

  • Fix bug that caused incorrect formatting in hashtables in the non-default setting PipelineIndentationStyle.None  (if you do use this setting we ask that users to try it out again  as the long term idea is to make it the default setting)
  • Fix ArgumentException when the same variable name is used in 2 different sessions
  • Fixed bugs with UseConsistentWhitespace
  • Fixes issue when CommandInfoParameters property throws due to runspace affinity problem of PowerShell engine
  • Fix token check with new lines
  • Fix CheckParameter bug when using interpolated string

For the full list of changes please refer to the change log.

What’s next for PSScriptAnalyzer

We are currently working on a major rearchitecture of PSScriptAnalyzer, we are calling this project PSScriptAnalyzer 2.0, and hope to have previews available fall 2020.

To understand the goals of the project and track our progress please refer to this roadmap. Within our GitHub repository we are using the issue tag “Consider-2.0” to track bugs and features that we are hoping to resolve in the release. As we get closer to releasing versions of this rearchitecture we will shift to a “Resolved-2.0” tag to mark issues that are expected to be resolved by the time PSScriptAnalyzer 2.0 becomes generally available.

Now is a great time to give us feedback around the priorities for improvements and features/use cases of the module as we are still in the early stages of development. If you use PSScriptAnalyzer to build PowerShell tools, we would especially love your feedback on our API design.

Feedback and Support

The best place to get support on issues you may encounter or to give feedback/feature requests is through our GitHub Repository.

Sydney Smith PowerShell Team

Category
PowerShell

Author

PM on the PowerShell team at Microsoft.

1 comment

Discussion is closed. Login to edit/delete existing comments.

  • John J. Kavanagh

    Well lookie there… I learned something new with that New Rule… thanks!