diff options
| -rw-r--r-- | projectile.el | 16 | ||||
| -rw-r--r-- | test/projectile-test.el | 34 |
2 files changed, 3 insertions, 47 deletions
diff --git a/projectile.el b/projectile.el index 457f2a0..308627e 100644 --- a/projectile.el +++ b/projectile.el @@ -6291,24 +6291,14 @@ Otherwise behave as if called interactively. (projectile-discover-projects-in-search-path)) (add-hook 'project-find-functions #'project-projectile) (add-hook 'find-file-hook 'projectile-find-file-hook-function) - ;; Add hooks to track which buffer is currently active. - ;; Note - In Emacs 28.1 `buffer-list-update-hook' was modified to no - ;; longer run on temporary buffers, this allows us to use it to track - ;; changes to the active buffer instead of relying on more specific hooks - ;; such as `dired-before-readin-hook'. - (if (version<= "28.1" emacs-version) - (add-hook 'buffer-list-update-hook #'projectile-track-known-projects-find-file-hook t) - (add-hook 'projectile-find-dir-hook #'projectile-track-known-projects-find-file-hook t) - (add-hook 'dired-before-readin-hook #'projectile-track-known-projects-find-file-hook t t)) - + (add-hook 'projectile-find-dir-hook #'projectile-track-known-projects-find-file-hook t) + (add-hook 'dired-before-readin-hook #'projectile-track-known-projects-find-file-hook t t) (advice-add 'compilation-find-file :around #'compilation-find-file-projectile-find-compilation-buffer) (advice-add 'delete-file :before #'delete-file-projectile-remove-from-cache)) (t (remove-hook 'project-find-functions #'project-projectile) (remove-hook 'find-file-hook #'projectile-find-file-hook-function) - (if (version<= "28.1" emacs-version) - (remove-hook 'buffer-list-update-hook #'projectile-track-known-projects-find-file-hook) - (remove-hook 'dired-before-readin-hook #'projectile-track-known-projects-find-file-hook t)) + (remove-hook 'dired-before-readin-hook #'projectile-track-known-projects-find-file-hook t) (advice-remove 'compilation-find-file #'compilation-find-file-projectile-find-compilation-buffer) (advice-remove 'delete-file #'delete-file-projectile-remove-from-cache)))) diff --git a/test/projectile-test.el b/test/projectile-test.el index c108413..1ae331d 100644 --- a/test/projectile-test.el +++ b/test/projectile-test.el @@ -1957,40 +1957,6 @@ projectile-process-current-project-buffers-current to have similar behaviour" (with-current-buffer (find-file-noselect "foo" t)) (expect (length (projectile-project-buffers)) :to-equal 1))))) -(describe "projectile-mode buffer-list-update-hook" - (it "check that the hooks properly update the known projects when changing files or windows" - (projectile-test-with-sandbox - (projectile-test-with-files - ("project1/" - "project1/.projectile" - "project1/foo" - "project2/" - "project2/.projectile" - "project2/bar") - (find-file "project1/") - (projectile-mode 1) - - ;; Check that opening a file leads to the known-projects being updated - (find-file "project1/foo") - (expect (mapcar (lambda (x) (file-name-base (directory-file-name x))) projectile-known-projects) - :to-equal '("project1")) - - ;; Check that opening a file in a different project leads to the known-projects being updated - (find-file-other-window "../../project2/bar") - (expect (mapcar (lambda (x) (file-name-base (directory-file-name x))) projectile-known-projects) - :to-equal '("project2" "project1")) - - ;; Check that selecting a different buffer also updates the known-projects - (other-window 1) - (expect (mapcar (lambda (x) (file-name-base (directory-file-name x))) projectile-known-projects) - ;; Sadly this behavior is contigent on the existance of - ;; `buffer-list-update-hook' so it will behave - ;; differently on older versions of Emacs that do not - ;; have this variable. - :to-equal (if (version<= "28.1" emacs-version) - '("project1" "project2") - '("project2" "project1"))))))) - (describe "projectile--impl-name-for-test-name" :var ((mock-projectile-project-types '((foo test-suffix "Test") |
