summary refs log tree commit diff
path: root/emacs.d/custom
diff options
context:
space:
mode:
authorFranck Cuny <fcuny@twitter.com>2019-07-29 08:30:32 -0700
committerFranck Cuny <fcuny@twitter.com>2019-07-29 08:30:32 -0700
commit11c479c1f0dd6f22ce8d5fe7ef5292e81a0bf42e (patch)
treed8c4e47f3448305e4c3f3e16c352258b6fb3ca3e /emacs.d/custom
parent[emacs] improve support for go-mode (diff)
downloademacs.d-11c479c1f0dd6f22ce8d5fe7ef5292e81a0bf42e.tar.gz
[emacs] improve support for go
move the requirement for `company-go` to the module for go.

rework the configuration for hydra, to make it a little bit easier.

force length of comments to 80 characters per line.
Diffstat (limited to 'emacs.d/custom')
-rw-r--r--emacs.d/custom/fcuny-company.el7
-rw-r--r--emacs.d/custom/fcuny-go.el57
2 files changed, 40 insertions, 24 deletions
diff --git a/emacs.d/custom/fcuny-company.el b/emacs.d/custom/fcuny-company.el
index 4ffc900..0ea1fad 100644
--- a/emacs.d/custom/fcuny-company.el
+++ b/emacs.d/custom/fcuny-company.el
@@ -2,11 +2,4 @@
   :ensure t
   :diminish company-mode)
 
-(use-package company-go
-  :ensure t
-  :after (company)
-  :hook (go-mode . (lambda ()
-                     (setq-local company-backends
-                                 (append (list 'company-go) company-backends)))))
-
 (provide 'fcuny-company)
diff --git a/emacs.d/custom/fcuny-go.el b/emacs.d/custom/fcuny-go.el
index cd0c05f..9cc72cf 100644
--- a/emacs.d/custom/fcuny-go.el
+++ b/emacs.d/custom/fcuny-go.el
@@ -1,57 +1,80 @@
 (use-package go-mode
   :ensure t
+
   :after (exec-path-from-shell flycheck flyspell company company-go hydra)
+
   :hook ((go-mode . fcuny/go-mode-setup)
          (go-mode . company-mode))
-  :bind (("C-c a ?" . godoc-at-point)
-         ("C-c a ." . godef-jump)
-         ("C-c a a" . go-import-add))
+
   :custom
   (godoc-use-completing-read t)
   (gofmt-command "goimports")
+
   ;; see https://github.com/dominikh/go-mode.el/issues/262
   (godoc-at-point-function 'godoc-gogetdoc)
+
   :init
   (defun fcuny/go-mode-setup ()
     (setq tab-width 4)
+    (setq comment-auto-fill-only-comments t)
+    (setq fill-column 80)
+    (auto-fill-mode 1)
     (add-hook 'before-save-hook 'gofmt-before-save))
+
   :config
   (when (memq window-system '(mac ns))
     (exec-path-from-shell-copy-env "GOPATH"))
-  (defhydra go-hydra (:color teal :columns 3)
-    "Go"
-    ("r" go-guru-referrers "referrers")
-    ("i" go-guru-implements "implements")
-    ("d" go-guru-definition "definition")
-    ("D" go-guru-describe "describe")
-    ("t" go-test-current-test "run this test")
-    ("f" go-test-current-file "run tests for this file"))
-  (define-key go-mode-map (kbd "C-c g") 'go-hydra/body))
+
+  (defhydra hydra-go-menu (:columns 2)
+    "
+^naviguation^       ^test^
+^-----------^       ^----^
+_r_: referrers      _t_: run this test
+_i_: implements     _f_: test this file
+_d_: definition
+_D_: describe
+"
+    ("r" go-guru-referrers)
+    ("i" go-guru-implements)
+    ("d" go-guru-definition)
+    ("D" go-guru-describe)
+    ("t" go-test-current-test)
+    ("f" go-test-current-file)
+    ("q" nil "quit" :color blue))
+
+  (define-key go-mode-map (kbd "C-c g") 'hydra-go-menu/body))
 
 (use-package go-guru
   :ensure t
   :after go-mode
+
   :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)
+
   :config
   (unless (executable-find "guru")
     (warn "go-mode: couldn't find guru, refactoring commands won't work"))
+
   (add-hook 'go-mode-hook #'go-guru-hl-identifier-mode))
 
 (use-package go-eldoc
   :ensure t
   :after go-mode
+
   :config
   (add-hook 'go-mode-hook 'go-eldoc-setup))
 
-(use-package godoctor
-  :ensure t
-  :after go-mode)
+(use-package godoctor :ensure t :after go-mode)
+
+(use-package gotest :ensure t :after go-mode)
 
-(use-package gotest
+(use-package company-go
   :ensure t
-  :after go-mode)
+  :after (company)
+  :hook (go-mode . (lambda ()
+                     (setq-local company-backends
+                                 (append (list 'company-go) company-backends)))))
 
 (provide 'fcuny-go)