PowerShell / PowerShell/vscode-powershell
ValidateSet/Register-ArgumentCompleter/Enum completions does not work correctly
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 1.9k
- Fork
- 548
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Issue Description
I am experiencing a problem with... completions failing for 2nd entry.

Notice that it works on 14th line, and then very same command fails on line 10th.
function Get-GPOZaurrPermissionSummary {
[cmdletBinding()]
param(
[validateSet('AuthenticatedUsers', 'DomainComputers', 'Unknown', 'WellKnownAdministrative', 'NotWellKnown', 'NotWellKnownAdministrative', 'NotAdministrative', 'Administrative', 'All')][string[]] $Type = 'All',
[validateSet('Allow', 'Deny', 'All')][string] $PermitType = 'All',
[ValidateSet('GpoApply', 'GpoEdit', 'GpoCustom', 'GpoEditDeleteModifySecurity', 'GpoRead', 'GpoOwner', 'GpoCustomCreate', 'GpoCustomOwner')][string[]] $IncludePermissionType,
[ValidateSet('GpoApply', 'GpoEdit', 'GpoCustom', 'GpoEditDeleteModifySecurity', 'GpoRead', 'GpoOwner', 'GpoCustomCreate', 'GpoCustomOwner')][string[]] $ExcludePermissionType,
[Microsoft.GroupPolicy.GPPermissionType[]] $Test,
[alias('ForestName')][string] $Forest,
[string[]] $ExcludeDomains,
[alias('Domain', 'Domains')][string[]] $IncludeDomains,
[System.Collections.IDictionary] $ExtendedForestInformation,
[string] $Separator
)
I tried to replicate it to give you reproducible code but I just can't. I'm experiencing it across all my modules and I can't pinpoint it to what I'm doing wrong. It fails the same way for both [Microsoft.GroupPolicy.GPPermissionType[]] which is an enum, but also have the same issue with ValidateSet and Register-ArgumentCompleter that makes me want to cry :-)
Attached Logs
1601583262-5511c227-6bca-4824-9bad-6f29a894ed501601499246405.zip
Follow the instructions in the README about
capturing and sending logs.
Environment Information
Visual Studio Code
| Name | Version |
|---|---|
| Operating System | Windows_NT x64 10.0.19042 |
| VSCode | 1.49.2 |
| PowerShell Extension Version | 2020.9.0 |
PowerShell Information
| Name | Value |
|---|---|
| PSVersion | 5.1.19041.541 |
| PSEdition | Desktop |
| PSCompatibleVersions | 1.0 2.0 3.0 4.0 5.0 5.1.19041.541 |
| BuildVersion | 10.0.19041.541 |
| CLRVersion | 4.0.30319.42000 |
| WSManStackVersion | 3.0 |
| PSRemotingProtocolVersion | 2.3 |
| SerializationVersion | 1.1.0.1 |
Visual Studio Code Extensions
Visual Studio Code Extensions(Click to Expand)
| Extension | Author | Version |
|---|---|---|
| better-toml | bungcip | 0.3.2 |
| csharp | ms-dotnettools | 1.23.2 |
| errorlens | usernamehw | 3.2.2 |
| github-linker | gimenete | 0.2.3 |
| gitlens | eamodio | 10.2.2 |
| line-endings | steditor | 1.0.3 |
| LogFileHighlighter | emilast | 2.9.0 |
| markdown-all-in-one | yzhang | 3.3.0 |
| material-icon-theme | PKief | 4.3.0 |
| open-in-browser | techer | 2.0.0 |
| powershell-preview | ms-vscode | 2020.9.0 |
| project-manager | alefragnani | 11.3.0 |
| rainbow-brackets | 2gua | 0.0.6 |
| run-in-powershell | tobysmith568 | 1.1.0 |
| swdc-vscode | softwaredotcom | 2.3.12 |
| vscode-markdownlint | DavidAnson | 0.37.0 |
| vscode-toggle-quotes | BriteSnow | 0.3.3 |
| vscode-wakatime | WakaTime | 4.0.8 |
| vscode-yaml | redhat | 0.11.1 |
| xml | DotJoshJohnson | 2.5.1 |
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo il malfunzionamento del completamento in VS Code con la funzione PowerShell fornita, quindi esamina i log allegati usando docs/troubleshooting.md. Confronta il completamento al secondo inserimento per ValidateSet, Register-ArgumentCompleter e i parametri enum. Il lavoro è completato quando queste origini del completamento funzionano in modo coerente tra inserimenti successivi e un test di regressione copre il malfunzionamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- powershell, typescript, vscode
- Ambito
- developer-experience, devtools, tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100