以下のようなやつ。
環境
- Go 1.15.2
- VSCode 1.49.0
原因
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.