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

Closed
cure1245 opened this issue Oct 21, 2024 · 3 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
@SydneyhSmith
Copy link
Collaborator

This may be a dupe of #1976 or at least a similar issue

@cure1245
Copy link
Author

Yeah, I was kind of iffy on if it was similar enough or not to that one to warrant a new issue.

Copy link
Contributor

This issue has been marked as duplicate and has not had any activity for 1 day. It will be closed for housekeeping purposes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants