Vim で Go を書く環境を整えた
最近「Go言語でつくるインタプリタ」本を写経しています。Go はチュートリアルをやったくらいの初心者なもんで、並行して開発環境も作りながら進めています。
なにはともあれ LSP の設定から
いま開発環境作るなら、LSP ですよね。自分は CoC を使っています。だから :CocInstall coc-go
して完了!お手軽!と思いきや、なにげにそのままだと動きませんでした。なんということでしょう…。
gopls を入れる
そう、coc-go をインストールしただけでは動かなかったのです。Go 用の Language Server も、別途自分で用意しないといけません。幸いにも、coc-go をインストールしたら gopls をインストールするコマンドが使えるようになります。便利。
:CocCommand go.install.gopls
これ実行するだけで、私の環境だと ~/.config/coc/extensions/coc-go-data/bin/gopls
にインストールされ、無事に LSP 環境が構築できました。
coc-go を使う前は辞書補完のみでしたが、LSP 由来の補完が使えるようになったのですごくコードを書くスピードが速くなりました!
Diagnostics でエラーがすぐわかるのも最高に便利です。ドキュメントも参照できるようになったので、定義元にジャンプできるしテストファイルと実装ファイルを行き来しやすくなったし、LSP 大好きです。
ファイル保存時に go fmt する
Go の場合は go fmt
してないコードはコミットしたくない気持ちになりますよね。coc-settings.json に設定をしておくと、ファイルの保存時に go fmt
してくれるようになるので必須かと思います。
:CocConfig
コマンドで設定値を編集できます。
{
"coc.preferences.formatOnSaveFiletypes": [
"go"
]
}
てな感じで、快適になりました。
Discussion