(require 'config-package) (use-package go-mode :mode (("\\.go\\'" . go-mode)) :bind (:map go-mode-map ("C-z" . hydra-go/body)) :init (progn (defun fcuny-go-set-tab-width () (setq-local tab-width 2)) (add-hook 'go-mode-hook 'fcuny-go-set-tab-width)) :config (progn (add-hook 'before-save-hook 'gofmt-before-save))) (use-package go-eldoc :config (add-hook 'go-mode-hook 'go-eldoc-setup)) (use-package gotest) (use-package go-guru) (use-package go-imports) (use-package golint) (use-package go-projectile) (use-package company-go :init (progn (setq company-go-show-annotation t)) :config (add-hook 'go-mode-hook (lambda() (add-to-list 'company-backends 'company-go)))) (defhydra hydra-go (:hint nil :exit t) " ^Command^ ^Imports^ ^Doc^ ^-------^------^-------^-------^---^ _r_: run _ig_: goto _d_: doc at point _ia_: add ^ ^ _ir_: remove " ("r" go-run-main) ("d" godoc-at-point) ("ig" go-goto-imports ) ("ia" go-import-add) ("ir" go-remove-unused-imports) ("q" nil "quit" :color blue)) (provide 'module-go)