Ähnlich wie ich schon Erweiterungen für Rust bei Emacs eingerichtet habe, habe ich es auch für Go getan:

Auf der Kommandozeile go get -u golang.org/x/tools/cmd/guru und go get -u github.com/rogpeppe/godef/... für find-definition

Die Pakete company-go, go-mode, go-guru

In der init.el

(add-hook 'go-mode-hook #'company-mode)
(add-hook 'go-mode-hook
          '(progn
             (setq-local tab-width 4)
             ))
(eval-after-load 'go-mode
  '(progn
     (define-key go-mode-map (kbd "TAB") #'company-complete-common-or-cycle)
     (define-key go-mode-map (kbd "M-.") #'godef-jump)
     ))