PowerShell / PowerShell/PSScriptAnalyzer
Whitespace Between Parameters Is Trimming Required Quotes
Open
Nobody has claimed this yet.
Area - Formatter
Issue - Bug
- Dominant language
- C#
- Stars
- 2.2k
- Forks
- 414
- Avg merge
- 13h 1m
- Merged PRs (30d)
- 2
Description
- ✅ Make sure you are able to repro it on the latest released version
- ✅ Perform a quick search for existing issues to check if this bug has already been reported.
- Might be related to #1540
This was one of the more simple examples I could find.
I found this issue popping up in random files and finally realized it was a formatter issue.
Steps to reproduce
Describe "DescribeName" {
Context "ContextName" {
It "ItName" {
Assertion
}
It "output: attributes matches $($outputs.attributes)" {
$results.attributes | Should -Be $outputs.attributes
}
}
}
Expected behavior
Describe "DescribeName" {
Context "ContextName" {
It "ItName" {
Assertion
}
It "output: attributes matches $($outputs.attributes)" {
$results.attributes | Should -Be $outputs.attributes
}
}
}
Actual behavior
Describe "DescribeName" {
Context "ContextName" {
It "ItName" {
Assertion
}
It "output: attributes matches $($outputs.attributes){ <----- it removed valid quote, resulting in breaking syntax
$results.attributes | Should -Be $outputs.attributes
}
}
}
Environment data
> $PSVersionTable
Name Value
---- -----
PSVersion 7.0.3
PSEdition Core
GitCommitId 7.0.3
OS Darwin 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64
Platform Unix
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
1.18.3
1.19.1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the formatter issue with the PowerShell example in the issue, using the listed PSScriptAnalyzer versions. Trace the formatting of the quoted It string and add a regression test for the required whitespace and quote. Done means formatting preserves the closing quote and the result remains valid PowerShell syntax.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100