PowerShell / vscode-powershell

Provides PowerShell language and debugging support for Visual Studio Code
https://marketplace.visualstudio.com/items/ms-vscode.PowerShell
MIT License
1.68k stars 479 forks source link

Formatting issue with New-Object and Trim Whitespace for Props #2801

Closed jkewley closed 4 years ago

jkewley commented 4 years ago

System Details

System Details Output

### VSCode version: 1.47.0 d5e9aa0227e057a60c82568bf31c04730dc15dcd x64

### VSCode extensions:
arcticicestudio.nord-visual-studio-code@0.14.0
bierner.emojisense@0.7.0
CoenraadS.bracket-pair-colorizer-2@0.2.0      
eamodio.gitlens@10.2.2
HookyQR.beautify@1.5.0
johnpapa.vscode-peacock@3.7.2
mechatroner.rainbow-csv@1.7.0
mhutchie.git-graph@1.24.0
mohsen1.prettify-json@0.0.3
ms-azuretools.vscode-azureappservice@0.17.0
ms-azuretools.vscode-azurefunctions@0.23.0 
ms-azuretools.vscode-azurestorage@0.9.0    
ms-azuretools.vscode-logicapps@0.2.41      
ms-dotnettools.csharp@1.22.1
ms-dotnettools.vscode-dotnet-runtime@0.1.2 
ms-vscode-remote.remote-wsl@0.44.4
ms-vscode.azure-account@0.8.11
ms-vscode.azurecli@0.5.0
ms-vscode.powershell@2020.6.0
ms-vsliveshare.vsliveshare@1.0.2427
ms-vsts.team@1.161.0
msazurermtools.azurerm-vscode-tools@0.11.0
PKief.material-icon-theme@4.2.0
richie5um2.vscode-sort-json@1.18.0
Shan.code-settings-sync@3.4.3
VisualStudioOnlineApplicationInsights.application-insights@0.4.2
vscode-icons-team.vscode-icons@10.1.1
vsls-contrib.codetour@0.0.34
vsls-contrib.gistfs@0.1.4

### PSES version: 2.2.0.0

### PowerShell version:

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

Issue Description

PowerShell setting Code Formatting : Whitespace Between Parameters has a bug when formatting New-Object PSObject -Property code.

Given:

$whoisthis = New-Object PSObject -Property @{
Somebody = "once told me"
That     = "the world is gonna roll me"
}

reformatting without the setting checked gives us

$whoisthis = New-Object PSObject -Property @{
    Somebody = "once told me"
    That     = "the world is gonna roll me"
}

with the option checked we get

$whoisthis = New-Object PSObject -Property @{
    Somebody "once told me"
    That = "the world is gonna roll me"
}

which is illegal (equals sign is gone after 'Somebody')

Expected Behaviour

I would expect this:

$whoisthis = New-Object PSObject -Property @{
    Somebody = "once told me"
    That = "the world is gonna roll me"
}
TylerLeonhardt commented 4 years ago

This is very likely a PSScriptAnalyzer issue. BTW, for future reference we have a link to the right repo in our issue flow: image

jkewley commented 4 years ago

Whoops! Missed that. I'll close this and head over there

jansohn commented 3 years ago

For anyone else looking for the right issue: https://github.com/PowerShell/PSScriptAnalyzer/issues/1540