Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inaccurate PSScriptAnalyzer "Line has trailing whitespace" errors since PowerShell 1.8.0 extension #1036

Closed
stukey opened this issue Jul 12, 2018 · 1 comment

Comments

@stukey
Copy link

stukey commented Jul 12, 2018

I logged this in the PowerShell repo but they advised to log it here too. Not sure if it’s a PowerShell extension bug or the Script Analyszer.

Since the update to the PowerShell Extension 1.8.0 (and 1.8.1) I am seeing 100s of alerts about my scripts in the 'Problems' section of VSCode indicating "[PSScriptAnalyzer] Line has trailing whitespace (PSAvoidTrailingWhitespace)". This rule in the script analzyer seems to be extremely unreliable since it's highlighting many lines of code that do not have any trailing or leading spaces - mainly in code that is tab intended or where text strings span across multiple lines (word wrap enabled).

Also disabling this rule via the command palette, PowerShell: Select PsScriptAnalyzerRules doesn’t seem to stay disabled across restarts. Each time I restart VSCode the option is re-enabled.

Steps to reproduce

Create a .PS1 file in VSCode and enter the following text. The file is a .ps1 using Windows 1252 encoding and CRLF:

          [CmdletBinding()]
  Param(
        [ValidateNotNullOrEmpty()][Parameter(Mandatory=$True,Position=1)][string]$ExchangeGuid
  )

Expected behavior

No error should be reported for the above code because it does not contain trailing spaces.

Actual behavior

The analyzer indicates that the line with the closing parenthesis has trailing whitespace, but it does not. Specific error:
"[PSScriptAnalyzer] Line has trailing whitespace (PSAvoidTrailingWhitespace)"

The file is a .ps1 using Windows 1252 encoding and CRLF.

Environment data

> $PSVersionTable
5.1

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }

I dont have the module installed. This is an issue editing PowerShell scripts in VSCode with the latest version of the PowerShell extension (1.8.0 and 1.8.1)
@bergmeister
Copy link
Collaborator

bergmeister commented Jul 12, 2018

Duplicate of #1033
The rule is new in PSSA 1.17.1 and got enabled by default in the latest update of the vs code extension. The rule should probably not flag whitespace only lines by default. I am thinking the short term solution would be to not enable the rule in the extension by default for the moment, I opened a PR for that below. The problem that the extension does not persist the settings is a known problem with the extension tracked by issue PowerShell/vscode-powershell#823 but one could use PSSA setting files instead to persist the rule set.
Feel free to ask more questions if this was not clear enough as I only described it on a high level.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants