diff --git a/modules/lang/go/config.el b/modules/lang/go/config.el index 1f5401845..0e09e9226 100644 --- a/modules/lang/go/config.el +++ b/modules/lang/go/config.el @@ -12,30 +12,53 @@ (add-hook! go-mode (add-hook 'before-save-hook 'gofmt-before-save)) :config (set! :build 'go-build 'go-mode '+go/build) - (set! :repl 'go-mode 'gorepl-run) (map! :map go-mode-map - :n "gd" 'godef-jump + :n "gd" 'go-guru-definition + :n "gD" 'go-guru-referrers (:localleader - :n "fh" 'godef-describe - (:prefix "r" - :n "i" 'go-remove-unused-imports - :nv "f" 'gofmt) - (:prefix "t" - :n "r" '+go/test-run-all - :n "a" '+go/test-run-all - :n "s" '+go/test-run-package)))) + :n "gr" 'go-play-buffer + :v "gr" 'go-play-region + (:prefix "f" + :n "i" 'go-goto-imports + :n "h" 'godoc-at-point + :n "d" 'go-guru-describe + :n "v" 'go-guru-freevars + :n "I" 'go-guru-implements + :n "p" 'go-guru-peers + :n "r" 'go-guru-referrers + :n "t" 'go-guru-pointsto + :n "s" 'go-guru-callstack + :n "e" 'go-guru-whicherrs + :n "c" 'go-guru-callers + :n "C" 'go-guru-callees) + (:prefix "r" + :n "a" 'go-import-add + :n "i" 'go-remove-unused-imports + :nv "f" 'gofmt) + (:prefix "t" + :n "r" '+go/test-rerun + :n "a" '+go/test-all + :n "s" '+go/test-single + :n "n" '+go/test-nested)))) + + +(def-package! go-guru + :commands (go-guru-describe go-guru-freevars go-guru-implements go-guru-peers + go-guru-referrers go-guru-definition go-guru-pointsto + go-guru-callstack go-guru-whicherrs go-guru-callers go-guru-callees + go-guru-expand-region)) (def-package! company-go :when (featurep! :completion company) :after go-mode - :config (set! :company-backend 'go-mode '(company-go company-yasnippet))) + :config (set! :company-backend 'go-mode '(company-go))) (def-package! go-eldoc - :after go-mode + :commands go-eldoc-setup :init (add-hook 'go-mode-hook 'go-eldoc-setup)) diff --git a/modules/lang/go/packages.el b/modules/lang/go/packages.el index 0c88ee864..9a2cc0316 100644 --- a/modules/lang/go/packages.el +++ b/modules/lang/go/packages.el @@ -1,8 +1,10 @@ ;; -*- no-byte-compile: t; -*- ;;; lang/go/packages.el -(package! go-eldoc) (package! go-mode) +(package! go-eldoc) +(package! go-guru) (package! gorepl-mode) + (when (featurep! :completion company) (package! company-go))