はい!今やってます!

Work Pertly, Live Idly

Macのローカル環境にVisual Studio CodeでGoの開発環境を構築する

phpやhack、go、ruby on rails等ちょくちょく触れる機会があるのですが、
Java出身者としては、eclipseで得たユーザー体験が忘れられず、
goの開発環境を真面目に作ってみることにしました。

各バージョンについて

Mac : OSX(10.11.6 ElCapitan)
Go : go1.8
VSCode : 1.12.1

VSCodeをダウンロード

以下のサイトから最新版のVisual Studio Codeをダウンロードしてインストールします。

Visual Studio Code - Code Editing. Redefined

Atom, intelliJを触っていましたが、どちらもグッと来ず。
今回はVisualStudioCodeで環境構築します。

gvmの設定

ローカルにGoをインストールしていない人はGoをインストールします。
自由にgoのバージョンを切り替えれるので今回はgvmを利用します。
brewでインストール済みの人でも全く問題無いと思います。

gvmのインストール

インストールは以下のコマンド一発です。

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

完了したら以下のコマンドの実行をもとめられるので実行しましょう。

source $HOME/.gvm/scripts/gvm

.bash_profileを編集して、ターミナル起動時にも実行されるようにします。

vi ~/.bash_profile

#以下の一行を追加
[[ -s ~/.gvm/scripts/gvm ]] && . ~/.gvm/scripts/gvm

goのインストール

gvmのインストールが完了したら、gvmを使ってgo言語の最新版をインストールします。(現在は1.8が最新)

gvm install go1.4
gvm use go1.4
gvm install go1.8
gvm use go1.8

※僕のローカルでは普通にインストールを出来ないという現象が発生したので、バイナリオプション-Bを設定してバイナリからインストールするようにしました。古いバージョンのgoが入っていないからインストール出来ないという旨のエラーが出る場合は、古いバージョンから順番にインストールしていきましょう。
追記 : どうやらSierra以降、go1.4等のコンパイルに失敗するようになってしまっているようです...

デフォルトで利用するgoの設定

このままではデフォルトで利用するgoのバージョンが設定されないようなので、自分は.bash_profileに以下の設定を追記しています。

vi ~/.bash_profile

#以下の一行を追記
gvm use go1.8

VSCodeの設定

次にVisual Studio Codeの設定をしていきます。

拡張機能のインストール

画像のようなネズミが目印の拡張機能をインストール、画面の支持に従ってVSCodeを再起動して下さい。

f:id:yuji_ueda:20170505102454p:plain

Go - Visual Studio Marketplace

GOPATH, GOROOTの設定を確認

正常に動いていれば特に必要無い作業ですが、 僕の場合はGOPATH, GOROOTが読み込まれず画像のようなエラーが出続けて少しハマったので、記載しておきます。

f:id:yuji_ueda:20170505103024p:plain ※Cannot find "go" binary. Update PATH or GOROOT appropriately.というエラーが表示され続けた。

ヘルプ→開発者ツールの切り替えからConsoleを立ち上げます。 以下のそれぞれを入力して、値が正常に取れれば大丈夫です。

process.env['GOROOT']
process.env['GOPATH']

正常に値が取れる場合は以下のような表示になります。

f:id:yuji_ueda:20170505102954p:plain

GOROOT, GOPATHがそれぞれ設定されているのに、値が正常に取れない場合は1番から順に試してみましょう。

1.VSCodeを再起動
2.VSCodeをアップデート
3.Macを再起動
4.VSCodeをインストールしなおす
  - VSCodeをアンインストール
  - sudo rm -r /usr/share/code
  - VSCodeを再度インストール

関連パッケージのダウンロード(1)

次に関連パッケージをダウンロードしていきます。 適当な.goファイルを作成して、作業を始めるとサジェスションが表示されるので、サジェストされるままにinstallボタンをクリックしていきます。

f:id:yuji_ueda:20170505104010p:plain ※各パッケージに興味のない人はInstall Allでいいと思います。

ダウンロードしたパッケージの確認

そんな感じで5つ程パーケージがダウンロードされると思います。

github.com/tpng/gopkgs
github.com/nsf/gocode
github.com/rogpeppe/godef
github.com/golang/lint/golint
sourcegraph.com/sqs/goreturns

インストールされたパッケージの一覧は以下のコマンドで確認可能です。

ls $GOPATH/bin

関連パッケージのダウンロード(2)

更に必要なパッケージのダウンロードを行います。 エディタ右下のAnalysis Tool Missingと表示される部分をクリックでダウンロードできます。 f:id:yuji_ueda:20170505104908p:plain すると以下のパッケージも追加でダウンロードされます。

go-outline
go-symbols
guru
gorename
gomodifytags
godef
goreturns
golint
gotests

関連パッケージのダウンロード(3)

デバグ用のパッケージDelveをダウンロードしておくと、F5でデバッグが可能です。

go get -u -v github.com/derekparker/delve/cmd/dlv

統合ターミナルの表示

完全に寄り道ですが、表示→統合ターミナルから統合ターミナルを表示しておくと、実行されるコマンドと結果が見れたりします。 f:id:yuji_ueda:20170505104137p:plain

f:id:yuji_ueda:20170505104236p:plain

以上で基本的な環境構築手順は完了です。 これでcommandボタンを押しながらメソッド名をクリックするとメソッド定義にジャンプできたりします。