vscode x asdf x Go の時の No preset version installed for command gopls

ひさしぶりに使うPCで Go linter が効かなくて困った。

No preset version installed for command gopls vscode

language server の gopls が起動しない模様。

Go to output で出力を見ると、↑のエラーメッセージが出ていた。

.tool-versions ファイルは project root に存在し、対応するバージョンの Go も asdf で install されている。 PATH も通っている。

一応 rc ファイルを確認すると、手動で /usr/go/bin にPATH を通している記述があったので、念のため消しておいた。 asdf reshim golang を忘れなければ、go install した ツールが使えないことはないはずだから。

それでも↑のエラーが消えなかった。

エラーメッセージに Go 1.20 への言及があったので、1.20 (今は 1.21 ) はどこから持ってきているのかと思い、 go.mod をみたら、 1.20 になっていた。

go mod tidy -go=1.20

を実行して解決。