見出し画像

GoDocをプレビュー&曖昧検索するCLIを作ってみた

自分は、Go言語で開発していると、利用しているパッケージに含まれる関数の仕様を忘れたり、「こんな感じの関数があった気が…」みたいなことがよくある。そのため、GoDocを確認する頻度が高い。その際に一般的な確認方法としては、以下が存在する。

・`go doc` コマンドを利用して確認する
http://godoc.org にアクセスして確認する

特定の関数の仕様を確認したい場合は、以下のようにコマンドを叩けばすぐに確認できる。

$ go doc http.Serve

しかし、「こういう機能の関数あったよなぁ…」という状態で目的の関数を探し出すのはコマンドでは難しい。(関数名がわからないので直接検索しようがない)

そういうときは、Webへアクセスして確認しているのだが、いちいちブラウザを開いて検索しにいくのはめんどくさい…
可能なら、ターミナル上でパパっと検索してしまいたい。

というわけで、ターミナル上で対象のパッケージから目的の関数を探し出し仕様を確認するためのコマンド(エイリアス)を書いた。

作成したCLI

動作は以下のような感じ。カーソルがあたっている関数などのドキュメントをプレビューしながら、あいまい検索で目的の関数を探し出すことができる。
※以下のデモだとコマンド結果の返りが遅く感じるが、実際にはローカル処理なのですぐ結果が返ってくる。(GIF化した際に遅くなった)

画像1

コマンド内部にfzfという有名なツールを用いている。これにより、インタラクティブにGoDoc内を曖昧検索して目的の関数を見つけ出すことができる。

また、ターミナルで見づらいと感じた際には、仕様を確認したい対象を選択している状態で、`Ctrl - o`をタイプすることにより、Webサイトに遷移する機能も持たせた。もし、ターミナルだと確認しづらいなどあったら、Webサイト上で確認できるようになっている。

これのおかげで、いちいちブラウザを開くことがなくなった。ターミナル上ですべて完結するのはとても気持ちがいい。

おわりに

普段、fzfなどの曖昧検索するツールはパイプに噛ましてコマンドの出力結果を楽に検索するぐらいにしか使っていなかったが、いろんな機能がありカスタムが容易に可能であることを知ることができた。(作り出すまで、ショートカットキーを設定できるなんて知らなかった)

fzfは、まだまだおもしろい使い方がありそうなので、思いつき次第今回のようなツール作っていきたいなと思う。

この記事が気に入ったらサポートをしてみませんか?