在 VS Code 中使用 gopls

簡介

我一直是用 VS Code 作爲 Go 語言的 IDE,使用的是官方的 Go 擴展,
但在使用過程中發現有時候代碼提示不夠智能, 或者說基本沒有提示.

Go 擴展默認是使用大量的 Go 工具來提供各種功能的,
每個工具提供某個方面的能力, 比如代碼提示是依靠 gocode 的.

不過微軟在開發 VS Code 過程中, 定義一種協議, 語言服務器協議,
Language Server Protocol.

這可是個好東西, 如果你需要開發編輯器或 IDE,
就不需要再爲每種語言實現諸如自動完成, 代碼提示等功能了,
直接利用 語言服務器協議 就行了.

gopls 就是官方的語言服務器, 當前處於 alpha 狀態.

安裝並設置 gopls

安裝方式一

打開 VS Code 的設置, 搜索 go.useLanguageServe, 並勾選上.
默認情況下, Go 擴展會提示你安裝 gopls.

如果長時間安裝不上, 可以嘗試手動安裝,
官方安裝指南.

安裝方式二

另外也有可能是網絡的問題, 直接去 https://github.com/golang/too...
下載, 然後使用 go isntall github.com/golang/tools/cmd/gopls 安裝.

安裝方式三

網絡好, 或者設置 goproxy 代理後, 可以直接手動安裝 gopls, 官方提示不要使用 -u.

go get golang.org/x/tools/gopls@latest

配置

裝完之後, 添加如下的配置, 如果使用第一種安裝方式, 那麼第一行已經存在了:

"go.useLanguageServer": true,
"[go]": {
    "editor.snippetSuggestions": "none",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.organizeImports": true
    }
},
"gopls": {
    "usePlaceholders": true, // add parameter placeholders when completing a function
    "wantCompletionDocumentation": true // for documentation in completion items
},
"files.eol": "\n", // formatting only supports LF line endings

如果你需要在不同的編輯器中使用 gopls, 請參考官方安裝文檔中的設置.

目前支持以下的編輯器:

  • VSCode
  • Vim / Neovim
  • Emacs
  • Acme
  • Sublime Text

總結

牛逼, 終於不用再爲殘疾的代碼補全而苦惱了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章