gocode
は、 Go 言語のプログラミング支援ツール。主にコード補完のためにエディタと連携して使われた。
歴史的経緯があり、 gocode
には主要な fork が三つ存在する。
- https://github.com/nsf/gocode
- https://github.com/mdempsky/gocode
- https://github.com/stamblerre/gocode
初代である nsf/gocode
は非常に普及したようで、今でも gocode
と連携するツールのドキュメントには
$ go get -u github.com/nsf/gocode
という手順が載っていたりする。
しかし、 mattn さんのブログ記事 で詳しく解説されているように、 nsf/gocode
は開発を停止した。
その後、 mdempsky/gocode
という fork を経て、 Go Modules をサポートした stamblerre/gocode
が登場した。現在はこの stamblerre/gocode
が、最も「使える」 gocode
の実装であるといえそうだ。
注意点として、 mdempsky/gocode
にせよ stamblerre/gocode
にせよ、開発は活発ではなく、メンテナンスモードであると宣言している。 Go 言語のコード補完は Language Server Protocol (LSP) を用いた gopls へと移行が進んでおり、今後は gocode
ではなく gopls
の利用が推奨される。
とはいえ、全ての開発支援ツールが gopls
に移行済みというわけではない。いまだ gocode
に依存しているツールも存在する(go-eldoc など)。そのようなツールのために gocode
をインストールする必要がある場合は、 stamblerre/gocode
を選ぶのが良さそうだ。
…という経緯を、 go-eldoc が動かない理由を調べる過程で知り、 go-eldoc に Pull Request を送った。