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

  • 274
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

情報が古いので注意ください。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