ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

gb環境下で定義ジャンプができない?

普段はVisualStudioCodeを使ってGolangの開発を行っているのですが
定義へジャンプができないことがありました。

gbを使ってビルドしており、ライブラリなどはプロジェクト直下のvendor/に配置されます。
このvendor内のソースへジャンプできないようです。。。

ググったところ以下の記事を見つけたので、やっていたところ上手くジャンプできるようになりました。
https://github.com/Microsoft/vscode-go/issues/249
https://github.com/Microsoft/vscode-go/issues/650

やったことは、VisualStudioCodeのGopathの指定を見直し、vendorもGopathに追加しました。
やり方としては、[Preferences] - [Settings] - [Extensions] - [Go configurations] - [Gopath]で
[Edit in settings]をクリックします。

設定のためのjsonフォーマットが表示され、右の[USER SETTINGS]か[WORKSPACE SETTINGS]に

"go.gopath": 対象のプロジェクトのパス/vendor"

を追記します。

gbを使っているのが一つのプロジェクトだけなら、プロジェクト毎の設定となる[WORKSPACE SETTINGS]でいいでしょう。
逆にgbを複数のプロジェクトで使っているのなら、ユーザで共通の設定となる[USER SETTINGS]に書けばいいと思います。

この場合はプロジェクトに動的に適用されるよう、以下のように記述します。

"go.gopath": "${workspaceRoot}:${workspaceRoot}/vendor"