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)

Documentation

Propertize file name based on doom-modeline-buffer-file-name-style.

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 ()
  "Propertize file name based on `doom-modeline-buffer-file-name-style'."
  (let* ((buffer-file-name (doom-modeline--format-buffer-file-name))
         (buffer-file-truename (doom-modeline--format-buffer-file-truename buffer-file-name))
         (file-name
          (pcase doom-modeline-buffer-file-name-style
            ('auto
             (if (doom-modeline-project-p)
                 (doom-modeline--buffer-file-name buffer-file-name buffer-file-truename 'shrink 'shrink 'hide)
               (propertize (buffer-name) 'face 'doom-modeline-buffer-file)))
            ('truncate-upto-project
             (doom-modeline--buffer-file-name buffer-file-name buffer-file-truename 'shrink))
            ('truncate-from-project
             (doom-modeline--buffer-file-name buffer-file-name buffer-file-truename nil 'shrink))
            ('truncate-with-project
             (doom-modeline--buffer-file-name buffer-file-name buffer-file-truename 'shrink 'shrink 'hide))
            ('truncate-except-project
             (doom-modeline--buffer-file-name buffer-file-name buffer-file-truename 'shrink 'shrink))
            ('truncate-upto-root
             (doom-modeline--buffer-file-name-truncate buffer-file-name buffer-file-truename))
            ('truncate-all
             (doom-modeline--buffer-file-name-truncate buffer-file-name buffer-file-truename t))
            ('truncate-nil
             (doom-modeline--buffer-file-name buffer-file-name buffer-file-truename))
            ('relative-to-project
             (doom-modeline--buffer-file-name-relative buffer-file-name buffer-file-truename))
            ('relative-from-project
             (doom-modeline--buffer-file-name buffer-file-name buffer-file-truename nil nil 'hide))
            ('file-name
             (propertize (file-name-nondirectory buffer-file-name)
                         'face 'doom-modeline-buffer-file))
            ('file-name-with-project
             (format "%s|%s"
                     (propertize (file-name-nondirectory
                                  (directory-file-name (file-local-name (doom-modeline-project-root))))
                                 'face 'doom-modeline-project-dir)
                     (propertize (file-name-nondirectory buffer-file-name)
                                 'face 'doom-modeline-buffer-file)))
            ('project
             (propertize (file-name-nondirectory
                          (directory-file-name (file-local-name (doom-modeline-project-root))))
                         'face 'doom-modeline-project-dir))
            ((or 'buffer-name _)
             (propertize (buffer-name) 'face 'doom-modeline-buffer-file)))))
    (propertize file-name
                'mouse-face 'mode-line-highlight
                'help-echo (concat buffer-file-truename
                                   (unless (string= (file-name-nondirectory buffer-file-truename)
                                                    (buffer-name))
                                     (concat "\n" (buffer-name)))
                                   "\nmouse-1: Previous buffer\nmouse-3: Next buffer")
                'local-map mode-line-buffer-identification-keymap)))