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:
parent
e1edbcb3d9
commit
9b25582be1
12 changed files with 82 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
;;; lang/clojure/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(pushnew! projectile-project-root-files "project.clj" "build.boot" "deps.edn"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
;;;###package clojure-mode
|
||||
(add-hook 'clojure-mode-hook #'rainbow-delimiters-mode)
|
||||
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
;;; lang/elixir/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "mix.exs"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
(use-package! elixir-mode
|
||||
:defer t
|
||||
:init
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
;;; lang/ess/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "DESCRIPTION"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
(use-package! ess
|
||||
:commands stata SAS
|
||||
:init
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
;;; lang/haskell/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "stack.yaml"))
|
||||
|
||||
(cond ((featurep! +intero) (load! "+intero"))
|
||||
((featurep! +dante) (load! "+dante"))
|
||||
((featurep! +lsp) (load! "+lsp")))
|
||||
|
|
|
@ -17,6 +17,9 @@ If the depth is 1, the first directory in src/java/net/lissner/game/MyClass.java
|
|||
is removed: java.net.lissner.game.
|
||||
If the depth is 2, the first two directories are removed: net.lissner.game.")
|
||||
|
||||
(after! projectile
|
||||
(pushnew! projectile-project-root-files "gradlew" "build.gradle"))
|
||||
|
||||
|
||||
;;
|
||||
;; java-mode
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
;;; lang/php/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "composer.json"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
(use-package! php-mode
|
||||
:mode "\\.inc\\'"
|
||||
:config
|
||||
|
|
|
@ -8,6 +8,9 @@ called.")
|
|||
"CLI arguments to initialize 'jupiter console %s' with when
|
||||
`+python/open-ipython-repl' is called.")
|
||||
|
||||
(after! projectile
|
||||
(pushnew! projectile-project-root-files "setup.py" "requirements.txt"))
|
||||
|
||||
|
||||
;;
|
||||
;; Packages
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
;;; lang/racket/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "info.rkt"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
(use-package! racket-mode
|
||||
:hook (racket-repl-mode . racket-unicode-input-method-enable)
|
||||
:config
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
;;; lang/ruby/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "Gemfile"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
;;; lang/rust/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "Cargo.toml"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
(use-package! rust-mode
|
||||
:defer t
|
||||
:config
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
;;; lang/scala/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-project-root-files "build.sbt"))
|
||||
|
||||
|
||||
;;
|
||||
;;; Packages
|
||||
|
||||
(after! scala-mode
|
||||
(setq scala-indent:align-parameters t
|
||||
;; indent block comments to first asterix, not second
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue