(#3364) Fix broken tab completion (expansion) in PowerShell v7.4+#3459
(#3364) Fix broken tab completion (expansion) in PowerShell v7.4+#3459corbob merged 2 commits intochocolatey:developfrom yan12125:fix-issue3364
Conversation
Hey, although this pull request is identical to #3387, it's open only for one hour :D |
|
That is the reason why I copy-pasted the review as I compared the diff and not even one char changed 😅 |
|
choco v2.3.0 is out and auto-completion still doesn't work 🤔 But we can be happy that all commands are now returning correct exit codes in edge cases 😅 Release notes Why don't you merge this PR? Is there any problem with it? @gep13 It looks like even a corrupted feature is better than PR. 🙃 The good news is that the completion of package names started working after upgrading to choco v2.3 and applying this PR. 👌(I think it didn't work before?) |
|
Now I also looked over the Blog post about a new release and any of these new features had higher priority than this issue. |
|
@silverqx at no point was there a commitment that this issue was going to get resolved in the 2.3.0. If there was something that gave you that impression, I would like to no what, so that this can't happen again. The issue associated with this PR has been added to the 2.4.0 milestone.
Can I please ask what you mean by this, as it isn't immediately clear what you are referring to. |
Thx, I'm happy with this 👍, I believe a lot of people are struggling because of this regression, all other projects were fixed months ago. |
Again, I am not clear on what you are referring to here... Can you please explain further both this comment, and your previous comment. |
vexx32
left a comment
There was a problem hiding this comment.
I have a couple questions on this one but the base functionality here seems very sound. Great work! It seems to work just fine in PowerShell 7.4 and also Windows PowerShell 5.1
We are looking to pull this in for 2.4.0, so if you are unavailable for the time being we may make the suggested minor changes and look to pull it in shortly. Either way, thank you very much for the contribution!
corbob
left a comment
There was a problem hiding this comment.
This looks good and is working as expected for me.
I will hold off on merging it for now as merging this will break scheduled builds over the weekend. Will get it merged in on Monday.
|
Thank you @yan12125 for submitting this PR, and to @mklement0 for the initial PR this one is based off of. |
|
Thank you all for updating and reviewing this! |
By using the new Register-ArgumentCompleter API TabExpansion is not used since PowerShell 7.4, so the export of legacy `TabExpansion` function is made conditional on the PowerShell version.
The newer method is available from v5 and up, so we have no need to wait for v7.4+ to change over. This will also let us remove the fallback earlier, once we no longer support PS <5.0.
(A continuation of #3387. Most descriptions below are copied from there)
Description Of Changes
Fix broken tab completion (expansion) in PowerShell v7.4+ by using the new Register-ArgumentCompleter API
TabExpansion is not used since PowerShell 7.4, so the export of legacy
TabExpansionfunction is made conditional on the PowerShell version.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).
Operating Systems Testing
Windows 10 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