[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 6fe5c21: project-switch-to-buffer: Use the "other buffer" as defa
From: |
Dmitry Gutov |
Subject: |
master 6fe5c21: project-switch-to-buffer: Use the "other buffer" as default |
Date: |
Thu, 18 Jun 2020 20:44:11 -0400 (EDT) |
branch: master
commit 6fe5c21c723c1ebf1d4df911761d14c47970262f
Author: Andrii Kolomoiets <andreyk.mad@gmail.com>
Commit: Dmitry Gutov <dgutov@yandex.ru>
project-switch-to-buffer: Use the "other buffer" as default
* lisp/progmodes/project.el
(project-switch-to-buffer): Pass the "other buffer" as DEF to
read-buffer if it belongs to the current project (bug#41879).
---
lisp/progmodes/project.el | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 7a41df6..89dcee9 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -777,14 +777,24 @@ Arguments the same as in `compile'."
(defun project-switch-to-buffer ()
"Switch to a buffer in the current project."
(interactive)
- (let ((root (project-root (project-current t))))
+ (let* ((root (project-root (project-current t)))
+ (current-buffer (current-buffer))
+ (other-buffer (other-buffer current-buffer))
+ (other-name (buffer-name other-buffer))
+ (predicate
+ (lambda (buffer)
+ ;; BUFFER is an entry (BUF-NAME . BUF-OBJ) of Vbuffer_alist.
+ (and (not (eq (cdr buffer) current-buffer))
+ (when-let ((file (buffer-local-value 'default-directory
+ (cdr buffer))))
+ (file-in-directory-p file root))))))
(switch-to-buffer
(read-buffer
- "Switch to buffer: " nil t
- (lambda (buffer)
- ;; BUFFER is an entry (BUF-NAME . BUF-OBJ) of Vbuffer_alist.
- (when-let ((file (buffer-file-name (cdr buffer))))
- (file-in-directory-p file root)))))))
+ "Switch to buffer: "
+ (when (funcall predicate (cons other-name other-buffer))
+ other-name)
+ t
+ predicate))))
(defcustom project-kill-buffers-skip-conditions
'("\\*Help\\*")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 6fe5c21: project-switch-to-buffer: Use the "other buffer" as default,
Dmitry Gutov <=