Reduce list of root files projectile searches for

And define them on a per-module basis. This reduces the number of file
checks it performs, particularly for non-project files.

Might help #1317
This commit is contained in:
Henrik Lissner 2019-10-19 15:25:29 -04:00
parent e1edbcb3d9
commit 9b25582be1
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
12 changed files with 82 additions and 1 deletions

View file

@ -48,8 +48,27 @@ Emacs.")
:config
(projectile-mode +1)
;; In the interest of performance, we reduce the number of project root marker
;; files/directories projectile searches for when resolving the project root.
(setq projectile-project-root-files-bottom-up
(append '(".project" ; doom project marker
".git") ; Git VCS root dir
(when (executable-find "hg")
'(".hg")) ; Mercurial VCS root dir
(when (executable-find "fossil")
'(".fslckout" ; Fossil VCS root dir
"_FOSSIL_")) ; Fossil VCS root DB on Windows
(when (executable-find "bzr")
'(".bzr")) ; Bazaar VCS root dir
(when (executable-find "darcs")
'("_darcs"))) ; Darcs VCS root dir
;; This will be filled by other modules. We build this list manually so
;; projectile doesn't perform so many file checks every time it resolves
;; a project's root -- particularly when a file has no project.
projectile-project-root-files '("TAGS")
projectile-project-root-files-top-down-recurring '(".svn" "Makefile"))
;; a more generic project root file
(push ".project" projectile-project-root-files-bottom-up)
(push (abbreviate-file-name doom-local-dir) projectile-globally-ignored-directories)
;; Disable commands that won't work, as is, and that Doom already provides a