Reduce complexity and optimize performance for header-line

This commit is contained in:
Marcus Kammer 2023-10-20 22:52:13 +02:00
parent a1feb86eb8
commit 3d8a82fcb4
Signed by: marcuskammer
GPG key ID: C374817BE285268F

View file

@ -23,23 +23,32 @@
(add-hook 'after-make-frame-functions 'center-frame) (add-hook 'after-make-frame-functions 'center-frame)
(setq-default header-line-format (defvar my-cached-vc-info "")
(list "%b %*%n %l:%c %p " (defun my-vc-info ()
'(:eval mode-name) (setq my-cached-vc-info (when vc-mode
'(:eval (format-mode-line minor-mode-alist))
" "
'(:eval (when vc-mode
(concat (substring vc-mode 5) (concat (substring vc-mode 5)
" [" " ["
(substring (vc-working-revision (buffer-file-name)) 0 8) (substring (vc-working-revision (buffer-file-name)) 0 8)
"] "))) "] "))))
(defvar my-cached-project-name "")
(defun my-project-name ()
(setq my-cached-project-name (file-name-base (directory-file-name (project-root (project-current))))))
(add-hook 'after-save-hook 'my-vc-info)
(add-hook 'after-save-hook 'my-project-name)
(setq-default header-line-format
(list "%b %*%n %l:%c %p "
'(:eval mode-name) " "
'(:eval my-cached-vc-info)
'(:eval (if mode-line-process (concat ":" mode-line-process) "")) '(:eval (if mode-line-process (concat ":" mode-line-process) ""))
'(:eval (file-name-directory buffer-file-name))
"-%-")) "-%-"))
(setq-default mode-line-format (setq-default mode-line-format
(list "" (list ""
'(:eval (when-let ((project (project-current))) '(:eval my-cached-project-name) " "
(concat (file-name-base (directory-file-name (project-root project))) " ")))
global-mode-string global-mode-string
'(:eval (concat system-name " " user-login-name)) '(:eval (concat system-name " " user-login-name))
" " " "