Function: doom-modeline--buffer-file-name
doom-modeline--buffer-file-name is a natively compiled function
defined in doom-modeline-core.el.
Signature
(doom-modeline--buffer-file-name FILE-PATH TRUE-FILE-PATH &optional TRUNCATE-PROJECT-ROOT-PARENT TRUNCATE-PROJECT-RELATIVE-PATH HIDE-PROJECT-ROOT-PARENT)
Documentation
Propertize buffer name given by FILE-PATH or TRUE-FILE-PATH.
If TRUNCATE-PROJECT-ROOT-PARENT is non-nil will be saved by truncating project root parent down fish-shell style.
Example:
~/Projects/FOSS/emacs/lisp/comint.el => ~/P/F/emacs/lisp/comint.el
If TRUNCATE-PROJECT-RELATIVE-PATH is non-nil will be saved by truncating project relative path down fish-shell style.
Example:
~/Projects/FOSS/emacs/lisp/comint.el => ~/Projects/FOSS/emacs/l/comint.el
If HIDE-PROJECT-ROOT-PARENT is non-nil will hide project root parent.
Example:
~/Projects/FOSS/emacs/lisp/comint.el => emacs/lisp/comint.el
Source Code
;; Defined in /nix/store/1lcicrdd2r4b8rkc91nnn74ymk1jl6yd-emacs-packages-deps/share/emacs/site-lisp/elpa/doom-modeline-20260928.1632/doom-modeline-core.el
(defun doom-modeline--buffer-file-name (file-path
true-file-path
&optional
truncate-project-root-parent
truncate-project-relative-path
hide-project-root-parent)
"Propertize buffer name given by FILE-PATH or TRUE-FILE-PATH.
If TRUNCATE-PROJECT-ROOT-PARENT is non-nil will be saved by truncating project
root parent down fish-shell style.
Example:
~/Projects/FOSS/emacs/lisp/comint.el => ~/P/F/emacs/lisp/comint.el
If TRUNCATE-PROJECT-RELATIVE-PATH is non-nil will be saved by truncating project
relative path down fish-shell style.
Example:
~/Projects/FOSS/emacs/lisp/comint.el => ~/Projects/FOSS/emacs/l/comint.el
If HIDE-PROJECT-ROOT-PARENT is non-nil will hide project root parent.
Example:
~/Projects/FOSS/emacs/lisp/comint.el => emacs/lisp/comint.el"
(let ((project-root (file-local-name (doom-modeline-project-root))))
(concat
;; Project root parent
(unless hide-project-root-parent
(when-let* ((root-path-parent
(file-name-directory (directory-file-name project-root))))
(propertize
(if (and truncate-project-root-parent
(not (string-empty-p root-path-parent))
(not (string= root-path-parent "/")))
(shrink-path--dirs-internal root-path-parent t)
(abbreviate-file-name root-path-parent))
'face 'doom-modeline-project-parent-dir)))
;; Project directory
(propertize
(concat (file-name-nondirectory (directory-file-name project-root)) "/")
'face 'doom-modeline-project-dir)
;; relative path
(propertize
(when-let* ((relative-path (file-relative-name
(or (file-name-directory
(if doom-modeline-buffer-file-true-name
true-file-path file-path))
"./")
project-root)))
(if (string= relative-path "./")
""
(if truncate-project-relative-path
(substring (shrink-path--dirs-internal relative-path t) 1)
relative-path)))
'face 'doom-modeline-buffer-path)
;; File name
(propertize (file-name-nondirectory file-path)
'face 'doom-modeline-buffer-file))))