Google App Engine で始める Go 実践入門 Part 5 【Visual Studio Code】

連載を通して簡単なブログアプリを作成しつつ Go/GAE について学んでいきます。
今回は Visual Studio Code についての説明です。

- [Part 1. 『GO / Cloud SDK のインストール』](https://qiita.com/rema424/items/743bc508ef70cd980e17)
- [Part 2. 『GOPATH』](https://qiita.com/rema424/items/009f6345eb75a80bf369)
- [Part 3. 『プロジェクトの作成』](https://qiita.com/rema424/items/19b946c311f3b3b3f953)
- [Part 4. 『ディレクトリ構成』](https://qiita.com/rema424/items/1a6096c77b90ea350a26)
- [Part 5. 『Visual Studio Code』](https://qiita.com/rema424/items/b2ecdd2c7ec7fc1b0a7c) ← イマココ
- [Part 6. 『Hello World』](https://qiita.com/rema424/items/66ce1b02d7de588e63cf)
- [Part 7. 『リモートデバッグ』](https://qiita.com/rema424/items/996aaf0ab69670224af4)
- [Part 8. 『デプロイ』](https://qiita.com/rema424/items/dbf851908dbfc95f9b6f)
- [Part 9. 『Makefile』](https://qiita.com/rema424/items/3a099dfb023aa06086f5)
- [Part 10. 『Circle CI』](https://qiita.com/rema424/items/4dcb37346cecc544dfaa)
- Part 11. 『Dependency Injection』
- Part 12. 『ローカルDB with Docker』
- Part 13. 『gorm』
- Part 14. 『Cloud SQL』
- Part 15. 『Cloud SQL Proxy』
- Part 16. 『HTML』
- Part 17. 『CSS/JS』
- Part 18. 『Google Analytics』
- Part 19. 『Google Search Console』
- Part 20. 『A/B テスト』
- Part 21. 『ユーザーの作成』
- Part 22. 『Firebase Auth』
- Part 23. 『記事の作成』
- Part 24. 『コメントの作成』
- Part 25. 『ページネーション』

# Visual Studio Code で Go の開発準備

Visual Studio Code (以下 VS Code) に Go の拡張機能を導入することによってコーディングの生産性を上げることができます。

Go の拡張機能は次の手順で導入ができます。

```
[VS Code を起動] > [Command + P] > [ext install ms-vscode.go] > [Enter]
```

次に Linter や Debugger などのツールを導入していきます。
通常は `go get` コマンドでインストールするのですが、Go 拡張機能を使うと簡単にツール一式をインストールすることが可能です。

```
[VS Code を起動] > [F1] > [>Go: Install/Update Tools] > [チェックボックス全てにチェック] > [OK]
```

インストールが完了すると、これらツールが GOPATH 配下にインストールされたことが分かります。
PATH に `$GOPATH/bin` を追加しているので、これらコマンドはターミナルから呼び出すことができます。

```
$GOPATH
  ├── bin
  │     ├── impl
  │     ├── guru
  │     ├── gotests
  │     ├── goreturns
  │     ├── gorename
  │     ├── goplay
  │     ├── gopkgs
  │     ├── gomodifytags
  │     ├── golint
  │     ├── godef
  │     ├── gocode-gomod
  │     ├── gocode
  │     ├── go-symbols
  │     ├── go-outline
  │     ├── fillstruct
  │     └── dlv
  ├── pkg
  │     └── darwin_amd64
  └── src
        ├── github.com
        │     ├── uudashr
        │     ├── stamblerre
        │     ├── sqs
        │     ├── skratchdot
        │     ├── rogpeppe
        │     ├── rema424
        │     ├── ramya-rao-a
        │     ├── pkg
        │     ├── mdempsky
        │     ├── karrick
        │     ├── josharian
        │     ├── haya14busa
        │     ├── golang
        │     ├── go-delve
        │     ├── fatih
        │     ├── davidrjenni
        │     ├── cweill
        │     └── acroca
        └── golang.org
              └── x
```

最後に VS Code の設定ファイルを作り、拡張機能をカスタマイズします。
Go 拡張機能では Format ツールがデフォルトでは `goreturns` となっていますが、今後導入するパッケージ管理ツール `dep` との相性を考えて `gofmt` に変更します。

まずは設定ファイルをプロジェクトディレクトリの中に作ります。

```sh
# ディレクトリ移動
cd $GOPATH/src/rema424/go-gae-blog-app-example

# ディレクトリ作成
mkdir .vscode

# 設定ファイル作成
touch .vscode/settings.json
```

ファイルが作成できたら、次の内容を書き込んで完了です。

```json:.vscode/settings.json
{
    "go.formatTool": "gofmt",
    "editor.formatOnSave": true
}
```

# おわりに

次回のテーマは『[Hello World](https://qiita.com/rema424/items/66ce1b02d7de588e63cf)』です。

よかったら Twitter フォローしてね。[@_rema424](https://twitter.com/_rema424)