IDE大好きなのでIDE使って開発します!!
Visual Studio CodeはわりとGoが書きやすい気がするので使ってます。
やること
- GOPATHの設定
- Visual Studio Codeの設定
Goのインストール
GoはHomebrewでサクッとインストール
$ brew install go
バージョンは1.9.3
$ go version
go version go1.9.3 darwin/amd6
GOPATHの設定
GOPATHはGoのワークスペースの場所指す環境変数です。
GOPATHに設定するためのディレクトリを作る
Goをインストールしたパス以外なら、ユーザーに書き込み権限があれば場所はどこでもいい。
名前もなんでもいいので空のディレクトリを作成する。
$ mkdir ~/go
GOPATHを環境変数に設定
$GOPATH/bin
はGoのツール使うのに必要なのでパス通しておく
$ vi ~/.bash_profile
# golang
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH
書いたらリロード
$ source ~/.bash_profile
GOPATHに作業ディレクトリを作る
Goのコードはワークスペース内(GOPATH)で開発する必要があります。
大体GitHubを使って開発すると思うので、それを想定した構造にします。
GOPATHのsrc配下に以下のようなディレクトリを作成します。
※my_user
とかmy_repo
の場所は自分のリポジトリに合わせて変える。
$ mkdir -p ~/go/src/github.com/my_user/my_repo
Visual Studio Code
Visual Studio Code
ぱっとダウンロード、ぱっとインストール
Goの拡張機能をインストール
左のアクティビティバーからGoを検索してインストール
この顔が目印です
開発に必要な外部ライブラリをインストール
作業ディレクトリに適当なgoファイルを作成します
$ touch ~/go/src/github.com/my_user/my_repo/main.go
Visual Studio Codeを開いて先程GOPATHに作成したディレクトリを開きます
touchしたmain.goが現れたらダブルクリック!!
通常は自分で必要なライブラリをgo get
してきますが、
Visual Studio CodeでGoのファイルを開くと以下の通知がでてくるので
「Install All」を押せば必要なライブラリがインストールされるので楽です!!
コンソールの出力タブにはインストールしたライブラリが表示されます!!
Installing 9 tools at /Users/sakuraba/go/bin
gocode
gopkgs
go-outline
go-symbols
guru
gorename
godef
goreturns
golint
Installing github.com/nsf/gocode SUCCEEDED
Installing github.com/uudashr/gopkgs/cmd/gopkgs SUCCEEDED
Installing github.com/ramya-rao-a/go-outline SUCCEEDED
Installing github.com/acroca/go-symbols SUCCEEDED
Installing golang.org/x/tools/cmd/guru SUCCEEDED
Installing golang.org/x/tools/cmd/gorename SUCCEEDED
Installing github.com/rogpeppe/godef SUCCEEDED
Installing sourcegraph.com/sqs/goreturns SUCCEEDED
Installing github.com/golang/lint/golint SUCCEEDED
All tools successfully installed. You're ready to Go :).
ここでインストールされたライブラリたちは
GOPATHで指定したディレクトリ配下にインストールされています
$ ls -la ~/go/bin/
total 107032
drwxr-xr-x 11 sakuraba staff 352 2 9 21:59 .
drwxr-xr-x 5 sakuraba staff 160 2 9 21:54 ..
-rwxr-xr-x 1 sakuraba staff 3875184 2 9 21:54 go-outline
-rwxr-xr-x 1 sakuraba staff 3689776 2 9 21:54 go-symbols
-rwxr-xr-x 1 sakuraba staff 10555348 2 9 21:54 gocode
-rwxr-xr-x 1 sakuraba staff 5597216 2 9 21:55 godef
-rwxr-xr-x 1 sakuraba staff 5292736 2 9 21:59 golint
-rwxr-xr-x 1 sakuraba staff 4448064 2 9 21:54 gopkgs
-rwxr-xr-x 1 sakuraba staff 5551424 2 9 21:54 gorename
-rwxr-xr-x 1 sakuraba staff 6600752 2 9 21:59 goreturns
-rwxr-xr-x 1 sakuraba staff 8128320 2 9 21:54 guru
ユーザー設定
細かいのは個人の好みだと思うので軽くMy設定を書いてみる。
個人的に黒い画面でコード書くのは好きじゃないので、IDEの見た目は白い感じにしちゃいます!
{
// ミニマップを表示するかどうかを制御します
"editor.minimap.enabled": false,
// エディターで空白文字を表示する方法を制御します。'none'、'boundary' および 'all' が使用可能です。'boundary' オプションでは、単語間の単一スペースは表示されません。
"editor.renderWhitespace": "all",
// エディターで制御文字を表示する必要があるかどうかを制御します
"editor.renderControlCharacters": true,
// エディターがリンクを検出してクリック可能な状態にするかどうかを制御します
"editor.links": false,
// 有効にすると、ファイルの保存時に末尾の空白をトリミングします。
"files.trimTrailingWhitespace": true,
// 有効にすると、ファイルの保存時に最新の行を末尾に挿入します。
"files.insertFinalNewline": true,
// Include unimported packages in auto-complete suggestions.
"go.autocompleteUnimportedPackages": true,
// ワークベンチの色設定
"workbench.colorTheme": "Default Light+"
}
これでVisual Studio CodeでGoの開発を行う準備はできました!!
動かす
こんな感じで補完されます。
サンプルプログラム
こんな構造で
$ tree
.
├── main.go
└── sample
└── sample.go
こんなプログラムを動かしてみました
package main
import (
"fmt"
"github.com/my_account/my_repo/sample"
)
func main() {
fmt.Print(sample.Hello())
}
package sample
// Hello ハロー
func Hello() string {
return "Hello World!!"
}
ハローワールド!!
$ go run main.go
Hello World!!