Skip to content

domsleee/posh-tabcomplete

Repository files navigation

posh-tabcomplete

Crates.io Build Status

Blazing fast tab completion for powershell and pwsh.

demo

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 like git and npm 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:

Benchmarks

To run these, run ./benchmark/benchmark_all.ps1

Benchmark Results
benchmark/init - startup time posh-tabcomplete: 42ms, posh-git: 268ms (6.38x faster)
benchmark/complete - tab completion (100 branches) posh-tabcomplete: 80ms, posh-git: 176ms (2.2x 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
    • diff
  • npm
    • run
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy