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
) (requires doom-module::editor format +onsave) - Code navigation & refactoring (
go-guru
) - File templates
- Snippets
- Generate testing code (
go-gen-test
) - Code checking (
flycheck-golangci-lint
)
This module needs a maintainer. Become a maintainer?
- +lsp
-
Enable LSP support for
go-mode
. Requires doom-module::tools lsp and a langserver (supports gopls). Highly recommended, as the non-LSP experience is deprecated (and poor). - +tree-sitter
- Leverages tree-sitter for better syntax highlighting and structural text editing. Requires doom-module::tools tree-sitter.
- doom-package:company-go if doom-module::completion company (DEPRECATED)
- doom-package:flycheck-golangci-lint if doom-module::checkers syntax
- doom-package:go-eldoc
- doom-package:go-gen-test
- doom-package:go-guru
- doom-package:go-mode
- doom-package:gorepl-mode
- doom-package:go-tag
No hacks documented for this module.
This module does not have a changelog yet.
Enable this module in your doom!
block.
This module requires Go, a valid $GOPATH
, and a number of go packages, listed
below.
- macOS:
$ brew install go
- Arch Linux:
$ pacman -S go
- openSUSE:
$ zypper install go
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 install github.com/x-motemen/gore/cmd/gore@latest
go install github.com/stamblerre/gocode@latest
go install golang.org/x/tools/cmd/godoc@latest
go install golang.org/x/tools/cmd/goimports@latest
go install golang.org/x/tools/cmd/gorename@latest
go install golang.org/x/tools/cmd/guru@latest
go install github.com/cweill/gotests/gotests@latest
go install github.com/fatih/gomodifytags@latest
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.
🔨 This module has no usage documentation yet. Write some?
Keys | Description |
---|---|
<localleader> a | Add field tags to a struct |
<localleader> d | Remove field tags from a struct |
<localleader> e | Evaluate buffer or selection in the Go playground |
<localleader> i | Go to imports |
<localleader> b c | run $ go clean |
<localleader> b b | run $ go build |
<localleader> b r | run $ go run . |
<localleader> h . | lookup symbol at point in godoc |
<localleader> h d | describe symbol at point |
<localleader> h v | list free variables |
<localleader> h i | list implements relations for package types |
<localleader> h p | list peers for channel |
<localleader> h P | “what does this point to” |
<localleader> h r | list references to object |
<localleader> h e | which errors |
<localleader> h w | what query |
<localleader> h c | show callers of function at point |
<localleader> h C | show callees of function at point |
<localleader> t t | rerun last test |
<localleader> t a | run all tests in project |
<localleader> t f | run all tests in current file |
<localleader> t s | run single test at point |
<localleader> t g | Generate tests for all exported or selected functions |
<localleader> t G | Generate tests for all functions |
<localleader> t e | Generate tests for all exported functions |
<localleader> t b s | go test.bench single |
<localleader> t b a | go test.bench all |
<localleader> r i a | search imports to add |
<localleader> r i r | reimove unused imports |
🔨 This module has no configuration documentation yet. Write some?
There are no known problems with this module. Report one?
This module has no FAQs yet. Ask one?
🔨 This module has no appendix yet. Write one?