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 .spacemacs and 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 flycheck)
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 .spacemacs
|
|
As I neared successfully completing my first go program,
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
menu bar.
I may write part two of this, or just update this once I start using
go seriously
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
gomtalinter.
For default keyboard shortcuts configured for the go
layer, see2
References: