Refactor Project API to reflect changes upstream

projectile-project-root no longer returns `default-directory` if not in
a project (it returns nil). As such, doom-project-* functions (and their
uses) have been refactored.

+ doom-project-p & doom-project-root are aliases for
  projectile-project-p & projectile-project-root.
+ doom-project-{p,root,name,expand} now has a DIR argument (for
  consistency, since projectile-project-name and
  projectile-project-expand do not).
+ The nocache parameter is no longer necessary, as projectile's caching
  behavior is now more sane.
+ Removed some projectile advice/hacks that are no longer necessary.
+ Updated unit tests
This commit is contained in:
Henrik Lissner 2018-09-28 13:54:20 -04:00
parent 3961ba1662
commit 53fe7a1f04
22 changed files with 53 additions and 84 deletions

View file

@ -10,29 +10,21 @@
(describe "project-p"
(it "Should detect when in a valid project"
(let ((buffer-file-name (expand-file-name "init.el" doom-emacs-dir))
(default-directory doom-emacs-dir))
(expect (doom-project-p))))
(expect (doom-project-p doom-emacs-dir)))
(it "Should detect when not in a valid project"
(let ((buffer-file-name (expand-file-name "test" "~"))
(default-directory (expand-file-name "~")))
(expect (doom-project-p) :to-be nil))))
(expect (doom-project-p (expand-file-name "~")) :to-be nil)))
(describe "project-root"
(it "should resolve to the project's root"
(let ((buffer-file-name (expand-file-name "core.el" doom-core-dir))
(default-directory doom-core-dir))
(expect (doom-project-root) :to-equal doom-emacs-dir)))
(expect (doom-project-root doom-core-dir) :to-equal doom-emacs-dir))
(it "should resolve to the `default-directory'"
(let ((buffer-file-name (expand-file-name "test" "/"))
(default-directory (expand-file-name "/")))
(expect (doom-project-root) :to-equal default-directory))))
(expect (doom-project-root (expand-file-name "~"))
:to-equal (expand-file-name "~"))))
(describe "project-expand"
(it "expands to a path relative to the project root"
(let ((default-directory doom-core-dir))
(expect (doom-project-expand "init.el")
:to-equal (expand-file-name "init.el" (doom-project-root))))))
(expect (doom-project-expand "init.el" doom-core-dir)
:to-equal (expand-file-name "init.el" (doom-project-root doom-core-dir)))))
(describe "project-file-exists-p!"
(let ((default-directory doom-core-dir))