Here is how to configure LSP (language server protocol) for Go development in Sublime Text.
Prerequisites
- go
- gopls
- gotools (gofmt, goimports...)
Packages
- sublimelsp/LSP
LSP settings
Open LSP Settings, then paste the below one
// for MacOS
{
"clients":
{
"gopls":
{
"command": [
"<path_to>/go/bin/gopls",
"-v",
"-rpc.trace",
"-logfile=<path_to>/gopls.log"
],
"enabled": true,
"env": {
"PATH": "<echo $PATH in terminal then paste its value here>"
},
"scopes":["source.go"],
"syntaxes": ["Packages/Go/Go.sublime-syntax"],
"settings": {
"gopls.usePlaceholders": true,
"gopls.completeUnimported": true,
},
"languageId": "go"
}
}
}
// for Windows
{
"clients":
{
"gopls":
{
"command": [
"<path_to>\\bin\\gopls.EXE",
"-v",
"-rpc.trace",
"-logfile=<path_to>\\gopls.log"
],
"enabled": true,
"scopes":["source.go"],
"syntaxes": ["Packages/Go/Go.sublime-syntax"],
"settings": {
"gopls.usePlaceholders": true,
"gopls.completeUnimported": true,
},
"languageId": "go"
},
}
}
LSP Key Binding
Search LSP Key Binding then paste the below value into the field
[
// Go To Definition
{
"command": "lsp_symbol_definition",
"args": {
"side_by_side": false
},
"keys": [
"ctrl+d"
],
"context": [
{
"key": "lsp.session_with_capability",
"operator": "equal",
"operand": "definitionProvider"
},
{
"key": "auto_complete_visible",
"operator": "equal",
"operand": false
}
]
},
]
Known Issues
- Auto-format on macOS doesn't work but works well on Windows
=====
Updated: This package is now working well with simple set up. https://packagecontrol.io/packages/LSP-gopls
Gofumpt for auto-format also works: https://github.com/mvdan/gofumpt#sublime-text
Top comments (0)