7 releases
0.1.6 | Sep 16, 2023 |
---|---|
0.1.5 | Sep 5, 2023 |
0.1.4 | Apr 11, 2023 |
0.1.2 | Mar 13, 2023 |
126 downloads per month
130KB
365 lines
posh-tabcomplete
Blazing fast tab completion for powershell and pwsh.
This video is using the MenuComplete
binding in code $PROFILE
:
Set-PSReadLineKeyHandler -Key Tab MenuComplete
Features:
- Fast startup and execution using nushell/nu-engine
- Extendable using
.nu
files, with built in support for commmon tasks likegit
andnpm run
- Supports all platforms. Tested on windows, WSL, mac and linux
By default, completions.nu is used. An alternative .nu
file can be specified in the TABCOMPLETE_FILE
environment variable.
Installation
Step 1. Install binary
There are binaries available in releases, or with one of these commands:
Repository | Instructions |
---|---|
crates.io | cargo install posh-tabcomplete --locked |
Step 2. Setup powershell
Add this line to your profile, you can edit this by typing code $PROFILE
in powershell:
Invoke-Expression (&posh-tabcomplete init | Out-String)
Built in completions
The completions packaged with the binary in completions.nu are:
- git completions. These are also combined with git auto generated completions
- npm completions
- cargo completions
Benchmarks
To run these, run ./benchmark/benchmark_all.ps1
Benchmark | Results |
---|---|
benchmark/init - startup time |
posh-tabcomplete: 80ms, posh-git: 307ms (3.84x faster) |
benchmark/complete - tab completion (100 branches) |
posh-tabcomplete: 80ms, posh-git: 178ms (2.22x faster) |
Aliases / Function support
Functions are supported. For example, the completion of gco
in the demo is:
function gco() { git checkout $args }
There is no support for alias completions at this time.
Full list of completions
See completions.nu:
git
branch
checkout
cherry-pick
fetch
merge
push
rebase
switch
npm
run
Dependencies
~56–96MB
~1.5M SLoC