Skip to content

PSUseConsistentWhitespace - Ability to ignore if in a line with multiple pipes #2162

@o-l-a-v

Description

@o-l-a-v

Summary of the new feature

The various PSUseConsistentWhitespace rules have various issues that might never be solved:

My biggest issue is that I don't want it to touch one liners or multiliners like this:

(
    (
        Invoke-RestMethod -Method 'Get' -Uri 'https://api.github.com/repos/chocolatey/choco/releases'
    ) | Where-Object -Property 'prerelease' -NE $true
).'tag_name' | Sort-Object -Property @{'Expression' = {[System.Version]$_}} -Descending | Select-Object -First 1

Which becomes this:

(
    (
        Invoke-RestMethod -Method 'Get' -Uri 'https://api.github.com/repos/chocolatey/choco/releases'
    ) | Where-Object -Property 'prerelease' -NE $true
).'tag_name' | Sort-Object -Property @{'Expression' = { [System.Version]$_ } } -Descending | Select-Object -First 1

If I could tell PSScriptAnalyzer to ignore cases like that I'd be happy.

Current impact

This makes it so that I don't use the code formatting presets, and instead define all the rules manually and disable most of the PSUseConsistentWhitespace rules.

Side note: Would be great with the ability to override built-in presets, so you don't have to specify all the rules.

Proposed technical implementation details (optional)

Don't know. Some ideas:

  • Ability to ignore if more than one pipe `| is found on the same line?

What is the latest version of PSScriptAnalyzer at the point of writing

v1.24.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions