Help us understand the problem. What is going on with this article?

Go + Visual Studio Codeの開発環境を作る

More than 1 year has passed since last update.

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を検索してインストール

スクリーンショット 2018-02-09 21.46.02.png

この顔が目印です

スクリーンショット 2018-02-09 21.56.55.png

開発に必要な外部ライブラリをインストール

作業ディレクトリに適当なgoファイルを作成します

$ touch ~/go/src/github.com/my_user/my_repo/main.go

Visual Studio Codeを開いて先程GOPATHに作成したディレクトリを開きます

スクリーンショット 2018-02-09 22.10.48.png

touchしたmain.goが現れたらダブルクリック!!

スクリーンショット 2018-02-09 22.32.27.png

通常は自分で必要なライブラリをgo getしてきますが、
Visual Studio CodeでGoのファイルを開くと以下の通知がでてくるので
「Install All」を押せば必要なライブラリがインストールされるので楽です!!

スクリーンショット 2018-02-09 21.53.35.png

コンソールの出力タブにはインストールしたライブラリが表示されます!!

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の開発を行う準備はできました!!

動かす

こんな感じで補完されます。

スクリーンショット 2018-02-09 23.10.04.png

サンプルプログラム

こんな構造で

$ tree
.
├── main.go
└── sample
    └── sample.go

こんなプログラムを動かしてみました

main.go
package main

import (
    "fmt"

    "github.com/my_account/my_repo/sample"
)

func main() {
    fmt.Print(sample.Hello())
}
sample.go
package sample

// Hello ハロー
func Hello() string {
    return "Hello World!!"
}

ハローワールド!!

$ go run main.go 
Hello World!!
masakurapa
自分の作業メモ的なことを書く感じ。 PHP/Goで開発をしています。 家ではAWS/Svelte3/Goを触りながら色々作って遊んでます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした