Overview
go get
ではなく、パッケージ管理ツール( dep
)でインストールしたパッケージを VScode 上で補完が効くようすることを目指します。(ここ上手な日本語が見当たりませんでした。)
Introduction
go get
を用いてインストールされたパッケージは GOPATH 配下に配置されます。
しかしながら go get
を用いてインストールされたパッケージは そのPCにグローバルに インストールされることになるため、共同開発においては環境差分を生む要因となってしまします。
そこで用いられるのがパッケージ管理ツールです。
依存パッケージをプロジェクトごとにファイルで管理することにより、環境の再構築を容易に実現します。
Go のパッケージ管理ツールは複数存在しますが、本記事では Go 公式のパッケージ管理ツールである dep
に焦点を当てます。
(dep
も Go 公式ですが、今後は Go module
がデファクトスタンダードになるという話もちらほら)
このようなパッケージ管理ツールを用いる際に困ったことがひとつ。
それは、パッケージを GOPATH
配下にインストールする訳ではないので、そのままでは IDE の補完機能の対象にならないことです。
今回は VScode
の場合のこの問題への対処法を探ってみました。
Environment
- macOS, Mojave v10.14.2
- Visual Studio Code, v1.30.1
- 拡張機能:Go, v0.8.0
- Go, v1.11.2
How to
さて、それでは実際に dep
でインストールしたパッケージに VScode
の補完が効くように作業していきます。
作業自体は一瞬で終わります。
作業内容を一言で表すと、「 GOPATH
を IDE に対して明示的に指定する。」です。
設定の GOPATH
オプションを編集します。
.vscode/setting.json
に
"go.gopath": "${workspaceFolder}"
を追加して保存したら、一旦 VScode を閉じて起動し直します。
起動できたら Go のファイル (画像の例では main.go
) を選択してアクティブにします。
すると、プロジェクトルート配下に pkg
ディレクトリが作成され、ここに dep
でインストール済みのパッケージが再配置されます。
ここでパスの解決が行われ、IDE の補完が効くようになります。
画像の問題タブを見ても、設定前は検出されていた問題が検出されなくなっています。
おわり。