Variable: dired-font-lock-keywords
dired-font-lock-keywords is a variable defined in dired.el.gz.
Value
Large value
(("^[^ \n]" (0 dired-mark-face))
("^[*]" (".+" (dired-move-to-filename) nil (0 dired-marked-face)))
("^[D]" (".+" (dired-move-to-filename) nil (0 dired-flagged-face)))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*[-d]....\\(w\\)...."
(1 dired-perm-write-face))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*[-d].......\\(w\\)."
(1 dired-perm-write-face))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*[-d]..\\(s\\)......"
(1 'dired-set-id))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*[-d].....\\([sS]\\)..."
(1 'dired-set-id))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*d[^:]"
(".+" (dired-move-to-filename) nil (0 dired-directory-face)))
(eval list
(concat "\\(" (regexp-opt completion-ignored-extensions)
"\\|#\\|\\.#.+\\)$")
'(".+" (dired-move-to-filename) nil (0 dired-ignored-face)))
(eval list
(concat "\\(" (regexp-opt completion-ignored-extensions)
"\\|#\\|\\.#.+\\)[*=|]$")
'(".+"
(progn
(end-of-line)
(unless (get-text-property (1- (point)) 'mouse-face)
(dired-move-to-filename)))
nil (0 dired-ignored-face)))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*l[^:]"
(#[257
"\305\306!\205\307\206
\310\306\311\"\312\306\313\"\314\306\315\"\257\262\305\211\211\204,\f\202=\316!\210\304\236\211\203;A\202=\210\f*\262\205d\317 \3201P\321!0\202R\210\305\211\205Y\322!?\205b\323\324\325#\266\202\207"
[default-directory connection-local-default-application
file-local-variables-alist
connection-local-variables-alist
dired-check-symlinks nil file-remote-p
:application :protocol method :user user
:machine host hack-connection-local-variables
dired-file-name-at-point (error) file-truename
file-exists-p search-forward-regexp
"\\(.+\\) \\(->\\) ?\\(.+\\)" t]
12
("/nix/store/yvwy8dm26cpa1j12ixgs1dyiaw2abdk9-emacs-snapshot/share/emacs/31.0.50/lisp/dired.elc"
. 27674)]
(dired-move-to-filename) nil (1 'dired-broken-symlink)
(2 dired-symlink-face)
(3 '(face dired-broken-symlink dired-symlink-filename t))))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*l[^:]"
(#[257
"\305\306!\205\307\206
\310\306\311\"\312\306\313\"\314\306\315\"\257\262\305\211\211\204,\f\202=\316!\210\304\236\211\203;A\202=\210\f*\262\205g\317 \211\205V\3201T\321!0\202V\210\305\211\205e\322!\205e\323\324\325#\266\202\207"
[default-directory connection-local-default-application
file-local-variables-alist
connection-local-variables-alist
dired-check-symlinks nil file-remote-p
:application :protocol method :user user
:machine host hack-connection-local-variables
dired-file-name-at-point (error) file-truename
file-directory-p search-forward-regexp
"\\(.+-> ?\\)\\(.+\\)" t]
12
("/nix/store/yvwy8dm26cpa1j12ixgs1dyiaw2abdk9-emacs-snapshot/share/emacs/31.0.50/lisp/dired.elc"
. 27674)]
(dired-move-to-filename) nil (1 dired-symlink-face)
(2 `(face ,dired-directory-face dired-symlink-filename t))))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*l[^:]"
(#[257
"\305\306!\205\307\206
\310\306\311\"\312\306\313\"\314\306\315\"\257\262\305\211\211\204,\f\202=\316!\210\304\236\211\203;A\202=\210\f*\262\204I\317\320\321#\207\322 \211\205n\3231Z\324!0\202\\\210\305\211\203g\325!?\205l\317\320\321#\262\207"
[default-directory connection-local-default-application
file-local-variables-alist
connection-local-variables-alist
dired-check-symlinks nil file-remote-p
:application :protocol method :user user
:machine host hack-connection-local-variables
search-forward-regexp "\\(.+-> ?\\)\\(.+\\)" t
dired-file-name-at-point (error) file-truename
file-directory-p]
12
("/nix/store/yvwy8dm26cpa1j12ixgs1dyiaw2abdk9-emacs-snapshot/share/emacs/31.0.50/lisp/dired.elc"
. 27674)]
(dired-move-to-filename) nil (1 dired-symlink-face)
(2 '(face default dired-symlink-filename t))))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*[bcsp][^:]"
(".+" (dired-move-to-filename) nil (0 'dired-special)))
("^. [0-9 ]*[.,0-9]*[BkKMGTPEZYRQ]?[ ]*[-bcdlps][-r][-w].[-r][-w].[-r][-w]..*:$"
(".+" (dired-move-to-filename) nil (0 'default)))
("^. \\(.+\\)\\(:\\)\n" (1 dired-header-face)))
Documentation
Additional expressions to highlight in Dired mode.
Source Code
;; Defined in /usr/src/emacs/lisp/dired.el.gz
(defvar dired-font-lock-keywords
(list
;;
;; Dired marks.
(list dired-re-mark '(0 dired-mark-face))
;;
;; We make heavy use of MATCH-ANCHORED, since the regexps don't identify the
;; file name itself. We search for Dired defined regexps, and then use the
;; Dired defined function `dired-move-to-filename' before searching for the
;; simple regexp ".+". It is that regexp which matches the file name.
;;
;; Marked files.
(list (concat "^[" (char-to-string dired-marker-char) "]")
'(".+" (dired-move-to-filename) nil (0 dired-marked-face)))
;;
;; Flagged files.
(list (concat "^[" (char-to-string dired-del-marker) "]")
'(".+" (dired-move-to-filename) nil (0 dired-flagged-face)))
;; People who are paranoid about security would consider this more
;; important than other things such as whether it is a directory.
;; But we don't want to encourage paranoia, so our default
;; should be what's most useful for non-paranoids. -- rms.
;;; ;;
;;; ;; Files that are group or world writable.
;;; (list (concat dired-re-maybe-mark dired-re-inode-size
;;; "\\([-d]\\(....w....\\|.......w.\\)\\)")
;;; '(1 dired-warning-face)
;;; '(".+" (dired-move-to-filename) nil (0 dired-warning-face)))
;; However, we don't need to highlight the file name, only the
;; permissions, to win generally. -- fx.
;; Fixme: we could also put text properties on the permission
;; fields with keymaps to frob the permissions, somewhat a la XEmacs.
(list (concat dired-re-maybe-mark dired-re-inode-size
"[-d]....\\(w\\)....") ; group writable
'(1 dired-perm-write-face))
(list (concat dired-re-maybe-mark dired-re-inode-size
"[-d].......\\(w\\).") ; world writable
'(1 dired-perm-write-face))
(list (concat dired-re-maybe-mark dired-re-inode-size
"[-d]..\\(s\\)......") ; suid
'(1 'dired-set-id))
(list (concat dired-re-maybe-mark dired-re-inode-size
"[-d].....\\([sS]\\)...") ; guid
'(1 'dired-set-id))
;;
;; Subdirectories.
(list dired-re-dir
'(".+" (dired-move-to-filename) nil (0 dired-directory-face)))
;;
;; Files suffixed with `completion-ignored-extensions'.
'(eval .
;; It is quicker to first find just an extension, then go back to the
;; start of that file name. So we do this complex MATCH-ANCHORED form.
(list (concat
"\\(" (regexp-opt completion-ignored-extensions)
"\\|#\\|\\.#.+\\)$")
'(".+" (dired-move-to-filename) nil (0 dired-ignored-face))))
;;
;; Files suffixed with `completion-ignored-extensions'
;; plus a character put in by -F.
'(eval .
(list (concat "\\(" (regexp-opt completion-ignored-extensions)
"\\|#\\|\\.#.+\\)[*=|]$")
'(".+" (progn
(end-of-line)
;; If the last character is not part of the filename,
;; move back to the start of the filename
;; so it can be fontified.
;; Otherwise, leave point at the end of the line;
;; that way, nothing is fontified.
(unless (get-text-property (1- (point)) 'mouse-face)
(dired-move-to-filename)))
nil (0 dired-ignored-face))))
;;
;; Broken Symbolic link.
(list dired-re-sym
(list (lambda (end)
(when (connection-local-value dired-check-symlinks)
(let* ((file (dired-file-name-at-point))
(truename (ignore-errors (file-truename file))))
;; either not existent target or circular link
(and (not (and truename (file-exists-p truename)))
(search-forward-regexp
"\\(.+\\) \\(->\\) ?\\(.+\\)" end t)))))
'(dired-move-to-filename)
nil
'(1 'dired-broken-symlink)
'(2 dired-symlink-face)
'(3 '(face dired-broken-symlink dired-symlink-filename t))))
;;
;; Symbolic link to a directory.
(list dired-re-sym
(list (lambda (end)
(when (connection-local-value dired-check-symlinks)
(when-let* ((file (dired-file-name-at-point))
(truename (ignore-errors (file-truename file))))
(and (file-directory-p truename)
(search-forward-regexp
"\\(.+-> ?\\)\\(.+\\)" end t)))))
'(dired-move-to-filename)
nil
'(1 dired-symlink-face)
'(2 `(face ,dired-directory-face dired-symlink-filename t))))
;;
;; Symbolic link to a non-directory. Or no check at all.
(list dired-re-sym
(list (lambda (end)
(if (not (connection-local-value dired-check-symlinks))
(search-forward-regexp
"\\(.+-> ?\\)\\(.+\\)" end t)
(when-let* ((file (dired-file-name-at-point)))
(let ((truename (ignore-errors (file-truename file))))
(and (or (not truename)
(not (file-directory-p truename)))
(search-forward-regexp
"\\(.+-> ?\\)\\(.+\\)" end t))))))
'(dired-move-to-filename)
nil
'(1 dired-symlink-face)
'(2 '(face default dired-symlink-filename t))))
;;
;; Sockets, pipes, block devices, char devices.
(list dired-re-special
'(".+" (dired-move-to-filename) nil (0 'dired-special)))
;;
;; Explicitly put the default face on file names ending in a colon to
;; avoid fontifying them as directory header.
(list (concat dired-re-maybe-mark dired-re-inode-size dired-re-perms ".*:$")
'(".+" (dired-move-to-filename) nil (0 'default)))
;;
;; Directory headers.
(list dired-subdir-regexp '(1 dired-header-face))
)
"Additional expressions to highlight in Dired mode.")