This module adds Go support, with optional (but recommended) LSP support via gopls.
- Code completion (
gocode
) - Documentation lookup (
godoc
) - Eldoc support (
go-eldoc
) - REPL (
gore
) - Syntax-checking (
flycheck
) - Auto-formatting on save (
gofmt
) - Code navigation & refactoring (
go-guru
) - File templates
- Snippets
- Generate testing code (
go-gen-test
) - Code checking (
flycheck-golangci-lint
)
+lsp
Enables integration for the gopls LSP server. It is highly recommended you use this, as the non-LSP experience is deprecated (and poor).
- go-mode
- go-eldoc
- go-guru
- gorepl-mode
- go-tag
- company-go*
DEPRECATED
- go-gen-test
- flycheck-golangci-lint (if
:checkers syntax
is enabled)
To get started with Go, you need the go
tool:
brew install go
sudo pacman -S go
sudo zypper install go
This module requires a valid GOPATH
, and the following Go packages:
gocode
(for code completion & eldoc support)godoc
(for documentation lookup)gorename
(for extra refactoring commands)gore
(for the REPL)guru
(for code navigation & refactoring commands)goimports
(optional: for auto-formatting code on save & fixing imports)gotests
(for generate test code)gomodifytags
(for manipulating tags)
export GOPATH=~/work/go
go get -u github.com/motemen/gore/cmd/gore
go get -u github.com/stamblerre/gocode
go get -u golang.org/x/tools/cmd/godoc
go get -u golang.org/x/tools/cmd/goimports
go get -u golang.org/x/tools/cmd/gorename
go get -u golang.org/x/tools/cmd/guru
go get -u github.com/cweill/gotests/...
go get -u github.com/fatih/gomodifytags
golangci-lint
(optional: for flycheck to integrate golangci-lint results) it is recommended to not use go get to install this one, check the documentation.