b85c153291
Fix #2750 [ci-skip]
3.6 KiB
3.6 KiB
GO contribution layer for Spacemacs
Table of Contents TOC@4
Description
This layer adds extensive support for go.
Features:
- gofmt on file save
- Auto-completion using go-autocomplete (with the
auto-completion
layer) - Source analysis using go-oracle
Install
Pre-requisites
You will need gocode
and godef
:
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v golang.org/x/tools/cmd/oracle
Make sure that gocode
executable is in your PATH.
For best results, make sure that the auto-completion
and syntax-checking
layers are enabled as well.
Layer
To use this contribution add it to your ~/.spacemacs
(setq-default dotspacemacs-configuration-layers '(go))
Configuration
Formatting
By default, go buffers are run through gofmt
on save. To use a different
formatter, set the value of gofmt-command
, e.g.
(setq gofmt-command "goimports")
Working with Go
Go commands (start with m
):
Key Binding | Description |
---|---|
SPC m h h |
godoc at point |
SPC m i g |
goto imports |
SPC m i a |
add import |
SPC m i r |
remove unused import |
SPC m e b |
go-play buffer |
SPC m e r |
go-play region |
SPC m e d |
download go-play snippet |
SPC m t p |
run "go test" for the current package |
SPC m g a |
jump to matching test file or back from test to code file |
SPC m g g |
go jump to definition |
SPC m r n |
go rename |
Go Oracle
Key Binding | Description |
---|---|
SPC m r o |
go-oracle set analysis scope |
SPC m r < |
go-oracle show possible callers |
SPC m r > |
go-oracle show call targets |
SPC m r c |
go-oracle show channel sends/receives |
SPC m r d |
go-oracle show definition |
SPC m r f |
go-oracle show free variables |
SPC m r g |
go-oracle show callgraph |
SPC m r i |
go-oracle show implements relation |
SPC m r p |
go-oracle show what the select expression points to |
SPC m r r |
go-oracle show all references to object |
SPC m r s |
go-oracle show callstack |
SPC m r t |
go-oracle describe selected syntax, kind, type and methods |