[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master e7697d9: Remap quit-window to xref-quit in xref buf
From: |
Dmitry Gutov |
Subject: |
[Emacs-diffs] master e7697d9: Remap quit-window to xref-quit in xref buffers |
Date: |
Wed, 21 Jan 2015 07:20:17 +0000 |
branch: master
commit e7697d9763982ffafd85407f4102fbf9b7760d57
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>
Remap quit-window to xref-quit in xref buffers
Fixes: debbugs:19466
* lisp/progmodes/xref.el (xref--xref-buffer-mode-map): Define before
the major mode. Remap `quit-window' to `xref-quit'.
(xref--xref-buffer-mode): Inherit from special-mode.
---
lisp/ChangeLog | 4 ++++
lisp/progmodes/xref.el | 27 ++++++++++++++-------------
2 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1c71008..65c0684 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,9 @@
2015-01-21 Dmitry Gutov <address@hidden>
+ * progmodes/xref.el (xref--xref-buffer-mode-map): Define before
+ the major mode. Remap `quit-window' to `xref-quit'.
+ (xref--xref-buffer-mode): Inherit from special-mode.
+
xref: Keep track of temporary buffers (bug#19466).
* progmodes/xref.el (xref--temporary-buffers, xref--selected)
(xref--inhibit-mark-selected): New variables.
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 1174a60..ee81250 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -421,21 +421,22 @@ Used for temporary buffers.")
(xref-quit)
(xref--pop-to-location loc window)))
-(define-derived-mode xref--xref-buffer-mode fundamental-mode "XREF"
+(defvar xref--xref-buffer-mode-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map [remap quit-window] #'xref-quit)
+ (define-key map (kbd "n") #'xref-next-line)
+ (define-key map (kbd "p") #'xref-prev-line)
+ (define-key map (kbd "RET") #'xref-goto-xref)
+ (define-key map (kbd "C-o") #'xref-show-location-at-point)
+ ;; suggested by Johan Claesson "to further reduce finger movement":
+ (define-key map (kbd ".") #'xref-next-line)
+ (define-key map (kbd ",") #'xref-prev-line)
+ map))
+
+(define-derived-mode xref--xref-buffer-mode special-mode "XREF"
"Mode for displaying cross-references."
(setq buffer-read-only t))
-(let ((map xref--xref-buffer-mode-map))
- (define-key map (kbd "q") #'xref-quit)
- (define-key map (kbd "n") #'xref-next-line)
- (define-key map (kbd "p") #'xref-prev-line)
- (define-key map (kbd "RET") #'xref-goto-xref)
- (define-key map (kbd "C-o") #'xref-show-location-at-point)
-
- ;; suggested by Johan Claesson "to further reduce finger movement":
- (define-key map (kbd ".") #'xref-next-line)
- (define-key map (kbd ",") #'xref-prev-line))
-
(defun xref-quit (&optional kill)
"Perform cleanup, then quit the current window.
The cleanup consists of burying all temporarily displayed
@@ -445,7 +446,7 @@ created in the process of showing xrefs.
Exceptions are made for buffers switched to by the user in the
meantime, and other window configuration changes. These are
preserved."
- (interactive "P")a
+ (interactive "P")
(let ((window (selected-window))
(history xref--display-history))
(setq xref--display-history nil)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master e7697d9: Remap quit-window to xref-quit in xref buffers,
Dmitry Gutov <=