Wakotech Blog

ポエム

IntelliJ IDEAでGo言語を書く(golang plugin alpha)

近況

  • 都民になりました。
  • 新宿で働き始めました。

はじめに

go言語の導入については以下の記事等を参考にしてください。GOROOTとGOPATHも設定済みとします。

一度導入した後からの記事なのでこちらでは正常に動作していますが、間違いがあった場合はご指摘いただければと思います。
なお当記事はMac OS Xかつbrewでgoをインストールしている場合の説明となります。設定の差異は少ないと思いますのでご了承ください。

IntelliJ IDEA CEについて

www.jetbrains.com

JetBrains社の開発しているIntelliJ IDEAというIDEの無料(オープンソース)版です。(Android Studioの元。)
無料版とはいえ、JavaScalaAndroid、そしてGo言語等の開発は問題なく行えます。
有料版だと、下位種となるRubyMineやPhpStorm、WebStorm等、他の言語向けIDEの機能をプラグインで追加することができるという違いがあります。
なお学生ライセンスの場合はIntelliJをはじめとした各種IDEが無料で使用できるので非常におすすめです。(こちらから申請できます。)
導入していない方はダウンロード、インストールしておいてください。CE版ならばライセンス登録も必要ありません。

Go language plugin

GitHubリポジトリに正式版(0.9.x系)がありますが、今回は1.0系のアルファ版を使用します。
正式版よりも開発版の方が機能が優れており、設定の手間が少ないので今回はこちらを使用します。
(正式版の記事はいくつかあるので後述の参考リンクをご確認ください。)

導入

  1. アルファ版リポジトリを登録

Pre-release buildsにある通り、最新のアルファ版は専用のリポジトリに公開されているので、そちらを設定します。
プロジェクトを作成する前にConfigure->Plugins->Browse repositories...からリポジトリ設定画面を開きます。
Manage repositoriesから設定ウィンドウを開き、+マークをクリックしてURL入力画面を開きます。
今回はアルファ版ですので、上記リンクにある通り"https://plugins.jetbrains.com/plugins/alpha/5047"を入力し設定を完了します。
するとGoという名前でリポジトリが追加されるのでインストールします。(探しにくいので、カテゴリ絞り込みから入力URLを選択すると早いです。)

  1. Goプロジェクトを作成

Create New Projectから形式一覧にGoが追加されているので、Goを選択します。
f:id:yutaszk23:20150424160624p:plain
SDKを設定する画面になるので追加します。GOROOTが通っていれば自動でGoのあるディレクトリを選択していてくれていますが、違う場合は正しい場所を選択します。
私の場合は>|shell|/usr/local/Cellar/go/1.4/libexec||<となりました。
また、GOPATHが正しく通っていればライブラリについても自動で設定されます。
次にプロジェクト名とディレクトリを指定するのですが、More SettingsからProject formatが設定できるのでこちらを選択します。標準ではディレクトリベースの.ideaになっていますが、ファイルベースの.iprも選択できます。
今回は例として簡単なHello Worldの単一ファイルを実行するので.iprを選択し、Finishします。
プロジェクトを開くとNo file are openとなります。左上のプロジェクト名をダブルクリックするとファイル構造が見えるようになる等、他にもIDEらしいウィンドウが収納されているので、色々試してみてください。

  1. .goファイルの作成

まずはHello Worldするので新たにgoファイルを作成します。
File->New->Go Fileから.go拡張子でファイル名を入力します。KindからSimple Applicationを選ぶとpackage宣言とmain関数の雛形が作られるのでこちらを使います。
f:id:yutaszk23:20150424161843p:plain
main関数の中にHello Worldを行う処理を記述していきます。

func main() {
    fmt.Println("Hello Go World!")
}

importしていなくてもfmtと入力した際に補完候補が現れます。この際に補完から選択すれば自動でimport文が追加されます。補完を使用しなかった場合でもエラー表示と案内が出るので、指示に従いopt+returnで追加されます。
外部ライブラリを使用した場合でもGOPATHの指定位置に存在していれば同様に補完、importされます。
ここで補完が働かなかった場合、ライブラリ位置(GOPATH)の指定がうまくできていないようなので、Project Structure->Librariesから正しいpathを指定する必要があります。
またコードフォーマット機能(cmd+opt+L)を使う事で正しい形式に直してくれます。すばらしい!

  1. Hello Go World!

これでHello Worldを行うファイルは書けたので、実行します。

package main
import "fmt"

func main() {
    fmt.Println("Hello Go World!")
}

IDE右上に見えるRunからではファイルごとに設定をする必要があるので、ファイルを選択してRunします。Run->Run...(shift+ctrl+F10)から現在開いているファイル名を指定してRunします。
下にコンソールが現れHello Worldされれば環境構築は成功です。
ディレクトリベースでファイル分割をする際等には実行方式を設定してのRunを使用することになります。