branch: elpa/projectile commit 81be63e5bc6ae6b2a1c4adc7b9f213a38a5b52b2 Author: Kijima Daigo <norimaking...@gmail.com> Commit: GitHub <nore...@github.com>
[Fix #1709] Fix `projectile-project-buffer-p` contain current buffer (#1713) If `projectile-project-buffer-p` is executed in a non-current project, `default-directory` return current directory. Since `projectile-project-buffers` contains current buffer, kill current buffer. --- projectile.el | 17 ++++++++++------- test/projectile-test.el | 11 +++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/projectile.el b/projectile.el index 3534b84..577c192 100644 --- a/projectile.el +++ b/projectile.el @@ -1547,13 +1547,16 @@ If PROJECT is not specified the command acts on the current project." (defun projectile-project-buffer-p (buffer project-root) "Check if BUFFER is under PROJECT-ROOT." (with-current-buffer buffer - (and (not (string-prefix-p " " (buffer-name buffer))) - (not (projectile-ignored-buffer-p buffer)) - default-directory - (string-equal (file-remote-p default-directory) - (file-remote-p project-root)) - (not (string-match-p "^http\\(s\\)?://" default-directory)) - (string-prefix-p project-root (file-truename default-directory) (eq system-type 'windows-nt))))) + (let ((directory (if buffer-file-name + (file-name-directory buffer-file-name) + default-directory))) + (and (not (string-prefix-p " " (buffer-name buffer))) + (not (projectile-ignored-buffer-p buffer)) + directory + (string-equal (file-remote-p directory) + (file-remote-p project-root)) + (not (string-match-p "^http\\(s\\)?://" directory)) + (string-prefix-p project-root (file-truename directory) (eq system-type 'windows-nt)))))) (defun projectile-ignored-buffer-p (buffer) "Check if BUFFER should be ignored. diff --git a/test/projectile-test.el b/test/projectile-test.el index 3d37dd6..2624af2 100644 --- a/test/projectile-test.el +++ b/test/projectile-test.el @@ -1687,6 +1687,17 @@ projectile-process-current-project-buffers-current to have similar behaviour" (projectile-process-current-project-buffers-current (lambda () (push (current-buffer) list-b))) (expect list-a :to-equal list-b)))))) +(describe "projectile-project-buffers" + (it "return project buffers" + (projectile-test-with-sandbox + (projectile-test-with-files + ("project1/" + "project1/.projectile" + "project1/foo") + (cd "project1") + (with-current-buffer (find-file-noselect "foo" t)) + (expect (length (projectile-project-buffers)) :to-equal 1))))) + (describe "projectile--impl-name-for-test-name" :var ((mock-projectile-project-types '((foo test-suffix "Test")