This is like issue #1536 but I created a new one because I have extra details and test cases that change code when operators are not involved.
Steps to reproduce
This only breaks using the setting "powershell.codeFormatting.whitespaceBetweenParameters": true, is enabled
You can create a fresh powershell file with only the following:
BaseGameXml = Get-ChildItem "${GameBase}\Content\" '*.xml'
Write-Output ($env:computername + ", " + $env:username)
Then run Format Document Running multiple times continues making non-formating changes to the code.
Expected behavior
BaseGameXml = Get-ChildItem "${GameBase}\Content\" '*.xml'
Write-Output ($env:computername + ", " + $env:username)
Actual behavior
formatting 1 time
BaseGameXml = Get-ChildItem "${GameBase}\'*.xml'
Write-Output ($env:computername " + $env:username)
formatting 3 times
BaseGameXml = Get-ChildItem "${GameBase}\'*.xml'
Write-Output ($env:computername $env:username)

end of attached log
interesting behavior
- The new test case contains \" which is not a PowerShell escape sequence, but maybe passing between the language server/addon it's not properly being escaped somewhere?
- whitespaceBetweenParameters is modifying strings directly, not the spacing between parameters
- running Format Document repeatedly results in more errors. The above example will modify the script every format up to the first 3 times.
- operators are not required
Environment data
> $PSVersionTable
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
> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.19.0
VS Code settings.json
Visual Studio Code Extensions
Note: These are installed addons, they are not all enabled
- ms-vscode.powershell-preview is enabled
- ms-vscode.powershell is disabled
Visual Studio Code Extensions(Click to Expand)
| Extension |
Author |
Version |
| nord-visual-studio-code |
arcticicestudio |
0.14.0 |
| better-toml |
bungcip |
0.3.2 |
| path-intellisense |
christian-kohler |
2.2.1 |
| bracket-pair-colorizer |
CoenraadS |
1.0.61 |
| bracket-pair-colorizer-2 |
CoenraadS |
0.2.0 |
| vscode-markdownlint |
DavidAnson |
0.36.1 |
| gitlens |
eamodio |
10.2.2 |
| vsc-community-material-theme |
Equinusocio |
1.4.1 |
| vsc-material-theme |
Equinusocio |
32.8.0 |
| vsc-material-theme-icons |
equinusocio |
1.1.4 |
| font-switcher |
evan-buss |
3.1.0 |
| vscode-firefox-debug |
firefox-devtools |
2.9.0 |
| code-runner |
formulahendry |
0.11.0 |
| vscode-theme-hydra |
juanmnl |
3.1.0 |
| mypy |
matangover |
0.1.4 |
| rainbow-csv |
mechatroner |
1.7.0 |
| code-point |
medo64 |
1.7.0 |
| mssql |
ms-mssql |
1.9.0 |
| python |
ms-python |
2020.6.91350 |
| remote-wsl |
ms-vscode-remote |
0.44.4 |
| cpptools |
ms-vscode |
0.28.3 |
| powershell |
ms-vscode |
2020.6.0 |
| powershell-preview |
ms-vscode |
2020.6.1 |
| vscode-typescript-tslint-plugin |
ms-vscode |
1.2.3 |
| debugger-for-chrome |
msjsdiag |
4.12.8 |
| vscode-json-transform |
octref |
0.1.2 |
| material-icon-theme |
PKief |
4.2.0 |
| vscode-powerquery |
PowerQuery |
0.1.2 |
| synthwave-vscode |
RobbOwen |
0.1.6 |
| bash-debug |
rogalmic |
0.3.9 |
| rust |
rust-lang |
0.7.8 |
| vscode-duotone-dark |
sallar |
0.3.3 |
| powerquerymlanguage |
sea1jxr |
1.0.0 |
| bash-beautify |
shakram02 |
0.1.1 |
| markdown-preview-enhanced |
shd101wyy |
0.5.12 |
| unique-window-colors |
stuart |
1.0.51 |
| vscode-lldb |
vadimcn |
1.5.3 |
| vscodeintellicode |
VisualStudioExptTeam |
1.2.9 |
| debug |
webfreak |
0.25.0 |
| material-theme |
zhuangtongfa |
3.8.3 |
logs and sample files.zip
This is like issue #1536 but I created a new one because I have extra details and test cases that change code when operators are not involved.
Steps to reproduce
This only breaks using the setting "powershell.codeFormatting.whitespaceBetweenParameters": true, is enabled
You can create a fresh powershell file with only the following:
Then run Format Document Running multiple times continues making non-formating changes to the code.
Expected behavior
Actual behavior
formatting 1 time
formatting 3 times
end of attached log
interesting behavior
Environment data
VS Code settings.json
{ "editor.wordWrap": "on", "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.trimTrailingWhitespace": true, "powershell editor services.trace.server": "verbose", "powershell.buttons.showPanelMovementButtons": true, "powershell.buttons.showRunButtons": true, "powershell.codeFolding.enable": true, "powershell.codeFolding.showLastLine": true, "powershell.codeFormatting.addWhitespaceAroundPipe": true, "powershell.codeFormatting.autoCorrectAliases": true, "powershell.codeFormatting.ignoreOneLineBlock": true, "powershell.codeFormatting.pipelineIndentationStyle": "None", "powershell.codeFormatting.preset": "OTBS", "powershell.codeFormatting.useCorrectCasing": true, "powershell.codeFormatting.whitespaceBetweenParameters": true, "powershell.developer.editorServicesLogLevel": "Diagnostic", "powershell.enableProfileLoading": true, "[powershell]": { // powershell <move line up/down> is destructive when set to full "editor.autoIndent": "advanced", "editor.formatOnPaste": true, "editor.formatOnSave": false, "editor.formatOnType": true, "files.autoGuessEncoding": true, "files.encoding": "utf8bom", }, }Visual Studio Code Extensions
Note: These are installed addons, they are not all enabled
- ms-vscode.powershell-preview is enabled
- ms-vscode.powershell is disabled
Visual Studio Code Extensions(Click to Expand)logs and sample files.zip