Skip to main content

Shell Completion

Versionator provides shell completion scripts for Bash, Zsh, Fish, and PowerShell.

Bash

Current Session

source <(versionator completion bash)

Permanent Installation

Linux:

versionator completion bash > /etc/bash_completion.d/versionator

macOS with Homebrew:

versionator completion bash > $(brew --prefix)/etc/bash_completion.d/versionator

Manual:

# Add to ~/.bashrc
echo 'source <(versionator completion bash)' >> ~/.bashrc

Zsh

Enable Completions

First, ensure Zsh completion is enabled:

echo "autoload -U compinit; compinit" >> ~/.zshrc

Install Completion

versionator completion zsh > "${fpath[1]}/_versionator"

Or add to ~/.zshrc:

source <(versionator completion zsh)

Oh My Zsh

versionator completion zsh > ~/.oh-my-zsh/completions/_versionator

Fish

Current Session

versionator completion fish | source

Permanent Installation

versionator completion fish > ~/.config/fish/completions/versionator.fish

PowerShell

Current Session

versionator completion powershell | Out-String | Invoke-Expression

Permanent Installation

Add to your PowerShell profile:

versionator completion powershell >> $PROFILE

Or create a dedicated file:

versionator completion powershell > "$HOME\Documents\WindowsPowerShell\versionator.ps1"
# Add to profile:
echo '. "$HOME\Documents\WindowsPowerShell\versionator.ps1"' >> $PROFILE

Completion Features

Once installed, tab completion provides:

  • Command completion: versionator <TAB> shows available commands
  • Subcommand completion: versionator config prefix <TAB> shows subcommands
  • Flag completion: versionator output version --<TAB> shows available flags
  • Flag value completion: For flags with known values

Examples

$ versionator <TAB>
completion config custom emit help major
metadata minor patch prefix prerelease schema
tag vars version

$ versionator config prefix <TAB>
disable enable set status

$ versionator output emit <TAB>
c c-header cpp cpp-header csharp dump
go java js json kotlin php
python ruby rust swift ts yaml

$ versionator output version --<TAB>
--help --metadata --prefix --prerelease --template

Troubleshooting

Bash: Completions not loading

Ensure bash-completion is installed:

# Debian/Ubuntu
sudo apt install bash-completion

# macOS with Homebrew
brew install bash-completion@2

Zsh: compdef not found

Add this before the completion source:

autoload -Uz compinit && compinit

Fish: Completions not working

Verify the completions directory exists:

mkdir -p ~/.config/fish/completions

PowerShell: Execution Policy

You may need to adjust the execution policy:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Updating Completions

After upgrading versionator, regenerate completions to get new commands:

# Bash
versionator completion bash > /etc/bash_completion.d/versionator

# Zsh
versionator completion zsh > "${fpath[1]}/_versionator"

# Fish
versionator completion fish > ~/.config/fish/completions/versionator.fish