vscodeでgoの設定をしてlspを動かしてみた
vscodeでgolangの開発環境を構築にあたってgocodeではなくlsp*1を使う設定をやってみて動いてみたのでまとめます
なぜvscodeを使わないのかというのは以下の記事を見たのと、lspすごいという個人的な期待感です
インストール
とりあえずvscodeにvscode-goをインストールします
インストール自体は他の拡張と同じように"go"とかで絞り込むと表示されると思いますので、それをインストールします。
設定
インストールしたら設定は自分の環境だと以下の感じ*2
(setting.jsonからじゃないと設定できないっぽい項目があるのでjsonを編集しました)
"go.gopath": "/home/yuzu/develop", "go.goroot": "/home/yuzu/.goenv/versions/1.11.4", "go.useLanguageServer": true, "go.languageServerExperimentalFeatures": { "format": false, "autoComplete": true, "rename": true, "goToDefinition": true, "hover": true, "signatureHelp": true, "goToTypeDefinition": true, "goToImplementation": true, "documentSymbols": true, "workspaceSymbols": true, "findReferences": true }
設定をしたらctrl + shift + p
等でコマンドパレットを開き「go: Install/Update Tools」を実行し、go-langserver
にチェックを入れてOKを押すとgo-langserverがインストールされます
実行されることを確認する
"autoComplete": true
を設定したので補完されることを確認します。自分は以下のようなコードを書いて、fmt.
をタイプした時にPrintln
が候補として表示されるかで確認できると思います*3
package main import ( "fmt" ) func main() { fmt.Println("Happy Aura") }