/composer-bash-completion-plugin

A hacky composer plugin to add bash completion without changing Composer code

Primary LanguagePHP

BASH/ZSH auto-complete plugin for Composer

This is an experimental hack to add Symfony BASH auto complete to Composer via a plugin. It's a pretty slimy hack, but it works without editing Composer's code.

Composer BASH completion

Installation

  1. Install the plugin:
composer global require stecman/composer-bash-completion-plugin dev-master
  1. Generate code to register a completion hook for your shell and Composer configuration:
source $(composer config home --global)/vendor/stecman/composer-bash-completion-plugin/generate-hook
  1. Add the registration code to your shell profile:
  • If you're using BASH, copy the output to your ~/.bash_profile
  • If you're using ZSH, copy the output to your ~/.zshrc
  1. Reload your modified shell config (or open a new shell), and enjoy tab completion on Composer

Explanation

This hacky plugin injects an additional command into the Composer application at runtime. When the plugin in this package is activated and the command line starts with composer depends _completion, the plugin effectively reboots the application with the completion command added, and drops depends from the command line so that _completion becomes the command argument. This used to work without piggy-backing on a command, but an update to composer stopped the original method working (#8).