PowerShell / PowerShell/vscode-powershell

Extension's Formatter ignores config file.

Open
#3,024 7 comments 1 reaction 1 assignee View on GitHub

@SydneyhSmith is already working on this.

Since Mar 15, 2023.

Area-Script Analysis Issue-Enhancement
Dominant language
TypeScript
Stars
1.9k
Forks
547
PR merge metrics
No merged PRs in 30d

Description

Issue Description

The extension's formatter is ignoring the config file: PSScriptAnalyzerSettings.psd1
I didn't file this in /PSScriptAnalyzer because it (Invoke-Formatter) works as expected with the same config file.

Properties set under "powershell.codeFormatting.* are working.
Except it's ignoring "powershell.scriptAnalysis.settingsPath": "PSScriptAnalyzerSettings.psd1" when formatting.

I can disable changing process using Invoke-Formatter using this config

@{
    'Rules' = @{
        'PSAvoidUsingCmdletAliases' = @{
            'Whitelist' = @('process')
        }
    }
}
Expected Behaviour

Input example:

function foo {
    param ()

    Process {
        ls
        process
    }
}

Should format as

function foo {
    param ()

    Process {
        Get-ChildItem
        process
    }
}
Actual Behaviour
function foo {
    param ()

    Process {
        Get-ChildItem
        Get-Process
    }
}
System Details

A tiny workspace reproduces the example: 2020-10-20 - Invoke-Formatter - ignores config.zip

System Details Output (Click to Expand)
### VSCode version: 1.50.1 d2e414d9e4239a252d1ab117bd7067f125afd80a x64

### VSCode extensions:
alefragnani.Bookmarks@11.4.0
arcticicestudio.nord-visual-studio-code@0.14.0
bungcip.better-toml@0.3.2
christian-kohler.path-intellisense@2.3.0
CoenraadS.bracket-pair-colorizer@1.0.61
CoenraadS.bracket-pair-colorizer-2@0.2.0
DavidAnson.vscode-markdownlint@0.37.1
donjayamanne.githistory@0.6.12
DotJoshJohnson.xml@2.5.1
eamodio.gitlens@10.2.2
eamodio.tsl-problem-matcher@0.3.1
Equinusocio.vsc-community-material-theme@1.4.2
Equinusocio.vsc-material-theme@33.0.0
equinusocio.vsc-material-theme-icons@1.2.0
esbenp.prettier-vscode@5.7.1
evan-buss.font-switcher@3.1.0
firefox-devtools.vscode-firefox-debug@2.9.1
formulahendry.code-runner@0.11.1
juanmnl.vscode-theme-hydra@3.1.0
matangover.mypy@0.1.4
mechatroner.rainbow-csv@1.7.1
medo64.code-point@1.7.1
ms-dotnettools.csharp@1.23.4
ms-mssql.mssql@1.9.0
ms-python.python@2020.9.114305
ms-python.vscode-pylance@2020.10.2
ms-vscode-remote.remote-wsl@0.50.1
ms-vscode.cpptools@1.0.1
ms-vscode.hexeditor@1.3.0
ms-vscode.powershell@2020.6.0  [disabled]
ms-vscode.powershell-preview@2020.9.0 
ms-vscode.vscode-typescript-tslint-plugin@1.2.3
msjsdiag.debugger-for-chrome@4.12.11
octref.vscode-json-transform@0.1.2
PKief.material-icon-theme@4.3.0
PowerQuery.vscode-powerquery@0.1.5
RandomFractalsInc.vscode-data-preview@2.2.0
redhat.vscode-xml@0.13.0
RobbOwen.synthwave-vscode@0.1.8
rogalmic.bash-debug@0.3.9
rust-lang.rust@0.7.8
sallar.vscode-duotone-dark@0.3.3
shakram02.bash-beautify@0.1.1
shd101wyy.markdown-preview-enhanced@0.5.13
stansw.vscode-odata@0.1.0
stuart.unique-window-colors@1.0.51
vadimcn.vscode-lldb@1.6.0
VisualStudioExptTeam.vscodeintellicode@1.2.10
webfreak.debug@0.25.0
wwm.better-align@1.1.6
yzhang.markdown-all-in-one@3.3.0
zhuangtongfa.material-theme@3.9.3

### PSES version: 2.3.0.0

Name                              Version
----                              -------
PowerShellEditorServices.Commands 0.2.0
PowerShellEditorServices.VSCode   0.2.0

### PowerShell version:

Name                           Value
----                           -----
PSVersion                      7.0.3
PSEdition                      Core
GitCommitId                    7.0.3
OS                             Microsoft Windows 10.0.19041
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Attached Logs

log - editorServices.log

Environment Information

Visual Studio Code

Name Version
Operating System Windows_NT x64 10.0.19041
VSCode 1.50.1
PowerShell Extension Version 2020.9.0

PowerShell Information

Name Value
PSVersion 7.0.3
PSEdition Core
GitCommitId 7.0.3
OS Microsoft Windows 10.0.19041
Platform Win32NT
PSCompatibleVersions 1.0 2.0 3.0 4.0 5.0 5.1.10032.0 6.0.0 6.1.0 6.2.0 7.0.3
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

Visual Studio Code Extensions

Visual Studio Code Extensions(Click to Expand)
Extension Author Version
better-toml bungcip 0.3.2
Bookmarks alefragnani 11.4.0
code-point medo64 1.7.1
code-runner formulahendry 0.11.1
cpptools ms-vscode 1.0.1
csharp ms-dotnettools 1.23.4
debug webfreak 0.25.0
debugger-for-chrome msjsdiag 4.12.11
font-switcher evan-buss 3.1.0
githistory donjayamanne 0.6.12
gitlens eamodio 10.2.2
hexeditor ms-vscode 1.3.0
markdown-all-in-one yzhang 3.3.0
material-icon-theme PKief 4.3.0
material-theme zhuangtongfa 3.9.3
mssql ms-mssql 1.9.0
mypy matangover 0.1.4
nord-visual-studio-code arcticicestudio 0.14.0
path-intellisense christian-kohler 2.3.0
powershell-preview ms-vscode 2020.9.0
prettier-vscode esbenp 5.7.1
python ms-python 2020.9.114305
rainbow-csv mechatroner 1.7.1
remote-wsl ms-vscode-remote 0.50.1
rust rust-lang 0.7.8
synthwave-vscode RobbOwen 0.1.8
tsl-problem-matcher eamodio 0.3.1
vsc-community-material-theme Equinusocio 1.4.2
vsc-material-theme Equinusocio 33.0.0
vsc-material-theme-icons equinusocio 1.2.0
vscode-data-preview RandomFractalsInc 2.2.0
vscode-duotone-dark sallar 0.3.3
vscode-firefox-debug firefox-devtools 2.9.1
vscode-json-transform octref 0.1.2
vscode-lldb vadimcn 1.6.0
vscode-odata stansw 0.1.0
vscode-powerquery PowerQuery 0.1.5
vscode-pylance ms-python 2020.10.2
vscode-theme-hydra juanmnl 3.1.0
vscode-typescript-tslint-plugin ms-vscode 1.2.3
vscode-xml redhat 0.13.0
vscodeintellicode VisualStudioExptTeam 1.2.10
manual_invoke_formatter.ps1 (Click to Expand)
$settings = 'PSScriptAnalyzerSettings.psd1'
$src = @'
function foo {
    param ()

    Process {
        ls
        process
    }
}
'@

$expected = @'
function foo {
    param ()

    Process {
        Get-ChildItem
        process
    }
}
'@

Write-Host -fore red "Input"
$src

Write-Host -fore red "Result"
$result = Invoke-Formatter -ScriptDefinition $src -Settings $settings
$result

"Expected?"
$result -eq $expected

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.