posh-tabcomplete

Crates.io Build Status

Blazing fast tab completion for powershell and pwsh.

demo

Features: * Fast startup and execution using nushell/nu-engine * Extendable using .nu files, with built in support for commmon tasks like git and npm run

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: pwsh Invoke-Expression (&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

Benchmark | Results ----------|----------- benchmark/init - startup time | tabcomplete: 102ms, posh-git: 432ms (4.24x faster) benchmark/complete - tab completion (100 branches) | tabcomplete: 71ms, posh-git: 172ms (2.42x faster)

Aliases / Function support

Functions are supported. For example, the completion of gco in the demo is: pwsh function gco() { git checkout $args }

There is no support for alias completions at this time.