gopls-lsp
// Go language server (gopls) providing code intelligence, refactoring, and analysis for .go files. Use when working with Go code that needs autocomplete, go-to-definition, find references, error detection, or refactoring support.
$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namegopls-lsp
descriptionGo language server (gopls) providing code intelligence, refactoring, and analysis for .go files. Use when working with Go code that needs autocomplete, go-to-definition, find references, error detection, or refactoring support.
gopls LSP
Go language server integration providing comprehensive code intelligence through gopls (the official Go language server).
Capabilities
- Code intelligence: Autocomplete, go-to-definition, find references
- Error detection: Real-time diagnostics for compilation errors and issues
- Refactoring: Rename symbols, extract function, organize imports
- Analysis: Static analysis, code suggestions, unused code detection
- Supported extensions:
.go
Installation
Install gopls using the Go toolchain:
go install golang.org/x/tools/gopls@latest
Important: Make sure $GOPATH/bin (or $HOME/go/bin) is in your PATH.
Verify installation:
gopls version
Usage
The language server runs automatically in LSP-compatible editors. For manual operations:
Format code
gofmt -w file.go
Run linter
go vet ./...
Build and test
go build ./...
go test ./...
Configuration
Create gopls.yaml in your project or workspace for custom settings:
analyses:
unusedparams: true
shadow: true
completeUnimported: true
staticcheck: true
Or configure via environment:
export GOPLS_CONFIG='{"staticcheck": true, "analyses": {"unusedparams": true}}'
Integration Pattern
When editing Go code:
- gopls provides real-time diagnostics in LSP editors
- Run
go fmtorgofmtto format code - Use
go vetfor additional static analysis - Run tests with
go testbefore committing
Common Go Commands
go mod init <module>- Initialize Go modulego mod tidy- Clean up dependenciesgo get <package>- Add dependencygo build- Compile packagesgo run main.go- Run programgo test- Run testsgo vet- Report suspicious constructs