When working with some PowerShell modules, there can be a large number of cmdlets, and the cmdlet names can get quite long.
posh-HumpCompletion adds support for "hump completion". This means that it will use the capitals in the cmdlet name as the identifiers,
i.e. "Get-DC<tab>"
would complete for Get-DnsClient, Get-DnsClientCache, Get-DscConfiguration, Get-DomainController etc.
You can install posh-HumpCompletion via the PowerShell Gallery
Install-Module -Name posh-HumpCompletion
Then run the following to start it, optionally add this call to your Powershell Profile to load it by default.
Import-Module posh-HumpCompletion
Hopefully this is fairly simple to use!
If you have a command that you want to complete for then you can type the capitals in the name and then Tab to complete.
E.g. for Get-AzureRmResourceGroup you can use Get-ARRG<tab>
Repeated tabs will cycle matches (in this case, Get-AzureRmResourceGroupDeployment etc)
For performance, posh-HumpCompletion caches the loaded commands.
If you load new modules or otherwise change the set of commands (Azure PowerShell & Switch-AzureMode, I'm looking at you!) then run Clear-HumpCompletionCommandCache
to reset.
[Bonus tip: use "Clear-HCCC<tab>"
:-)]
Pushed to PowerShell Gallery 26th May 2017
Fix up the Add-Type command to work on vanilla Windows Server 2016 and Windows 10 installations without .NET 3.5 enabled.
Pushed to PowerShell Gallery 26th May 2017
Improve perf of command cache loading which reduces the time to be able to add completion. Changed the processing to create the cache over to C# code via Add-Type.
Pushed to PowerShell Gallery 26th May 2017
Fix background loading
Change the behaviour of completion so that it no longer blocks if the background load hasn't completed, instead you get no completion. Will experiment with this for a bit and see which behaviour makes sense (or whether it should be an option)
Pushed to myget feed 23rd May 2016
Convert to working with ASTs instead of raw string parsing. With this change the tab expansion now works even when you're not at the end of the input string
Added support for expansion of parameter names and variable names
Pushed to myget feed 20th January 2016
Update to only check command cache when participating in completion Update to start loading the command cache in the background when the module loads
Pushed to myget feed 30th November 2015
Fix parameter completion bug
Pushed to myget feed 30th November 2015
Remove debug output left in code!
Pushed to myget feed 30th November 2015
Added support for partial matching, i.e. Get-AzRSub<tab>
will match Get-AzureRmSubscription
Pushed to PowerShell Gallery
Pushed to myget feed
Fixed some typos/script styling - thanks @korygill ;-)
Pushed to myget feed 2nd November 2015
Minor tweaks and packaging for chocolatey
Added caching of command details. If you add load new modules, run Clear-HumpCompletionCommandCache to update the tab completion
Added partial matching support. So now, Get-DC completes Get-DnsClient, but also Get-DnsClientCache
The first version, basic functionality implemented