[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master f6bb2cc: Introduce `xref-etags-mode'
From: |
Dmitry Gutov |
Subject: |
[Emacs-diffs] master f6bb2cc: Introduce `xref-etags-mode' |
Date: |
Mon, 23 Feb 2015 02:00:24 +0000 |
branch: master
commit f6bb2ccb9b4b3c50049512d2d0664b44fc7bcc70
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>
Introduce `xref-etags-mode'
Fixes: debbugs:19466
* lisp/progmodes/xref.el (xref-etags-mode--saved): New variable.
(xref-etags-mode): New minor mode.
---
lisp/ChangeLog | 6 ++++++
lisp/progmodes/xref.el | 23 +++++++++++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b4c6d0b..ced342b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-23 Dmitry Gutov <address@hidden>
+
+ Introduce `xref-etags-mode'.
+ * progmodes/xref.el (xref-etags-mode--saved): New variable.
+ (xref-etags-mode): New minor mode. (Bug#19466)
+
2015-02-22 Lars Magne Ingebrigtsen <address@hidden>
* dom.el (dom-previous-sibling): New function.
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 55405b6..fe72b3f 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -628,6 +628,29 @@ The argument has the same meaning as in `apropos'."
;;;###autoload (define-key ctl-x-5-map "." #'xref-find-definitions-other-frame)
+;;; Helper functions
+
+(defvar xref-etags-mode--saved nil)
+
+(define-minor-mode xref-etags-mode
+ "Minor mode to make xref use etags again.
+
+Certain major modes install their own mechanisms for listing
+identifiers and navigation. Turn this on to undo those settings
+and just use etags."
+ :lighter ""
+ (if xref-etags-mode
+ (progn
+ (setq xref-etags-mode--saved
+ (cons xref-find-function
+ xref-identifier-completion-table-function))
+ (kill-local-variable 'xref-find-function)
+ (kill-local-variable 'xref-identifier-completion-table-function))
+ (setq-local xref-find-function (car xref-etags-mode--saved))
+ (setq-local xref-identifier-completion-table-function
+ (cdr xref-etags-mode--saved))))
+
+
(provide 'xref)
;;; xref.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master f6bb2cc: Introduce `xref-etags-mode',
Dmitry Gutov <=