Skip to content

Set Code Formatting: settings based on existing PSScriptAnalyzerSettings.psd1 so autoformat stays in sync with ScriptAnalyzer #4993

Open

Description

Prerequisites

  • I have written a descriptive issue title.
  • I have searched all issues to ensure it has not already been reported.

Summary

I need to have some PSScriptAnalyzer settings defined in a PSScriptAnalyzerSettings.psd1 so I can validate my code as part of CI. I also use VSCode, and keeping vscode settings and PSScriptAnalyzer settings in sync is a bit of a pain. Since PSScriptAnalyzer has a bunch of code formatting options supported, it would be great to be able to tell vscode to "format it the way Invoke-Formatter would.

Proposed Design

No response

Activity

  1. JustinGrote commented on May 21, 2024

    @JustinGrote
    Collaborator

    Is there a specific issue with this setting that is not reading your settings file?
    image

  2. daprahamian commented on May 22, 2024

    @daprahamian
    Author

    Justin Grote (@JustinGrote) here is an example:

    # PSScriptAnalyzerSettings.psd1
    @{
        Rules = @{
            PSAlignAssignmentStatement = @{
                Enable         = $false
                CheckHashtable = $false
            }
        }
    }
    # test_file.ps1
    $dict = @{
        foo = "bar"
        basdasdasd = "zoom"
    }

    With the following setup, running Invoke-ScriptAnalyzer -Settings ./PSScriptAnalyzerSettings.psd1 -Path ./test_file.ps1 -Fix does not result in any changes to the file. But if I hit Ctrl+S inside of vscode, the file is auto-formatted as follows:

    $dict = @{
        foo = "bar"
        basdasdasd = "zoom"
    }

    despite the fact that I have set

            PSAlignAssignmentStatement = @{
                Enable         = $false
                CheckHashtable = $false
            }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions