Add ivy support to the gtags layer
It would be much better to have a single function for each layer that initializes ggtags, helm-gtags and counsel-gtags for a mode.
This commit is contained in:
parent
591ca203a7
commit
c61ae1a1c1
|
@ -15,6 +15,7 @@
|
|||
asm-mode
|
||||
electric-indent-mode
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
nasm-mode
|
||||
x86-lookup
|
||||
|
@ -66,5 +67,8 @@
|
|||
(defun asm/post-init-ggtags ()
|
||||
(add-hook 'asm-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun asm/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'asm-mode))
|
||||
|
||||
(defun asm/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'asm-mode))
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
flycheck
|
||||
gdb-mi
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-cscope
|
||||
helm-gtags
|
||||
realgud
|
||||
|
@ -120,6 +121,10 @@
|
|||
;; Non-nil means display source file containing the main routine at startup
|
||||
gdb-show-main t)))
|
||||
|
||||
(defun c-c++/post-init-counsel-gtags ()
|
||||
(dolist (mode c-c++-modes)
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode mode)))
|
||||
|
||||
(defun c-c++/post-init-helm-gtags ()
|
||||
(dolist (mode c-c++-modes)
|
||||
(spacemacs/helm-gtags-define-keys-for-mode mode)))
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
company
|
||||
eldoc
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
org
|
||||
parinfer
|
||||
|
@ -338,6 +339,9 @@
|
|||
(defun clojure/post-init-ggtags ()
|
||||
(add-hook 'clojure-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun clojure/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'clojure-mode))
|
||||
|
||||
(defun clojure/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'clojure-mode))
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
(common-lisp-snippets :requires yasnippet)
|
||||
evil
|
||||
ggtags
|
||||
counsel
|
||||
helm
|
||||
helm-gtags
|
||||
parinfer
|
||||
|
@ -44,6 +45,9 @@
|
|||
(defun common-lisp/post-init-ggtags ()
|
||||
(add-hook 'common-lisp-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun common-lisp/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'common-lisp-mode))
|
||||
|
||||
(defun common-lisp/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'common-lisp-mode))
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
csharp-mode
|
||||
evil-matchit
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
omnisharp
|
||||
flycheck
|
||||
|
@ -116,5 +117,8 @@
|
|||
(defun csharp/post-init-ggtags ()
|
||||
(add-hook 'csharp-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun csharp/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'csharp-mode))
|
||||
|
||||
(defun csharp/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'csharp-mode))
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
flycheck
|
||||
(flycheck-dmd-dub :requires flycheck)
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
))
|
||||
|
||||
|
@ -55,5 +56,8 @@
|
|||
(defun d/post-init-ggtags ()
|
||||
(add-hook 'd-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun d/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'd-mode))
|
||||
|
||||
(defun d/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'd-mode))
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
flycheck-mix
|
||||
flycheck-credo
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
ob-elixir
|
||||
popwin
|
||||
|
@ -207,5 +208,8 @@
|
|||
(defun elixir/post-init-ggtags ()
|
||||
(add-hook 'elixir-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun elixir/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'elixir-mode))
|
||||
|
||||
(defun elixir/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'elixir-mode))
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
evil
|
||||
flycheck
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
(ielm :location built-in)
|
||||
macrostep
|
||||
|
@ -189,6 +190,9 @@
|
|||
;; i.e (require 'company) will not give an error now
|
||||
(setq flycheck-emacs-lisp-load-path 'inherit))
|
||||
|
||||
(defun emacs-lisp/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'emacs-lisp-mode))
|
||||
|
||||
(defun emacs-lisp/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'emacs-lisp-mode))
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
company
|
||||
erlang
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
flycheck
|
||||
))
|
||||
|
@ -48,5 +49,8 @@
|
|||
(defun erlang/post-init-ggtags ()
|
||||
(add-hook 'erlang-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun erlang/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'erlang-mode))
|
||||
|
||||
(defun erlang/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'erlang-mode))
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
'(
|
||||
fsharp-mode
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
))
|
||||
|
||||
|
@ -80,5 +81,8 @@
|
|||
(defun fsharp/post-init-ggtags ()
|
||||
(add-hook 'fsharp-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun fsharp/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'fsharp-mode))
|
||||
|
||||
(defun fsharp/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'fsharp-mode))
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
(configuration-layer/package-used-p
|
||||
'flycheck)))
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
exec-path-from-shell
|
||||
go-eldoc
|
||||
|
@ -132,5 +133,8 @@
|
|||
(defun go/post-init-ggtags ()
|
||||
(add-hook 'go-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun go/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'go-mode))
|
||||
|
||||
(defun go/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'go-mode))
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
ghc
|
||||
haskell-mode
|
||||
haskell-snippets
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
(helm-hoogle :requires helm)
|
||||
hindent
|
||||
|
@ -259,6 +260,9 @@
|
|||
|
||||
(with-eval-after-load 'yasnippet (haskell-snippets-initialize)))
|
||||
|
||||
(defun haskell/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'haskell-mode))
|
||||
|
||||
(defun haskell/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'haskell-mode))
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
flyspell
|
||||
ggtags
|
||||
gradle-mode
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
(java-mode :location built-in)
|
||||
maven-test-mode
|
||||
|
@ -342,6 +343,9 @@
|
|||
"ltt" 'gradle-single-test
|
||||
"lx" 'gradle-execute))))
|
||||
|
||||
(defun java/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'java-mode))
|
||||
|
||||
(defun java/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'java-mode))
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
evil-matchit
|
||||
flycheck
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
impatient-mode
|
||||
js-doc
|
||||
|
@ -82,6 +83,9 @@
|
|||
(defun javascript/post-init-ggtags ()
|
||||
(add-hook 'js2-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun javascript/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'js2-mode))
|
||||
|
||||
(defun javascript/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'js2-mode))
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
flycheck
|
||||
flyspell
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
(magic-latex-buffer :toggle latex-enable-magic)
|
||||
smartparens
|
||||
|
@ -179,6 +180,9 @@
|
|||
"rT" 'reftex-toc-recenter
|
||||
"rv" 'reftex-view-crossref))
|
||||
|
||||
(defun latex/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'latex-mode))
|
||||
|
||||
(defun latex/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'latex-mode))
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
(company-lua :requires company)
|
||||
flycheck
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
lua-mode
|
||||
))
|
||||
|
@ -51,5 +52,8 @@
|
|||
(defun lua/post-init-ggtags ()
|
||||
(add-hook 'lua-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun lua/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'lua-mode))
|
||||
|
||||
(defun lua/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'lua-mode))
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
;; flycheck
|
||||
;; flycheck-ocaml
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
merlin
|
||||
ocp-indent
|
||||
|
@ -47,6 +48,9 @@
|
|||
(defun ocaml/post-init-ggtags ()
|
||||
(add-hook 'ocaml-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun ocaml/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'ocaml-mode))
|
||||
|
||||
(defun ocaml/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'ocaml-mode))
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
(setq octave-packages
|
||||
'(
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
(octave :location built-in)
|
||||
))
|
||||
|
@ -36,5 +37,8 @@
|
|||
(defun octave/post-init-ggtags ()
|
||||
(add-hook 'octave-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun octave/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'octave-mode))
|
||||
|
||||
(defun octave/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'octave-mode))
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
eldoc
|
||||
flycheck
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
php-auto-yasnippets
|
||||
(php-extras :location (recipe :fetcher github :repo "arnested/php-extras"))
|
||||
|
@ -37,6 +38,9 @@
|
|||
(defun php/post-init-ggtags ()
|
||||
(add-hook 'php-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun php/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'php-mode))
|
||||
|
||||
(defun php/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'php-mode))
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
flycheck
|
||||
ggtags
|
||||
helm-cscope
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
(helm-pydoc :requires helm)
|
||||
hy-mode
|
||||
|
@ -113,6 +114,9 @@
|
|||
:post-init
|
||||
(spacemacs/setup-helm-cscope 'python-mode)))
|
||||
|
||||
(defun python/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'python-mode))
|
||||
|
||||
(defun python/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'python-mode))
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
company
|
||||
company-quickhelp
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
racket-mode
|
||||
))
|
||||
|
@ -25,6 +26,9 @@
|
|||
(defun racket/post-init-ggtags ()
|
||||
(add-hook 'racket-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun racket/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'racket-mode))
|
||||
|
||||
(defun racket/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'racket-mode))
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
evil-matchit
|
||||
flycheck
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
minitest
|
||||
org
|
||||
|
@ -87,6 +88,9 @@
|
|||
(defun ruby/post-init-ggtags ()
|
||||
(add-hook 'ruby-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun ruby/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'ruby-mode))
|
||||
|
||||
(defun ruby/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'ruby-mode))
|
||||
|
||||
|
|
|
@ -59,6 +59,9 @@
|
|||
(defun rust/post-init-ggtags ()
|
||||
(add-hook 'rust-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun rust/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'rust-mode))
|
||||
|
||||
(defun rust/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'rust-mode))
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
flycheck
|
||||
flyspell
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
noflet
|
||||
org
|
||||
|
@ -141,5 +142,8 @@ If it's part of a left arrow (`<-'),replace it with the unicode arrow."
|
|||
(defun scala/post-init-ggtags ()
|
||||
(add-hook 'scala-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun scala/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'scala-mode))
|
||||
|
||||
(defun scala/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'scala-mode))
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
company
|
||||
geiser
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
))
|
||||
|
||||
|
@ -78,6 +79,9 @@
|
|||
(defun scheme/post-init-ggtags ()
|
||||
(add-hook 'scheme-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun scheme/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'scheme-mode))
|
||||
|
||||
(defun scheme/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'scheme-mode))
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
flycheck
|
||||
flycheck-bashate
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
insert-shebang
|
||||
org
|
||||
|
@ -88,6 +89,9 @@
|
|||
(defun shell-scripts/post-init-ggtags ()
|
||||
(add-hook 'sh-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun shell-scripts/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'sh-mode))
|
||||
|
||||
(defun shell-scripts/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'sh-mode))
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
'(
|
||||
vimrc-mode
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
dactyl-mode
|
||||
))
|
||||
|
@ -44,5 +45,8 @@
|
|||
(defun vimscript/post-init-ggtags ()
|
||||
(add-hook 'vimrc-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun vimscript/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'vimrc-mode))
|
||||
|
||||
(defun vimscript/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'vimrc-mode))
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
'(
|
||||
(dos :location local)
|
||||
ggtags
|
||||
counsel-gtags
|
||||
helm-gtags
|
||||
powershell
|
||||
))
|
||||
|
@ -49,6 +50,9 @@
|
|||
(defun windows-scripts/post-init-ggtags ()
|
||||
(add-hook 'dos-mode-local-vars-hook #'spacemacs/ggtags-mode-enable))
|
||||
|
||||
(defun windows-scripts/post-init-counsel-gtags ()
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'dos-mode))
|
||||
|
||||
(defun windows-scripts/post-init-helm-gtags ()
|
||||
(spacemacs/helm-gtags-define-keys-for-mode 'dos-mode))
|
||||
|
||||
|
|
|
@ -21,12 +21,14 @@
|
|||
- [[#pygments-languages-plus-symbol-and-reference-tags][Pygments languages (plus symbol and reference tags)]]
|
||||
- [[#eldoc-integration][Eldoc integration]]
|
||||
- [[#key-bindings][Key bindings]]
|
||||
- [[#helm][Helm]]
|
||||
- [[#ivy][Ivy]]
|
||||
|
||||
* Description
|
||||
=helm-gtags= and =ggtags= are clients for GNU Global. GNU Global is a source
|
||||
code tagging system that allows querying symbol locations in source code, such
|
||||
as definitions or references. Adding the =gtags= layer enables both of these
|
||||
modes.
|
||||
=counsel-gtags=, =helm-gtags= and =ggtags= are clients for GNU Global. GNU
|
||||
Global is a source code tagging system that allows querying symbol locations in
|
||||
source code, such as definitions or references. Adding the =gtags= layer enables
|
||||
both of these modes.
|
||||
|
||||
** Features:
|
||||
- Select any tag in a project retrieved by gtags
|
||||
|
@ -151,9 +153,10 @@ additional control per project.
|
|||
Before using the =gtags=, remember to create a GTAGS database by the following
|
||||
methods:
|
||||
|
||||
- From within Emacs, runs the command =helm-gtags-create-tags=, which is bound
|
||||
to ~SPC m g c~. If the language is not directly supported by GNU Global, you
|
||||
can choose =ctags= or =pygments= as a backend to generate tag database.
|
||||
- From within Emacs, run either =counsel-gtags-create-tags= or
|
||||
=helm-gtags-create-tags=, which are bound to ~SPC m g c~. If the language is
|
||||
not directly supported by GNU Global, you can choose =ctags= or =pygments= as
|
||||
a backend to generate tag database.
|
||||
|
||||
- From inside terminal, runs gtags at your project root in terminal:
|
||||
|
||||
|
@ -249,6 +252,12 @@ the gtags commands.
|
|||
|
||||
* Key bindings
|
||||
|
||||
| Key Binding | Description |
|
||||
|-------------+-----------------------------------------------------------|
|
||||
| ~g d~ | jump to the definitions or references of the selected tag |
|
||||
|
||||
** Helm
|
||||
|
||||
| Key Binding | Description |
|
||||
|-------------+-----------------------------------------------------------|
|
||||
| ~SPC m g C~ | create a tag database |
|
||||
|
@ -266,3 +275,20 @@ the gtags commands.
|
|||
| ~SPC m g S~ | show stack of visited locations |
|
||||
| ~SPC m g y~ | find symbols |
|
||||
| ~SPC m g u~ | manually update tag database |
|
||||
|
||||
** Ivy
|
||||
=counsel-gtags= is currently missing a few minor features compared to
|
||||
=helm-gtags=.
|
||||
|
||||
| Key Binding | Description |
|
||||
|-------------+------------------------------------------------|
|
||||
| ~SPC m g C~ | create a tag database |
|
||||
| ~SPC m g f~ | jump to a file in tag database |
|
||||
| ~SPC m g g~ | jump to a location based on context |
|
||||
| ~SPC m g d~ | find definitions |
|
||||
| ~SPC m g n~ | jump to next location in context stack |
|
||||
| ~SPC m g p~ | jump to previous location in context stack |
|
||||
| ~SPC m g r~ | find references |
|
||||
| ~SPC m g s~ | select any tag in a project retrieved by gtags |
|
||||
| ~SPC m g y~ | find symbols |
|
||||
| ~SPC m g u~ | manually update tag database |
|
||||
|
|
|
@ -12,6 +12,11 @@
|
|||
(defvar gtags-enable-by-default t
|
||||
"Whether or not to enable ggtags-mode.")
|
||||
|
||||
(defvar spacemacs--counsel-gtags-dwim-success nil
|
||||
"Stores the return value of `counsel-gtags-dwim' so it can be
|
||||
passed to the jump handler. This is needed because `buffer' and
|
||||
`point' are not updated after jumping.")
|
||||
|
||||
(spacemacs|define-jump-handlers tcl-mode)
|
||||
(spacemacs|define-jump-handlers vhdl-mode)
|
||||
(spacemacs|define-jump-handlers awk-mode)
|
||||
|
|
|
@ -9,6 +9,49 @@
|
|||
;;
|
||||
;;; License: GPLv3
|
||||
|
||||
(defun spacemacs/counsel-gtags-maybe-dwim ()
|
||||
"Runs `counsel-gtags-dwim' if `gtags-enable-by-default' is on.
|
||||
Otherwise does nothing."
|
||||
(interactive)
|
||||
(when gtags-enable-by-default
|
||||
(setq spacemacs--counsel-gtags-dwim-success nil)
|
||||
(setq spacemacs--counsel-gtags-dwim-success
|
||||
(call-interactively 'counsel-gtags-dwim))))
|
||||
|
||||
(defun spacemacs//counsel-gtags-dwim-success ()
|
||||
"Returns whether or not the last invocation of
|
||||
`spacemacs/counsel-gtags-maybe-dwim' was a success"
|
||||
spacemacs--counsel-gtags-dwim-success)
|
||||
|
||||
(defun spacemacs/counsel-gtags-define-keys-for-mode (mode)
|
||||
"Define key bindings for the specific MODE."
|
||||
;; `counsel-gtags-dwim' is added to the end of the mode-specific jump handlers
|
||||
;; Some modes have more sophisticated jump handlers that go to the beginning
|
||||
;; It might be possible to add `counsel-gtags-dwim' instead to the default
|
||||
;; handlers, if it does a reasonable job in ALL modes.
|
||||
(let ((jumpl (intern (format "spacemacs-jump-handlers-%S" mode)))
|
||||
(handler '(spacemacs/counsel-gtags-maybe-dwim
|
||||
:async spacemacs//counsel-gtags-dwim-success)))
|
||||
(when (boundp jumpl) (add-to-list jumpl handler 'append)))
|
||||
|
||||
;; TODO: Add missing keybindings when new functions get added
|
||||
(spacemacs/set-leader-keys-for-major-mode mode
|
||||
"gC" 'counsel-gtags-create-tags
|
||||
"gd" 'counsel-gtags-dwim
|
||||
;; "gD" 'helm-gtags-find-tag-other-window
|
||||
"gf" 'counsel-gtags-find-file
|
||||
;; "gG" 'helm-gtags-dwim-other-window
|
||||
;; "gi" 'helm-gtags-tags-in-this-function
|
||||
;; "gl" 'helm-gtags-parse-file
|
||||
"gn" 'counsel-gtags-next-history
|
||||
"gp" 'counsel-gtags-previous-history
|
||||
"gr" 'counsel-gtags-find-reference
|
||||
;; "gR" 'helm-gtags-resume
|
||||
;; "gs" 'helm-gtags-select
|
||||
;; "gS" 'helm-gtags-show-stack
|
||||
"gy" 'counsel-gtags-find-symbol
|
||||
"gu" 'counsel-gtags-update-tags))
|
||||
|
||||
(defun helm-gtags-dwim-other-window ()
|
||||
"helm-gtags-dwim in the other window"
|
||||
(interactive)
|
||||
|
|
|
@ -13,9 +13,25 @@
|
|||
(defconst gtags-packages
|
||||
'(
|
||||
ggtags
|
||||
(counsel-gtags :requires ivy)
|
||||
(helm-gtags :requires helm)
|
||||
))
|
||||
|
||||
(defun gtags/init-counsel-gtags ()
|
||||
(use-package counsel-gtags
|
||||
:defer t
|
||||
:init
|
||||
(progn
|
||||
(setq counsel-gtags-ignore-case t
|
||||
counse1-gtags-auto-update t)
|
||||
;; modes that do not have a layer, define here
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'tcl-mode)
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'vhdl-mode)
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'awk-mode)
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'dired-mode)
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'compilation-mode)
|
||||
(spacemacs/counsel-gtags-define-keys-for-mode 'shell-mode))))
|
||||
|
||||
(defun gtags/init-ggtags ()
|
||||
(use-package ggtags
|
||||
:defer t
|
||||
|
|
Loading…
Reference in a new issue