From 285188b61ac1383a747165ce90174082fbe4124b Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Sat, 24 Jun 2017 12:44:11 -0400 Subject: emacs-lisp-mode-hook: Enable xref-etags-mode inside Git repos This makes it easier to jump to definitions in the repository rather than definitions for symbols defined in the current Emacs session. Aside from needing to generate a TAGS file, the tradeoff is that I have to use describe-variable or {find,describe}-function for symbols outside of repo. --- init.el | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'init.el') diff --git a/init.el b/init.el index 26a0b2b..da48d8a 100644 --- a/init.el +++ b/init.el @@ -1875,6 +1875,16 @@ (setq outline-level #'km/elisp-outline-level)) (add-hook 'emacs-lisp-mode-hook #'km/elisp-set-outline-vars) + (defun km/elisp-use-xref-etags-inside-git () + (when (and (executable-find "git") + (equal (with-temp-buffer + (call-process "git" nil t nil + "rev-parse" "--is-inside-work-tree") + (buffer-string)) + "true\n")) + (xref-etags-mode 1))) + (add-hook 'emacs-lisp-mode-hook #'km/elisp-use-xref-etags-inside-git) + ;; Modified from usepackage's issue #80. (defun km/imenu-add-use-package () (when (string= (buffer-file-name (buffer-base-buffer)) -- cgit v1.2.3