mirror of
https://github.com/correl/doom-modeline.git
synced 2024-11-27 19:19:53 +00:00
Refactor: doom-modeline-update-buffer-file-name.
This commit is contained in:
parent
2b7ee7451f
commit
4f0f761738
1 changed files with 48 additions and 45 deletions
|
@ -494,10 +494,8 @@ active.")
|
||||||
(if (eq idx len) "\"};" "\",\n")))))
|
(if (eq idx len) "\"};" "\",\n")))))
|
||||||
'xpm t :ascent 'center)))))
|
'xpm t :ascent 'center)))))
|
||||||
|
|
||||||
(defvar-local doom-modeline-buffer-file-name nil)
|
(defun doom-modeline-buffer-file-name ()
|
||||||
(defun doom-modeline-update-buffer-file-name (&rest _)
|
|
||||||
"Propertized variable `buffer-file-name' based on `doom-modeline-buffer-file-name-style'."
|
"Propertized variable `buffer-file-name' based on `doom-modeline-buffer-file-name-style'."
|
||||||
(setq doom-modeline-buffer-file-name
|
|
||||||
(let ((buffer-file-name (or (buffer-file-name (buffer-base-buffer)) "")))
|
(let ((buffer-file-name (or (buffer-file-name (buffer-base-buffer)) "")))
|
||||||
(unless buffer-file-truename
|
(unless buffer-file-truename
|
||||||
(setq buffer-file-truename (file-truename buffer-file-name)))
|
(setq buffer-file-truename (file-truename buffer-file-name)))
|
||||||
|
@ -521,11 +519,7 @@ active.")
|
||||||
(and (doom-modeline--active)
|
(and (doom-modeline--active)
|
||||||
'doom-modeline-buffer-file))))
|
'doom-modeline-buffer-file))))
|
||||||
(when face `(:inherit ,face))))))
|
(when face `(:inherit ,face))))))
|
||||||
'help-echo buffer-file-truename))))
|
'help-echo buffer-file-truename)))
|
||||||
(add-hook 'find-file-hook #'doom-modeline-update-buffer-file-name)
|
|
||||||
(add-hook 'after-revert-hook #'doom-modeline-update-buffer-file-name)
|
|
||||||
(add-hook 'after-save-hook #'doom-modeline-update-buffer-file-name)
|
|
||||||
(advice-add #'select-window :after #'doom-modeline-update-buffer-file-name)
|
|
||||||
|
|
||||||
(defun doom-modeline--buffer-file-name-truncate (file-path true-file-path &optional truncate-tail)
|
(defun doom-modeline--buffer-file-name-truncate (file-path true-file-path &optional truncate-tail)
|
||||||
"Propertized variable `buffer-file-name' that truncates every dir along path.
|
"Propertized variable `buffer-file-name' that truncates every dir along path.
|
||||||
|
@ -615,13 +609,29 @@ buffer where knowing the current project directory is important."
|
||||||
'face face))))
|
'face face))))
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
(defvar-local doom-modeline-buffer-file-name nil)
|
||||||
|
(defun doom-modeline-update-buffer-file-name (&rest _)
|
||||||
|
"Propertized variable `buffer-file-name' based on `doom-modeline-buffer-file-name-style'."
|
||||||
|
(setq doom-modeline-buffer-file-name
|
||||||
|
;; Show buffer name if it doesn't equal the file name.
|
||||||
|
;; NOTE: Format: "buffer-file-name[buffer-name]".
|
||||||
|
;; Except the same buffer names in different directories.
|
||||||
|
(if buffer-file-name
|
||||||
|
(let ((file-name (doom-modeline-buffer-file-name)))
|
||||||
|
(if (string-equal
|
||||||
|
(file-name-nondirectory buffer-file-name)
|
||||||
|
(replace-regexp-in-string "<.+>$" "" (or (buffer-name) "")))
|
||||||
|
file-name
|
||||||
|
(format "%s[%s]" file-name (buffer-name))))
|
||||||
|
"%b")))
|
||||||
|
(add-hook 'find-file-hook #'doom-modeline-update-buffer-file-name)
|
||||||
|
(add-hook 'after-revert-hook #'doom-modeline-update-buffer-file-name)
|
||||||
|
(add-hook 'after-save-hook #'doom-modeline-update-buffer-file-name)
|
||||||
|
(advice-add #'select-window :after #'doom-modeline-update-buffer-file-name)
|
||||||
|
|
||||||
(doom-modeline-def-segment buffer-info
|
(doom-modeline-def-segment buffer-info
|
||||||
"Combined information about the current buffer, including the current working
|
"Combined information about the current buffer, including the current working
|
||||||
directory, the file name, and its state (modified, read-only or non-existent)."
|
directory, the file name, and its state (modified, read-only or non-existent)."
|
||||||
|
|
||||||
;; HACK: Compatible with loading `doom-modeline' after init time.
|
|
||||||
(unless doom-modeline-buffer-file-name (doom-modeline-update-buffer-file-name))
|
|
||||||
|
|
||||||
(concat (cond (buffer-read-only
|
(concat (cond (buffer-read-only
|
||||||
(concat (doom-modeline-icon-octicon
|
(concat (doom-modeline-icon-octicon
|
||||||
"lock"
|
"lock"
|
||||||
|
@ -647,16 +657,9 @@ directory, the file name, and its state (modified, read-only or non-existent)."
|
||||||
:face 'doom-modeline-warning
|
:face 'doom-modeline-warning
|
||||||
:v-adjust -0.05)
|
:v-adjust -0.05)
|
||||||
" ")))
|
" ")))
|
||||||
(if doom-modeline-buffer-file-name
|
;; HACK: Compatible with loading `doom-modeline' after init time.
|
||||||
;; Show buffer name if it doesn't equal the file name.
|
(or doom-modeline-buffer-file-name
|
||||||
;; NOTE: Format: "buffer-file-name[buffer-name]".
|
(doom-modeline-update-buffer-file-name))))
|
||||||
;; Except the same buffer names in different directories.
|
|
||||||
(if (string-equal
|
|
||||||
(file-name-nondirectory doom-modeline-buffer-file-name)
|
|
||||||
(replace-regexp-in-string "<.+>$" "" (or (buffer-name) "")))
|
|
||||||
doom-modeline-buffer-file-name
|
|
||||||
(format "%s[%s]" doom-modeline-buffer-file-name (buffer-name)))
|
|
||||||
"%b")))
|
|
||||||
|
|
||||||
(doom-modeline-def-segment buffer-info-simple
|
(doom-modeline-def-segment buffer-info-simple
|
||||||
"Display only the current buffer's name, but with fontification."
|
"Display only the current buffer's name, but with fontification."
|
||||||
|
|
Loading…
Reference in a new issue