PowerShell / PowerShell/PSScriptAnalyzer

Auto Correct Aliases incorrectly expands DSC resources name thinking its an alias of a cmdlet

Aberta
#2,025 0 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Issue-Bug
Linguagem predominante
C#
Estrelas
2.2k
Forks
415
Merge médio
13h 1min
PRs com merge (30d)
2

Descrição

Prerequisites
  • I have written a descriptive issue title.
  • I have searched all open and closed issues to ensure it has not already been reported.
  • I have read the troubleshooting guide.
  • I am sure this issue is with the extension itself and does not reproduce in a standalone PowerShell instance.
  • I have verified that I am using the latest version of Visual Studio Code and the PowerShell extension.
  • If this is a security issue, I have read the security issue reporting guidance.
Summary

When using the powershell formatter to format a DSC script, it incorrectly expands DSC resource e.g Package gets expanded to Get-Package which is incorrect in context of DSC.

PowerShell Version
Name                           Value
----                           -----
PSVersion                      7.4.3
PSEdition                      Core
GitCommitId                    7.4.3
OS                             Microsoft Windows 10.0.26100
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Name             : ConsoleHost
Version          : 7.4.3
InstanceId       : 18115bb7-f7da-45d7-bb4b-e3714de77d09
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace
Visual Studio Code Version
1.91.0
ea1445cc7016315d0f5728f8e8b12a45dc0a7286
arm64
Extension Version
ms-vscode.powershell@2024.2.2
Steps to Reproduce
  • Add below snippet to VSCode with "powershell.codeFormatting.autoCorrectAliases": true set.
  • Make sure VSCode detects the langugae as Poweshell or manually set it, then run formatter using Alt+Shift+F

Code Snippet

Configuration PackageTest
{
    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

Package PackageExample
    {
        Ensure = "Present"
        Path = "$Env:SystemDrive\TestFolder\TestProject.msi"
        Name = "TestPackage"
        ProductId = "ACDDCDAF-80C6-41E6-A1B9-8ABD8A05027E"
    }
}

Expected behavior

Configuration PackageTest {
  Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

  Package PackageExample
  {
    Ensure = 'Present'
    Path = "$Env:SystemDrive\TestFolder\TestProject.msi"
    Name = 'TestPackage'
    ProductId = 'ACDDCDAF-80C6-41E6-A1B9-8ABD8A05027E'
  }
}

Actual behavior

Configuration PackageTest {
  Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

  Get-Package PackageExample
  {
    Ensure = 'Present'
    Path = "$Env:SystemDrive\TestFolder\TestProject.msi"
    Name = 'TestPackage'
    ProductId = 'ACDDCDAF-80C6-41E6-A1B9-8ABD8A05027E'
  }
}
Visuals

No response

Logs

No response

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece localizando o caminho do formatter que processa a configuração powershell.codeFormatting.autoCorrectAliases e, em seguida, reproduza o problema com a configuração DSC Package fornecida. Verifique como o formatter distingue aliases de cmdlet de nomes de recursos DSC e confirme que a formatação preserva Package e ainda corrige os aliases aplicáveis.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
powershell
Domínio
tooling
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.