doomemacs/modules/lang/go
Henrik Lissner 31a4244686
Rethink what Doom loads at startup and manually
Better to simply load what we need, when we need it, rather than set up
autoloads for every litte thing.
2018-01-07 00:15:57 -05:00
..
autoload.el Rethink what Doom loads at startup and manually 2018-01-07 00:15:57 -05:00
config.el
packages.el
README.org

:lang go

This module adds Go support.

  • 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

I have mixed feelings about Go. It's a decent compromise between C and higher-level languages, is pleasantly straight-forward and elegant, but lacks native support for luxuries I miss from other languages, like generics, optional arguments, and function overloading. You've got to learn to love interface{}.

Still, Go is a remarkably useful (and fast!) companion for a variety of small-to-medium backend web and CLI projects.

Table of Contents   TOC

Install

Go

To get started with Go, you need the go tool:

MacOS

brew install go

Arch Linux

sudo pacman --needed --noconfirm -S go

Dependencies

This module requires a valid GOPATH, and the following Go packages:

  • gocode (for code completion & eldoc support)
  • godoc (for documentation lookup)
  • goimports (for auto-formatting code on save and fixing imports)
  • gorename (for extra refactoring commands)
  • gore (for the REPL)
  • guru (for code navigation & refactoring commands)
export GOPATH=~/work/go

go get -u github.com/motemen/gore
go get -u github.com/nsf/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