Since I use spacemacs, everything is easy.
As soon as I started editing a
.go file, spacemacs
offered to enable the
go layer. (I could have easily done
it myself, but it is always awesome when your editor “knows” and
offers to help.)
After saving the
SPC f e R later (and I think I had to reopen
the buffer, I don’t remember) I had working syntax highlighting and “coding
time error checking” (Thanks
This is when I noticed the “hard” tabs. See References below.
I was surprised to find out that
gofmt tool uses tabs
(width=8) to format the
go code. I quickly learnt that I
should not try to enforce use of spaces, instead I could set my own tab
width, the way I want.
So I added the following line to my
(add-hook 'go-mode-hook (lambda() (setq go-tab-width 4)))
As I neared successfully completing my first
I appreciated how complete the
golang support is, in the
spacemacs go layer.
As soon as I save the file, the
gofmt command is fires
up, and shows up any errors in the right hand side buffer (split window)
If there are no errors, the it formats the code as per the (go) standards.
There are more
go layer functionalities like :
godoc: Shows up the documentation. Works offline as well. I checked ;)
go-import-add: I’m yet to realize the usefulness of this, but seems nice.
You can send a buffer or a region to the “go playground”
Most of these are available via
M-x command or via the
I may write part two of this, or just update this once I start using
Edit [Jan 2, 2017]
As I started writing more
go code, I felt that I need
auto completion, which is configured by default in the go layer, but was
broken, because I had not installed the external dependencies1
Once I did that, auto-completion started working well.
I have not yet installed
gomtalinter, mostly because I am
too new to
go and I think the errors shown by default are
enough for me. In future, I might start using
For default keyboard shortcuts configured for the