Optimize: cache project root.

Refer to https://github.com/seagle0128/doom-modeline/issues/32.
This commit is contained in:
Vincent Zhang 2018-10-15 20:30:22 +08:00
parent 645f2426b6
commit 9337faed5b

View file

@ -309,13 +309,16 @@ active.")
(buffer-local-value 'mode-line-format (current-buffer))) (buffer-local-value 'mode-line-format (current-buffer)))
(list "%e" modeline)))) (list "%e" modeline))))
(defvar-local doom-modeline-project-root nil)
(defun doom-modeline-project-root () (defun doom-modeline-project-root ()
"Get the path to the root of your project. "Get the path to the root of your project.
If STRICT-P, return nil if no project was found, otherwise return If STRICT-P, return nil if no project was found, otherwise return
`default-directory'." `default-directory'."
(let (projectile-require-project-root) (if (local-variable-p 'doom-modeline-project-root)
(projectile-project-root))) doom-modeline-project-root
(let (projectile-require-project-root)
(setq doom-modeline-project-root (projectile-project-root)))))
;; Disable projectile mode-line segment ;; Disable projectile mode-line segment
(setq projectile-dynamic-mode-line nil) (setq projectile-dynamic-mode-line nil)