Commit 3acfb77d43c0
Changed files (3)
lisp/vde-company.el
@@ -0,0 +1,41 @@
+(use-package company
+ :ensure t
+ :commands global-company-mode
+ :init
+ (add-hook 'after-init-hook #'global-company-mode)
+ (setq
+ company-idle-delay 0.2
+ company-selection-wrap-around t
+ company-minimum-prefix-length 2
+ company-require-match nil
+ company-dabbrev-ignore-case nil
+ company-dabbrev-downcase nil
+ company-show-numbers t)
+ :config
+ (bind-keys :map company-active-map
+ ("C-d" . company-show-doc-buffer)
+ ("C-l" . company-show-location)
+ ("C-n" . company-select-next)
+ ("C-p" . company-select-previous)
+ ("C-t" . company-select-next)
+ ("C-s" . company-select-previous)
+ ("TAB" . company-complete))
+
+ (setq company-backends
+ '((company-css
+ company-clang
+ company-capf
+ company-semantic
+ company-xcode
+ company-cmake
+ company-files
+ company-gtags
+ company-etags
+ company-keywords))))
+
+(provide 'vde-company)
+
+;; Local Variables:
+;; coding: utf-8
+;; indent-tabs-mode: nil
+;; End:
lisp/vde-go.el
@@ -1,4 +1,66 @@
+(use-package go-mode
+ :ensure t
+ :mode "\\.go$"
+ :interpreter "go"
+ :pin melpa
+ :config
+
+ (setq gofmt-command "goimports")
+ (if (not (executable-find "goimports"))
+ (warn "go-mode: couldn't find goimports; no code formatting/fixed imports on save")
+ (add-hook 'go-mode-hook (add-hook 'before-save-hook #'gofmt-before-save nil t))))
+(use-package go-guru
+ :ensure t
+ :pin melpa
+ :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)
+ (defhydra hydra-go-guru (:color pink :columns 2 :hint nil)
+ "
+^NAME^ ^TYPE^ ^CALL^ ^ALIAS^
+_._: definition _d_: describe _lr_: callers _p_: pointsto
+_r_: referrers _i_: implement _le_: callees _c_: peers
+_f_: freevars ^ ^ _s_: callstack _e_: whicherrs"
+ ("." go-guru-definition)
+ ("r" go-guru-referrers)
+ ("f" go-guru-freevars)
+ ("d" go-guru-describe)
+ ("i" go-guru-implements)
+ ("lr" go-guru-callers)
+ ("le" go-guru-callees)
+ ("s" go-guru-callstack)
+ ("p" go-guru-pointsto)
+ ("c" go-guru-peers)
+ ("e" go-guru-whicherrs)
+ ("S" go-guru-set-scope "scope" :color blue)))
+
+(use-package go-eldoc
+ :ensure t
+ :pin melpa
+ :config
+ (add-hook 'go-mode-hook 'go-eldoc-setup))
+
+(use-package company-go
+ :ensure t
+ :pin melpa
+ :config
+ (setq company-go-show-annotation t)
+ (add-hook 'go-mode-hook
+ (lambda ()
+ (set (make-local-variable 'company-backends) '(company-go))
+ (company-mode))))
+
+(use-package gorepl-mode
+ :ensure t
+ :commands (gorepl-run
+ gorepl-mode)
+ :init (add-hook 'go-mode-hook #'gorepl-mode))
(provide 'vde-go)
init.el
@@ -134,6 +134,7 @@ packages.")
(use-package vde-editing)
(use-package vde-windows)
(use-package vde-buffers)
+(use-package vde-company)
;; Programming languages
(use-package vde-go)