|
From: | Dmitry Gutov |
Subject: | bug#62974: 29.0.60; New buffers created with project-switch-to-buffer aren't in the project |
Date: | Fri, 21 Apr 2023 18:56:46 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 |
On 21/04/2023 16:17, sbaugh@catern.com wrote:
Eli Zaretskii<eliz@gnu.org> writes:From: Spencer Baugh<sbaugh@janestreet.com> Date: Fri, 21 Apr 2023 07:46:14 -0400 Cc: Dmitry Gutov<dmitry@gutov.dev>,62974@debbugs.gnu.org But if it is in a subdirectory of the root, it also belongs to the project, doesn't it? Exactly like the buffer from which this command is invoked, whose default-directory was a subdirectory of the root. No? That's fine, I wouldn't want to change that behavior, the behavior I'd want to change is when invoking the command from a buffer which is not in a project, or by invoking it after C-x p p to switch projects.The recipe you posted didn't include "C-x p p", though.My recipe was an example of "command from a buffer which is not in a project". Here's a recipe for the issue using C-x p p: 1. (setq project-switch-use-entire-map t) 2. Be in a buffer in project A 3. C-x p p b to switch to project B and select a buffer in project B 4. Type a buffer name which doesn't exist 5. The resulting buffer is in project A, not B
Thanks. How does this look? diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index a18b918db62..94c7f8f547a 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -1314,13 +1314,17 @@ project--read-project-buffer (and (memq (cdr buffer) buffers) (not (project--buffer-check - (cdr buffer) project-ignore-buffer-conditions)))))) - (read-buffer - "Switch to buffer: " - (when (funcall predicate (cons other-name other-buffer)) - other-name) - nil - predicate))) + (cdr buffer) project-ignore-buffer-conditions))))) + (buffer (read-buffer + "Switch to buffer: " + (when (funcall predicate (cons other-name other-buffer)) + other-name) + nil + predicate))) + (if (get-buffer buffer) + buffer + (let ((default-directory (project-root pr))) + (get-buffer-create buffer))))) ;;;###autoload (defun project-switch-to-buffer (buffer-or-name)
[Prev in Thread] | Current Thread | [Next in Thread] |