Fig

zshの補完機能からからFigへ

最近Figを試している。これはターミナル上の入力をいい感じに補完してくれるツールで、さまざまなシェルやターミナルのソフトウェアをサポートしている。

これまではzshの補完機能を利用していたけど、開発環境の見直しに伴ってFigに切り替えてみた。インストールとセットアップをしただけで、基本的なLinuxのコマンド以外にもgit、docker、bundle、npmなどよく使うコマンドの補完が自動的に有効になった。

補完設定の追加

Figは補完機能を簡単に追加できるようになっている。自分は日頃からnaoty/todoという自分用のTODO管理コマンドを使っており、シェルで補完できるようにしたいと思っていた。

詳細な手順はドキュメントにある通りだけど、補完設定の開発環境がかなり充実していて、TypeScriptで必要な設定を型としてチェックしていたり、規約をeslintでチェックしていたり、開発用サーバーからすぐに動作確認できたりするので、体験がいい。

おかげで、naoty/todoの補完が簡単に実装できてしまった。

completion
サブコマンドが補完される様子

かなり惜しいポイントとして、補完の候補となる引数のリストを生成する際に任意のコマンドの標準出力を利用するのだけど、そのコマンド実行が環境変数をうまく反映していなかったり、標準エラー出力を補完設定側から参照できないため、デバッグがやりにくいという問題がある。なので、本当は引数の候補もいい感じに補完できるようにしたいのだけど、そこまでは至っていない。