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

[ScriptAnalyzer Issue] Unexpected string with powershell.codeFormatting.whitespaceBetweenParameters enabled #5140

Open
6 tasks done
DarkLite1 opened this issue Feb 19, 2025 · 1 comment
Labels
Area-Script Analysis Issue-Bug A bug to squash. Pending: External This issue is not fixed here, it is fixed in a dependent repo such as PowerShell,PSScriptAnalyzer

Comments

@DarkLite1
Copy link

Prerequisites

  • I have written a descriptive issue title.
  • I have searched all open and closed issues to ensure it has not already been reported.
  • I have read the troubleshooting guide.
  • I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
  • I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
  • If this is a security issue, I have read the security issue reporting guidance.

Summary

When I enable the setting "powershell.codeFormatting.whitespaceBetweenParameters", a part of my code is deleted and replaced with the string "Co".

PowerShell Version

Name                           Value
----                           -----
PSVersion                      7.4.6
PSEdition                      Core
GitCommitId                    7.4.6
OS                             Microsoft Windows 10.0.20348
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Name             : Visual Studio Code Host
Version          : 2025.0.0
InstanceId       : 322bff36-44ec-4947-8657-cb94383fe5d6
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

Visual Studio Code Version

1.96.4
cd4ee3b1c348a13bafd8f9ad8060705f6d4b9cba
x64

Extension Version

ms-vscode.powershell@2025.0.0

Steps to Reproduce

Enable the setting "powershell.codeFormatting.whitespaceBetweenParameters":

workspace.json

{
	"folders": [
		{ "path": "T:/Test/PowerShell" },
		{ "path": "C:/Program Files/PowerShell/Modules" }
	],
	"settings": {
		"powershell.cwd": "PowerShell",
		"editor.wordWrap": "wordWrapColumn",
		"powershell.codeFormatting.autoCorrectAliases": true,
		"powershell.codeFormatting.avoidSemicolonsAsLineTerminators": true,
		"powershell.codeFormatting.pipelineIndentationStyle": "IncreaseIndentationForFirstPipeline",
		"powershell.codeFormatting.trimWhitespaceAroundPipe": true,
		"powershell.codeFormatting.useConstantStrings": true,
		"powershell.codeFormatting.useCorrectCasing": true,
		"powershell.codeFormatting.whitespaceBetweenParameters": true # ENABLE TO SEE IT
	}
}

Testie.ps1

Describe 'describe something' {
    Context 'do something in context' {
        It 'to the test' {
            # test something
        }
    }  -Tag test # double space before '-Tag'
}

Now press "SHIFT + ALT + F" and see the new broken code:

Describe 'describe something' {
    Co-Tag test # double space before '-Tag'
}

When the setting "powershell.codeFormatting.whitespaceBetweenParameters" is false, the issue isn't happening.

Visuals

From:

Image

To:

Image

Logs

No response

@DarkLite1 DarkLite1 added Issue-Bug A bug to squash. Needs: Triage Maintainer attention needed! labels Feb 19, 2025
@DarkLite1 DarkLite1 changed the title Shift+Alt+F inserts unexpected string with powershell.codeFormatting.whitespaceBetweenParameters enabled/disabled" Shift+Alt+F inserts unexpected string with powershell.codeFormatting.whitespaceBetweenParameters enabled" Feb 19, 2025
@DarkLite1 DarkLite1 changed the title Shift+Alt+F inserts unexpected string with powershell.codeFormatting.whitespaceBetweenParameters enabled" Shift+Alt+F inserts unexpected string with powershell.codeFormatting.whitespaceBetweenParameters enabled Feb 19, 2025
@JustinGrote
Copy link
Collaborator

JustinGrote commented Feb 19, 2025

Thanks for your submission!

This is a ScriptAnalyzer issue. Please file an issue there with this reproduction, and report back if it gets fixed there.

I'll leave this issue open but marked as Pending: External as there's nothing we can do to fix it here.

Invoke-ScriptAnalyzer -Fix -Path path/to/test.ps1 -Settings @{
❯     Rules = @{
❯         PSUseConsistentWhitespace = @{
❯             Enable                                  = $true
❯             CheckInnerBrace                         = $true
❯             CheckOpenBrace                          = $true
❯             CheckOpenParen                          = $true
❯             CheckOperator                           = $true
❯             CheckPipe                               = $true
❯             CheckPipeForRedundantWhitespace         = $false
❯             CheckSeparator                          = $true
❯             CheckParameter                          = $true
❯             IgnoreAssignmentOperatorInsideHashTable = $false
❯         }
❯     }
❯ }

@JustinGrote JustinGrote added the Pending: External This issue is not fixed here, it is fixed in a dependent repo such as PowerShell,PSScriptAnalyzer label Feb 19, 2025
@JustinGrote JustinGrote changed the title Shift+Alt+F inserts unexpected string with powershell.codeFormatting.whitespaceBetweenParameters enabled [ScriptAnalyzer Issue] Unexpected string with powershell.codeFormatting.whitespaceBetweenParameters enabled Feb 19, 2025
@JustinGrote JustinGrote added Area-Script Analysis and removed Needs: Triage Maintainer attention needed! labels Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Script Analysis Issue-Bug A bug to squash. Pending: External This issue is not fixed here, it is fixed in a dependent repo such as PowerShell,PSScriptAnalyzer
Projects
None yet
Development

No branches or pull requests

2 participants