(#3364) Fix broken tab completion (expansion) in PowerShell v7.4+ #3387
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description Of Changes
Switches to using
Register-ArgumentCompleter
for tab-completion (expansion) when running in PowerShell v7.4+Motivation and Context
As discussed in #3364:
Chocolatey's tab completion broke in v7.4.0, due to an intentional breaking change in PowerShell (removal of legacy code, as a side effect of which PowerShell no longer calls custom
TabExpansion
functions, if defined).The recommended approach (since v5.0) is to use
Register-ArgumentCompleter
Testing
Interactively (tab completion).
Programmatically, by calling
TabExpansion2
; e.g:Operating Systems Testing
Windows 11 22H2
Change Types Made
Change Checklist
I don't have access to PowerShell v2, but I think the changes are compatible.
Related Issue
Fixes #3364