diff options
| author | Dmitry Gutov | 2015-02-23 04:00:01 +0200 |
|---|---|---|
| committer | Dmitry Gutov | 2015-02-23 04:00:01 +0200 |
| commit | f6bb2ccb9b4b3c50049512d2d0664b44fc7bcc70 (patch) | |
| tree | 0446f47eb0ca9abc1053b76be9d0d13ae7f5ba45 | |
| parent | c7cdc8ed5bd80a80e0660e953da1497996ba284d (diff) | |
| download | emacs-f6bb2ccb9b4b3c50049512d2d0664b44fc7bcc70.tar.gz emacs-f6bb2ccb9b4b3c50049512d2d0664b44fc7bcc70.zip | |
Introduce `xref-etags-mode'
Fixes: debbugs:19466
* lisp/progmodes/xref.el (xref-etags-mode--saved): New variable.
(xref-etags-mode): New minor mode.
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/progmodes/xref.el | 23 |
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 @@ | |||
| 1 | 2015-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 | |||
| 1 | 2015-02-22 Lars Magne Ingebrigtsen <larsi@gnus.org> | 7 | 2015-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 | |||
| 638 | Certain major modes install their own mechanisms for listing | ||
| 639 | identifiers and navigation. Turn this on to undo those settings | ||
| 640 | and 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 |