Skip to content

Instantly share code, notes, and snippets.

@tuanpht
Forked from jhoff/README.md
Last active June 7, 2023 07:42
Show Gist options
  • Star 17 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save tuanpht/2c92f39c74f404ffc712c9078a384f39 to your computer and use it in GitHub Desktop.
Save tuanpht/2c92f39c74f404ffc712c9078a384f39 to your computer and use it in GitHub Desktop.
Bash-only Laravel Artisan tab auto-complete

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()
{
    local arg="${COMP_LINE#php }"

    case "$arg" in
        artisan*)
            COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
            COMMANDS=`php artisan --raw --no-ansi list | sed "s/[[:space:]].*//g"`
            COMPREPLY=(`compgen -W "$COMMANDS" -- "${COMP_WORDS[COMP_CWORD]}"`)
            ;;
        *)
            COMPREPLY=( $(compgen -o default -- "${COMP_WORDS[COMP_CWORD]}") )
            ;;
        esac

    return 0
}
complete -F _artisan php
@barokurniawan
Copy link

Thanks man

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment