PowerShell / PowerShell/vscode-powershell
ValidateSet/Register-ArgumentCompleter/Enum completions does not work correctly
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.9k
- Forks
- 547
- PR merge metrics
- No merged PRs in 30d
Description
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 |
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the completion failure in VS Code with the provided PowerShell function, then review the attached logs using docs/troubleshooting.md. Compare second-entry completion for ValidateSet, Register-ArgumentCompleter, and enum parameters. Done means these completion sources work consistently across successive entries, with a regression test covering the failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell, typescript, vscode
- Domain
- developer-experience, devtools, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100