aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/progmodes/xref.el23
2 files changed, 29 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b4c6d0be8ef..ced342baeb9 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
12015-02-23 Dmitry Gutov <dgutov@yandex.ru>
2
3 Introduce `xref-etags-mode'.
4 * progmodes/xref.el (xref-etags-mode--saved): New variable.
5 (xref-etags-mode): New minor mode. (Bug#19466)
6
12015-02-22 Lars Magne Ingebrigtsen <larsi@gnus.org> 72015-02-22 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 8
3 * dom.el (dom-previous-sibling): New function. 9 * dom.el (dom-previous-sibling): New function.
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 55405b63fe0..fe72b3f778c 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -628,6 +628,29 @@ The argument has the same meaning as in `apropos'."
628;;;###autoload (define-key ctl-x-5-map "." #'xref-find-definitions-other-frame) 628;;;###autoload (define-key ctl-x-5-map "." #'xref-find-definitions-other-frame)
629 629
630 630
631;;; Helper functions
632
633(defvar xref-etags-mode--saved nil)
634
635(define-minor-mode xref-etags-mode
636 "Minor mode to make xref use etags again.
637
638Certain major modes install their own mechanisms for listing
639identifiers and navigation. Turn this on to undo those settings
640and just use etags."
641 :lighter ""
642 (if xref-etags-mode
643 (progn
644 (setq xref-etags-mode--saved
645 (cons xref-find-function
646 xref-identifier-completion-table-function))
647 (kill-local-variable 'xref-find-function)
648 (kill-local-variable 'xref-identifier-completion-table-function))
649 (setq-local xref-find-function (car xref-etags-mode--saved))
650 (setq-local xref-identifier-completion-table-function
651 (cdr xref-etags-mode--saved))))
652
653
631(provide 'xref) 654(provide 'xref)
632 655
633;;; xref.el ends here 656;;; xref.el ends here