Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IncreaseIndentationForFirstPipeline incorrectly closes parent block depending on placement of pipe on beginning or end of line #2038

Open
cure1245 opened this issue Oct 21, 2024 · 0 comments

Comments

@cure1245
Copy link

Before submitting a bug report:

  • 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

Steps to reproduce

I have a function that uses XMLDocument.SelectNodes to grab attribute nodes,
name them with a PSObject, and then filter them using Where-Object.

Expected behavior

# The expected behavior is for the bracket closing the ForEach-Object block to be directly under the F:
    process {
        $syncXml.SelectNodes('//@LDAPGroupName') |
            ForEach-Object {
                [PSCustomObject]@{ Group = $_.Value } |
                    Where-Object { $_.Group -like $Group }
            }
    }

Actual behavior

If we leave the pipes at the end of the lines as is standard practice, we get this:

# the close of the ForEach-Object block now appears under the bracket of the type designation
    process {
        $syncXml.SelectNodes('//@LDAPGroupName') |
            ForEach-Object {
                [PSCustomObject]@{ Group = $_.Value } |
                    Where-Object { $_.Group -like $Group }
                }

    }

However, the formatter correctly places the closing brace if we move the last pipe to the next line:

# Moving the pipe fixes the issue:
    process {
        $syncXml.SelectNodes('//@LDAPGroupName') |
            ForEach-Object {
                [PSCustomObject]@{ Group = $_.Value }
                | Where-Object { $_.Group -like $Group }
            }
    }

If an unexpected error was thrown then please report the full error details using e.g. $error[0] | Select-Object *

Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.4.5
PSEdition                      Core
GitCommitId                    7.4.5
OS                             Microsoft Windows 10.0.19045
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.22.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant