PowerShell / PowerShell/vscode-powershell
Formatting an It block with unbalanced spacing causes issues
@andyleejordan arbeitet bereits daran.
Seit 06.6.2022.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 1.9k
- Forks
- 547
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Prerequisites
- I have written a descriptive issue title.
- I have searched all 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
With the code (note two spaces between ) and { on line 7):
It "should create applications in Intune (<_>)" -ForEach @(
$Packages
@{
Name = 'installpackage'
Version = '1.0.0'
}
) {
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
When selecting to Format Document, results in:
It
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
When updating the code to include two spaces between -ForEach and @(:
It "should create applications in Intune (<_>)" -ForEach @(
$Packages
@{
Name = 'installpackage'
Version = '1.0.0'
}
) {
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
It correctly formats:
It "should create applications in Intune (<_>)" -ForEach @(
$Packages
@{
Name = 'installpackage'
Version = '1.0.0'
}
) {
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
And here's where it gets weird... When changing to three or more spaces on line 7:
It "should create applications in Intune (<_>)" -ForEach @(
$Packages
@{
Name = 'installpackage'
Version = '1.0.0'
}
) {
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
It does not format at all. Until... there are 2 or more spaces between -ForEach and @{, then it formats correctly.
Compounding the issue, if you remove the It, the formatting works correctly.
"should create applications in Intune (<_>)" -ForEach @(
$Packages
@{
Name = 'installpackage'
Version = '1.0.0'
}
) {
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
Formats to:
"should create applications in Intune (<_>)" -ForEach @(
$Packages
@{
Name = 'installpackage'
Version = '1.0.0'
}
) {
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
Finally: When run through Invoke-Formatter in the integrated terminal, formatting occurs as expected:
PS /Users/coryknox/git/chocolatey/ctk/16_engtasks_1510> Invoke-Formatter @'
>> It "should create applications in Intune (<_>)" -ForEach @(
>> $Packages
>> @{
>> Name = 'installpackage'
>> Version = '1.0.0'
>> }
>> ) {
>> $Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
>> }
>> '@
It "should create applications in Intune (<_>)" -ForEach @(
$Packages
@{
Name = 'installpackage'
Version = '1.0.0'
}
) {
$Output.Lines | Should -Contain "Application created in Intune: $_ ($" -Because $Output.String
}
PowerShell Version
[32;1mName Value[0m
[32;1m---- -----[0m
PSVersion 7.2.3
PSEdition Core
GitCommitId 7.2.3
OS Darwin 21.4.0 Darwin Kernel Version 21.4.0: Fri Mar 18 00:45:05 PDT 2022; root:xnu-8020.101.4~15/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
Visual Studio Code Version
1.67.0-insider
ed2619e11b68bec43b788486230b0c2afeb4672d
x64
Extension Version
ms-vscode.powershell@2021.12.0
ms-vscode.powershell-preview@2022.4.3
TylerLeonhardt.vscode-inline-values-powershell@0.0.5
Steps to Reproduce
See Summary above
Visuals
Logs
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Bewertung
Dieses Issue wurde noch nicht bewertet.