From ad06363b399b86290fc931654fe3f82e1894da09 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Wed, 22 Apr 2015 00:53:57 -0400 Subject: [PATCH] Modularize ggtags with eldoc configuration See PHP layer packages.el for an example --- contrib/gtags/packages.el | 50 +++++----------------------------- contrib/lang/c-c++/packages.el | 4 +-- contrib/lang/php/packages.el | 12 ++++---- 3 files changed, 16 insertions(+), 50 deletions(-) diff --git a/contrib/gtags/packages.el b/contrib/gtags/packages.el index bdb7b6326..5a9bb00fd 100644 --- a/contrib/gtags/packages.el +++ b/contrib/gtags/packages.el @@ -12,45 +12,10 @@ (setq gtags-packages '( - ;; package gtagss go here helm-gtags ggtags )) -;; For each package, define a function gtags/init- -;; -(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 diff --git a/contrib/lang/c-c++/packages.el b/contrib/lang/c-c++/packages.el index 31c7ae5b5..fd78eb0dc 100644 --- a/contrib/lang/c-c++/packages.el +++ b/contrib/lang/c-c++/packages.el @@ -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) diff --git a/contrib/lang/php/packages.el b/contrib/lang/php/packages.el index ce26b1c1a..953411dda 100644 --- a/contrib/lang/php/packages.el +++ b/contrib/lang/php/packages.el @@ -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