LoginSignup
2
3

More than 3 years have passed since last update.

Go 再入門 - VSCode で環境構築

Last updated at Posted at 2020-08-24

概要

半年ほど前から Go 言語の勉強を始めたのだが、何かと忙しく放置気味になってしまった。余裕ができたので久しぶりに VSCode を開いたものの、PC 交換時に環境移行を怠ってしまい、再び環境構築から Hello, world までやり直したのでその備忘録。今回は Mac での作業だが、Windows でもパスなどを随時読み替えれば OK。

前提条件

  • macOS High Sierra 10.13.6
  • bash 3.2.57(1)-release
  • Homebrew 2.4.13
  • VSCode 1.48.1

インストール

Homebrew 経由でインストール。

brew install go

バージョンは記事の執筆時点で 1.15

go version
go version go1.15 darwin/amd64

一応 Windows でもパッケージマネージャの Scoop 経由でインストールが可能。

PATH 関連

GOPATH

ソースコードや実行ファイル、コンパイル済みのパッケージファイルなどを保存するためのディレクトリを指定する。デフォルトでは $HOME/go となってるので、特にこだわりがなければそのままホーム直下を指定。

echo 'export GOPATH=$HOME/go' >> ~/.bash_profile

GOROOT

SDK のディレクトリを指定する。Homebrew でインストールした場合は brew upgrade でのバージョン更新が反映されないため、エイリアスへのパスを指定する。

echo 'export GOROOT=/usr/local/opt/go/libexec' >> ~/.bash_profile

VSCode

拡張機能

Marketplace から拡張機能をインストールする。以前は Microsoft のリポジトリで管理されていたが、Go のプロジェクトへ移行されたらしい。『Go』で検索すれば恐らく 1 番上に表示されるはず。

img_1

ツール群

拡張機能のインストール後 ⌘+⇧+P でコマンドパレットを呼び出し、開発に必要なツール群をインストールする。

Go: Install/Update Tools

ツールは個別に選択が可能だが、取り敢えず全てにチェックして OK を押し、インストールを完了させる。

img_2

Hello, world

動作確認のためにお決まりのアレをやる。

mkdir -p $GOPATH/src/golang/hello
cd $GOPATH/src/golang/hello
touch hello.go

GOPATH 配下で新規にプロジェクトを作成。パスは適当。GitHub 上でパッケージを公開することから github.com/username/repository にすることが多い。hello.go という名前の空ファイルを生成したら、VSCode でコーディングしていく。

package main

import "fmt"

func main() {
    fmt.Println("Hello, world")
}

⌃+⇧+^ でターミナルを呼び出して実行。

go run hello.go
Hello, world // 実行結果

問題なく Hello, world 出来れば一先ず環境構築は終了。

gopls

機能

gopls (pronounced: "go please") is the official language server for the Go language.

ざっくり言えば IDE で必要なコード補完や定義へのジャンプ、フォーマットなどをまるっと提供する機能のこと。Microsoft が定義した Language Server Protocol (LSP) に沿って実装されている。gopls は Go 公式の Language Server。現段階でサポートされるのは以下の通り。

  • Autocompletion (コードの自動補完)
  • Jump to definition (定義へのジャンプ)
  • Signature help (ヒントの表示)
  • Hover (カーソル位置の情報の表示)
  • Document symbols (シンボル一覧の表示)
  • References (参照へのジャンプ)
  • Rename (命名変更)

導入

ここに書いてある内容を settings.json に追加する。

"go.useLanguageServer": true,
"[go]": {
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.organizeImports": true,
    },
    "editor.snippetSuggestions": "none",
},
"[go.mod]": {
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.organizeImports": true,
    },
},
"gopls": {
    "usePlaceholders": true,
    "staticcheck": false,
}

保存するとインストールを促す通知が表示されるので、『Install』をクリックすれば OK。

img_3

参考

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3