2015-06-15 09:06:10 +02:00
|
|
|
;;; module-go.el
|
|
|
|
|
|
|
|
(use-package go-mode
|
|
|
|
:mode "\\.go$"
|
|
|
|
:interpreter "go"
|
2015-09-28 05:51:46 -04:00
|
|
|
:init
|
2016-05-13 00:28:44 -04:00
|
|
|
(add-hook 'go-mode-hook 'flycheck-mode)
|
2016-04-26 01:56:34 -04:00
|
|
|
(add-hook! go-mode (add-hook 'before-save-hook 'gofmt-before-save))
|
2016-04-19 02:10:43 -04:00
|
|
|
:config
|
2016-05-01 01:10:30 -04:00
|
|
|
(def-builder! go-mode "go build")
|
|
|
|
(def-company-backend! go-mode (go yasnippet))
|
2016-05-24 22:09:50 -04:00
|
|
|
(def-docset! go-mode ("Go"))
|
2016-05-01 01:10:30 -04:00
|
|
|
(def-repl! go-mode gorepl-run)
|
2015-11-30 05:31:20 -05:00
|
|
|
(map! :map go-mode-map
|
|
|
|
:n "gd" 'godef-jump
|
2016-05-13 00:29:00 -04:00
|
|
|
(:leader :n "h" 'godef-describe)
|
2015-11-30 05:31:20 -05:00
|
|
|
(:localleader
|
2016-05-12 22:11:43 -04:00
|
|
|
:n "p" 'helm-go-package
|
2016-05-20 22:37:30 -04:00
|
|
|
:n "tr" 'doom:go-test-run-all
|
|
|
|
:n "ta" 'doom:go-test-run-all
|
|
|
|
:n "ts" 'doom:go-test-run-package))
|
2016-04-23 22:08:46 -04:00
|
|
|
|
|
|
|
(mapc (lambda (x)
|
|
|
|
(let ((command-name (car x))
|
|
|
|
(title (cadr x))
|
|
|
|
(region-p (caddr x))
|
|
|
|
predicate)
|
|
|
|
(setq predicate (cond ((eq region-p 'both) nil)
|
|
|
|
(t (if region-p
|
|
|
|
(lambda () (use-region-p))
|
|
|
|
(lambda () (not (use-region-p)))))))
|
|
|
|
(emr-declare-command (intern (symbol-name command-name))
|
|
|
|
:title title :modes 'go-mode :predicate predicate)))
|
2016-05-13 00:29:00 -04:00
|
|
|
'((go-remove-unused-imports "Remove unused imports" nil)
|
2016-04-23 22:08:46 -04:00
|
|
|
(gofmt "Format code" nil))))
|
|
|
|
|
2016-05-13 00:28:44 -04:00
|
|
|
(use-package go-eldoc :after go-mode
|
|
|
|
:init (add-hook 'go-mode-hook 'go-eldoc-setup))
|
2016-04-23 22:08:46 -04:00
|
|
|
|
|
|
|
(use-package company-go :after go-mode)
|
|
|
|
|
|
|
|
(use-package gorepl-mode :commands (gorepl-run gorepl-run-load-current-file))
|
|
|
|
|
|
|
|
(use-package helm-go-package :commands helm-go-package)
|
2015-06-15 09:06:10 +02:00
|
|
|
|
|
|
|
(provide 'module-go)
|
|
|
|
;;; module-go.el ends here
|