go modulesに移行したらvscodeがまだ微妙だった
今やってるやつで dep から go modules にしたらvscodeの対応がイマイチだったのでメモ。 ついでにlanguage-serverの対応もする。
現状がここにまとまってる。 github.com
やったこと
- goenv使っててvscodeで使ってたgoが古かったのでgoroot設定してgoenvで使ってるやつに直した
- ms-vscode.goが0.8.0以上か確認
- Go: Install/Update Tools から gocode-gomod と godef-gomod と go-langserver インストール
- langserverを入れる。go getでインストールできなかったのでcloneしてgo install GitHub - saibing/bingo: Bingo is a Go language server that speaks Language Server Protocol.
- vscodeに以下の設定を入れる
"go.useLanguageServer": true, "go.alternateTools": { "go-langserver": "bingo" }, "go.languageServerExperimentalFeatures": { "format": false, "autoComplete": true, "rename": true, "goToDefinition": true, "hover": true, "signatureHelp": true, "goToTypeDefinition": true, "goToImplementation": true, "documentSymbols": true, "workspaceSymbols": true, "findReferences": true }
- vscodeを再起動する
goのversion切り替えツール使ってるとvscodeでどのversion使われるかでハマりがち。