Laravelのartisanのzsh補完書いた
サブコマンドの補完はあったんだけど、ちゃんとオプションの補完までしてくれるのがないので自分で書いてみた。zshわからんしcompsysわからんし、そもそもシェルスクリプトさっぱりなので大変苦労したが、まあ使えるものになってきたので公開。
サブコマンド、オプションはもちろん、一部のオプションの値補完できたり、helpの場合には再度サブコマンド補完に出したりと割と頑張ってる。
GitHub - magai/artisan-completion: laravel artisan completion for zsh
使い方
jq使ってるのでそれだけ用意して。opensslも使ってるんだけど多分入ってると思う。で、普通ならzshの補完はオートロードできるんだけど、artisanはphp artisan ...
という形で実行されるという特殊な仕様のためできなかった。
なんというか、このartisanの補完はphpコマンドの補完として実装されていて、php artisan
と続いたとき以外は元のphpコマンドの補完に投げるというややこしい実装になっている。これもまた苦労した……。
source artisan-completion.zsh compdef -d php compdef _artisan php zstyle ':completion::*:php:*' use-cache true
compinitした上で、上のように書けばおけ。zplug使ってる人はzplugで入れてもいいかと。
重いartisanコマンドを叩きまくってるので、キャッシュはほぼ必須。