If you are an Oh-my-zsh user, see the Laravel 5 plugin
For the rest of us Bash users, all of the Laravel Artisan autocomplete solutions out there require installing a composer package to get a list of artisan commands. Turns out this isn't really necessary. Simply add the provided code in ~/.bash_profile ( or similarly sourced file ) and you'll get artisan command tab completes on any project on your system.
_artisan()
{
COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
COMMANDS=`php artisan --raw --no-ansi list | sed "s/[[:space:]].*//g"`
COMPREPLY=(`compgen -W "$COMMANDS" -- "${COMP_WORDS[COMP_CWORD]}"`)
return 0
}
complete -F _artisan art
complete -F _artisan artisan
@bhuvidya I really like your caching idea, and props to everyone for their contributions. However it's just not autocomplete if it can't expand out the --many --forgettable --options.
You may apply your individual improves to this if you like:
note: it wouldn't be that difficult to add database table/column name completion, but it would involve having write the solution partially in PHP as a laravel cli.