Go の開発環境は IntelliJ IDEA + golang plugin がマトモだった

More than 1 year has passed since last update.

情報が古いので注意ください。golang pluginは現在1.0.0のalpha版が出ており、限界がありますがリファクタリング、ブレークポイントともに対応しています。

TL;DR IntelliJ IDEA + golang plugin は現時点で一番マトモだと思いました。

Go のエディタ、今まで Sublime Text 3 の GoSublime でやってきていたのですが、どうもしっくりこない…
趣旨が違うのはわかるのですが、Sublime Text 3 の project の扱いがどうも慣れませんでした。

IDE 厨らしく素直に IDE を使おうと思い立ち、探してみると IntelliJ IDEA には golang plugin あるみたいですね。

導入にあたり少し嵌りどころがありましたので共有まで。

1.IntelliJ IDEA 入れてなかったらインストールする

お値段が高いことで有名な IntelliJ IDEA ですが今は無料エディションがあります。良い時代ですね。

http://www.jetbrains.com/idea/download/

から Community Edition をダウンロードします。

2.golang plugin を入れる

IntelliJ IDEA -> Preferences -> Plugins

に行き、 "golang" と入れて、下記プラグインを入れます

スクリーンショット 2014-09-14 22.27.40.png

Go SDK の場所を聞かれますが、普通にやれば大丈夫です。(以下 /usr/local/go であることを前提に話を進めます)

3.GOPATHGOROOT で嵌るので fix する

GOPATHGOROOT を如何にちゃんと設定していようが、何故か認識してくれないので、下記ページを参考に環境変数を設定し直します。

https://github.com/go-lang-plugin-org/go-lang-idea-plugin/blob/master/Missing%20ENV.md

launchctl setenv GOROOT /usr/local/go
launchctl setenv GOPATH ~/Goprojects 

~/Goprojects は各自 GOPATH を突っ込んでください。

これで IntelliJ 起動時に GOPATH ないとかで怒られなくなります。

4.import が上手く動かないので fix する

GOPATH をきちんと設定していても import が上手く動きません。
import path を上手く認識してくれてないようですね。

多少強引ですが Source path に自前でぶちこみます。

  1. Project tree の External Libraries を右クリックし、Open Library Settings を選択します。
  2. 設定項目に Classpath, Sourcepath とありますので, Sourcepath を開きます
  3. Sourcepath に $GOPATH/src$GOPATH/pkg/darwin_amd64 (Mac の場合) にあたるディレクトリを追加します。追加は下にある + ボタンで。

スクリーンショット 2014-09-14 22.34.12.png

以上によりキチンと動くようになります。

機能紹介

オンタイムの Syntax check

このへんがエディタとは違うところです。
エディタとは違うんだよ!エディタとは!(スミマセン)

スクリーンショット 2014-09-14 22.47.20.png

Go 特有の warning も

使ってない変数はもちろん怒られます。黄色とかじゃなくて赤いのが潔い。

スクリーンショット 2014-09-14 22.48.30.png

受けてない返り値のチェック

まともな開発環境という感じです。

スクリーンショット 2014-09-14 23.17.16.png

型チェック

最高

スクリーンショット 2014-09-14 23.18.17.png

import の補完

スクリーンショット 2014-09-14 22.37.03.png

自動 import

Alt + Enter で import してない package を import してくれます

スクリーンショット 2014-09-14 22.53.40.png

メソッド補完

当たり前ですがメソッド補完があります。GoSublime にもあるみたいですが何故か動きませんでした。

スクリーンショット 2014-09-14 22.39.56.png

リファクタリング(ない)

Not implemented yet!!!!!

スクリーンショット 2014-09-14 22.42.04.png

Breakpoints (ない)

アッハイ

スクリーンショット 2014-09-14 22.57.50.png

gofmt

保存時に自動でしてくれたりはしません(GoSublime はしてくれた)

スクリーンショット 2014-09-14 22.43.27.png

Alt + Enter

IntelliJ 様の Alt + Enter の恩恵を享受することが出来ます

スクリーンショット 2014-09-14 22.45.08.png

ちなみに自動で return type を string にしてくれたりはしませんでした。

まとめ

個人的な感想です。

GoSublime よりは遥かにマシです。マトモに開発出来る環境という感じがします。
Refactoring が未実装であったり、ブレークポイントとか色々足りてないのは多少感じますが…

まあでも、静的解析ちゃんとオンタイムでやってくれるのは、安心感違いますね。

端的に、現時点での Go が扱える開発環境としては一番マトモです。
Xcode とか Android Studio とか RubyMine とか PyCharm とか、あるいは IntelliJ IDEA 自身を使ってきた方は、最も抵抗が少ない開発環境ではないかと思います。

References

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.