~ruther/emacs.d

79757c9bc365d2d82d4d166663964ca75f45e540 — Rutherther 9 months ago b5b1ac6
fix: cache project.el project name in a variable to decrease lag of files in /nix/store
1 files changed, 14 insertions(+), 4 deletions(-)

M init.el
M init.el => init.el +14 -4
@@ 628,11 628,21 @@
        (:eval (vs-modeline-position)))))
  :config

  ;; Why does project.el project-current slow down by a lot?
  (defvar project-project-name nil)
  (defun obtain-project-name ()
    (let ((project-info (project-current)))
      (setq-local project-project-name
                  (or (unless project-info "")
                      (file-name-nondirectory (directory-file-name (nth 2 project-info)))))))

  (defun obtain-project-name-once ()
    (if project-project-name
        project-project-name
      (obtain-project-name)))

  (vs-modeline-def-prop-segment project-el-name
    (when-let*
        ((project-info (project-current))
         (project-path (nth 2 project-info))
         (project-name (file-name-nondirectory (directory-file-name project-path))))
    (when-let ((project-name (obtain-project-name-once)))
      (concat " " project-name))
    'vs-modeline-project)


Do not follow this link