New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added -Module completion for Save-Help/Update-Help commands
#20678
Added -Module completion for Save-Help/Update-Help commands
#20678
Conversation
| $utilityModule = 'Microsoft.PowerShell.Utility' | ||
| $managementModule = 'Microsoft.PowerShell.Management' | ||
| $allPowerShellModules = ((Get-Module -Name Microsoft.Power* -ListAvailable).Name | Sort-Object -Unique) -join ' ' | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To make the tests more stable I think we should explicitly load modules we use in the tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like this is not needed since all the modules are fetched using wildcard and should be auto loaded in the test before we use Get-Module -ListAvailable. We would need to keep the list of module names if we wanted to import modules beforehand explicitly, which gets more complicated because some assemblies are windows only.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Best practice is any test shouldn't depend on another test or its order.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[-] Error occurred in Context block 0ms
RuntimeException: The following error occurred while loading the extended type data file:
Error in TypeData "Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet": The member Readings is already present.
Error in TypeData "Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet": The member DefaultDisplayPropertySet is already present.
Error in TypeData "Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample": The member DefaultDisplayPropertySet is already present.
Error in TypeData "Microsoft.PowerShell.Commands.GetCounter.CounterSet": The member Counter is already present.
Error in TypeData "System.Diagnostics.Eventing.Reader.ProviderMetadata": The member DefaultDisplayPropertySet is already present.
Error in TypeData "System.Diagnostics.Eventing.Reader.ProviderMetadata": The member ProviderName is already present.
Error in TypeData "System.Diagnostics.Eventing.Reader.EventLogRecord": The member DefaultDisplayPropertySet is already present.
Error in TypeData "System.Diagnostics.Eventing.Reader.EventLogConfiguration": The member DefaultDisplayPropertySet is already present.
at <ScriptBlock>, C:\Users\armaa\Documents\git-repos\PowerShell\test\powershell\Host\TabCompletion\TabCompletion.Tests.ps1: line 893
at Invoke-Blocks, C:\Users\armaa\OneDrive\Documents\PowerShell\Modules\Pester\4.10.1\Functions\SetupTeardown.ps1: line 135
at Invoke-TestGroupSetupBlocks, C:\Users\armaa\OneDrive\Documents\PowerShell\Modules\Pester\4.10.1\Functions\SetupTeardown.ps1: line 121
at DescribeImpl, C:\Users\armaa\OneDrive\Documents\PowerShell\Modules\Pester\4.10.1\Functions\Describe.ps1: line 209Above is what happens in test if you try to import all microsoft powershell modules.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it after you added Import-Module Microsoft.PowerShell.Diagnostics?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep that is correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I included -ErrorAction SilentlyContinue so test doesn't fail here. It seems to fail only for diagnostics module.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This just shows a side effect of the other tests. It shouldn't be. But that's not the subject of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can probably raise a separate issue to cover it but agree it shouldn't be fixed in this PR.
|
@MartinGC94 Could you please review? |
|
@iSazonov LGTM |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
📣 Hey @ArmaanMcleod, how did we do? We would love to hear your feedback with the link below! 🗣️ 🔗 https://aka.ms/PSRepoFeedback |


PR Summary
Fixes #20431.
Added
-Modulecompletion forSave-Help/Update-Helpcommands.PR Context
Currently if you try to tab complete modules with
Save-Help -ModuleorUpdate-Help -Modulethere is no tab completion.This PR adds native completion to both commands. It wraps the existing completion code from
Get-Command -Moduleintovoid CompleteModule(CompletionContext context, List<CompletionResult> result)method so it can also be used for the two help commands.PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright headerWIP:or[ WIP ]to the beginning of the title (theWIPbot will keep its status check atPendingwhile the prefix is present) and remove the prefix when the PR is ready.(which runs in a different PS Host).