PowerShell / PowerShell/vscode-powershell

Incorrect indentation when passing a hashtable as a function argument

Offen
#4,945 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Area-Code Formatting Issue-Bug
Vorherrschende Sprache
TypeScript
Sterne
1.9k
Forks
548
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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

Formatting multi-line function calls with hashtable parameters produces incorrect indentation of the function call.

Example script:

function Dummy($ParameterObject) {

}

Dummy `
    -ParameterObject @{
        Property = "value"
    }

After formatting, the script looks like this:

function Dummy($ParameterObject) {

}

Dummy `
    -ParameterObject @{
    Property = "value"
}

Notice how the indentation of the function call is off after the -ParameterObject argument.

PowerShell Version
Name                           Value
----                           -----
PSVersion                      7.4.1
PSEdition                      Core
GitCommitId                    7.4.1
OS                             Microsoft Windows 10.0.22631
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          : 2024.3.1
InstanceId       : b3c9ca50-9b38-4bc7-9277-50ee2615c59a
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-GB
CurrentUICulture : en-GB
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace
Visual Studio Code Version
1.87.2
863d2581ecda6849923a2118d93a088b0745d9d6
x64
Extension Version
ms-vscode.powershell@2024.3.1
Steps to Reproduce
  1. Create a new file with .ps1 extension
  2. Paste the following snippet:
function Dummy($ParameterObject) {

}

Dummy `
    -ParameterObject @{
        Property = "value"
    }

  1. Execute the Format Document command (Shift+Alt+F)
Visuals

No response

Logs

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere das Problem in einer .ps1-Datei mit dem bereitgestellten Snippet und dem Befehl Format Document. Vergleiche die erwartete und die tatsächliche Einrückung um die an -ParameterObject übergebene hashtable; die Aufgabe ist erledigt, wenn die Formatierung die im Bericht gezeigte verschachtelte Einrückung beibehält. In der Meldung wird keine Quelldatei und kein Test-Einstiegspunkt angegeben.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
powershell, typescript, vscode
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.