emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/projectile 81be63e 1/3: [Fix #1709] Fix `projectile-projec


From: ELPA Syncer
Subject: [nongnu] elpa/projectile 81be63e 1/3: [Fix #1709] Fix `projectile-project-buffer-p` contain current buffer (#1713)
Date: Thu, 30 Sep 2021 12:57:42 -0400 (EDT)

branch: elpa/projectile
commit 81be63e5bc6ae6b2a1c4adc7b9f213a38a5b52b2
Author: Kijima Daigo <norimaking777@gmail.com>
Commit: GitHub <noreply@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")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]