Modularize ggtags with eldoc configuration
See PHP layer packages.el for an example
This commit is contained in:
parent
ff8b339813
commit
ad06363b39
|
@ -12,45 +12,10 @@
|
|||
|
||||
(setq gtags-packages
|
||||
'(
|
||||
;; package gtagss go here
|
||||
helm-gtags
|
||||
ggtags
|
||||
))
|
||||
|
||||
;; For each package, define a function gtags/init-<package-gtags>
|
||||
;;
|
||||
(defun spacemacs/gtags-define-keys-for-mode (mode)
|
||||
"Define key bindings for the specific MODE."
|
||||
(when (fboundp mode)
|
||||
(let ((hook (intern (concat (symbol-name mode) "-hook"))))
|
||||
(message "hook is %s" hook)
|
||||
(add-hook hook 'helm-gtags-mode)
|
||||
(unless (member mode '(c-mode
|
||||
c++-mode
|
||||
lisp-mode
|
||||
emacs-lisp-mode
|
||||
python-mode
|
||||
ruby-mode))
|
||||
(add-hook hook (lambda ()
|
||||
(ggtags-mode 1)
|
||||
(eldoc-mode 1)
|
||||
(setq-local eldoc-documentation-function #'ggtags-eldoc-function)))))
|
||||
|
||||
(evil-leader/set-key-for-mode mode
|
||||
"mgc" 'helm-gtags-create-tags
|
||||
"mgd" 'helm-gtags-find-tag
|
||||
"mgf" 'helm-gtags-select-path
|
||||
"mgg" 'helm-gtags-dwim
|
||||
"mgi" 'helm-gtags-tags-in-this-function
|
||||
"mgl" 'helm-gtags-parse-file
|
||||
"mgn" 'helm-gtags-next-history
|
||||
"mgp" 'helm-gtags-previous-history
|
||||
"mgr" 'helm-gtags-find-rtag
|
||||
"mgR" 'helm-gtags-resume
|
||||
"mgs" 'helm-gtags-select
|
||||
"mgS" 'helm-gtags-show-stack
|
||||
"mgu" 'helm-gtags-update-tags)))
|
||||
|
||||
(defun gtags/init-ggtags ()
|
||||
(use-package ggtags
|
||||
:defer t))
|
||||
|
@ -65,14 +30,13 @@
|
|||
helm-gtags-use-input-at-cursor t
|
||||
helm-gtags-pulse-at-cursor t)
|
||||
;; modes that do not have a layer, define here
|
||||
(spacemacs/gtags-define-keys-for-mode 'tcl-mode)
|
||||
(spacemacs/gtags-define-keys-for-mode 'java-mode)
|
||||
(spacemacs/gtags-define-keys-for-mode 'vhdl-mode)
|
||||
(spacemacs/gtags-define-keys-for-mode 'shell-script-mode)
|
||||
(spacemacs/gtags-define-keys-for-mode 'awk-mode)
|
||||
(spacemacs/gtags-define-keys-for-mode 'asm-mode)
|
||||
(spacemacs/gtags-define-keys-for-mode 'dired-mode)
|
||||
)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'tcl-mode)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'java-mode)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'vhdl-mode)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'shell-script-mode)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'awk-mode)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'asm-mode)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'dired-mode))
|
||||
:config
|
||||
(progn
|
||||
;; if anyone uses helm-gtags, they would want to use these key bindings
|
||||
|
|
|
@ -50,8 +50,8 @@
|
|||
(add-to-hooks 'flycheck-mode '(c-mode-hook c++-mode-hook)))
|
||||
|
||||
(defun c-c++/post-init-helm-gtags ()
|
||||
(spacemacs/gtags-define-keys-for-mode 'c-mode)
|
||||
(spacemacs/gtags-define-keys-for-mode 'c++-mode))
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'c-mode)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'c++-mode))
|
||||
|
||||
(defun c-c++/post-init-srefactor ()
|
||||
(semantic/enable-semantic-mode 'c-mode)
|
||||
|
|
|
@ -29,15 +29,17 @@
|
|||
:defer t))
|
||||
|
||||
(defun php/post-init-eldoc ()
|
||||
(add-hook 'php-mode-hook 'eldoc-mode))
|
||||
(add-hook 'php-mode-hook 'eldoc-mode)
|
||||
(when (configuration-layer/package-usedp 'ggtags)
|
||||
(add-hook 'php-mode-hook
|
||||
(lambda () (setq-local eldoc-documentation-function
|
||||
#'ggtags-eldoc-function)))))
|
||||
|
||||
(defun php/post-init-ggtags ()
|
||||
(when (configuration-layer/package-usedp 'eldoc)
|
||||
(add-hook 'php-mode-hook 'setq-local eldoc-documentation-function
|
||||
'ggtags-eldoc-function)))
|
||||
(add-hook php-mode-hook 'ggtags-mode))
|
||||
|
||||
(defun php/post-init-helm-gtags ()
|
||||
(spacemacs/gtags-define-keys-for-mode 'php-mode))
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'php-mode))
|
||||
|
||||
(defun php/init-php-auto-yasnippets ()
|
||||
(use-package php-auto-yasnippets
|
||||
|
|
Loading…
Reference in a new issue