以下の内容はhttps://daido.hatenablog.jp/entry/2020/09/17/154228より取得しました。


Go + VSCode でサブディレクトリに go.mod を置くと `could not import ... (no package for import ...)` になる

以下のようなやつ。

f:id:daido1976:20200917154706p:plain

環境

原因

gopls("go.useLanguageServer": true で有効)を使いながら、go.mod をサブディレクトリに置いて、プロジェクトのルートディレクトリから VSCode を開いてたのが原因だった。

解決策

gopls を使いたい場合

go.mod の置いてあるディレクトリまで移動してそこで VSCode を開く。

gopls を使わなくてもよい場合

そもそも "go.useLanguageServer": false にして gopls を使わないようにするという手もあった。(その場合は goimports などの command line tools が使われる、むしろ現在はこっちがデフォルト)

gopls は Go modules を正しく使用するプロジェクトのみを想定しているようだ。(公式の README にちゃんと書いてあった…)

https://github.com/golang/vscode-go#language-server

gopls is recommended for projects that use Go modules.




以上の内容はhttps://daido.hatenablog.jp/entry/2020/09/17/154228より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14