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
     "\300 \3011
�\302!0\202�\210\303\211\205�\304!?\205�\305\306\307#\207"
     [dired-file-name-at-point (error) file-truename nil file-exists-p
			       search-forward-regexp
			       "\\(.+\\) \\(->\\) ?\\(.+\\)" t]
     7
     ("/nix/store/y8rifw71hjgsl2qjn1l0vrwq2c3593aw-emacs-30-2/share/emacs/30.2/lisp/dired.elc"
      . 27932)]
   (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
     "\300 \211\205�\3011�\302!0\202�\210\303\211\205\"�\304!\205\"�\305\306\307#\207"
     [dired-file-name-at-point (error) file-truename nil
			       file-directory-p search-forward-regexp
			       "\\(.+-> ?\\)\\(.+\\)" t]
     7
     ("/nix/store/y8rifw71hjgsl2qjn1l0vrwq2c3593aw-emacs-30-2/share/emacs/30.2/lisp/dired.elc"
      . 27932)]
   (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
     "\300 \211\205%�\3011�\302!0\202�\210\303\211\203�\304!?\205#�\305\306\307#\262\207"
     [dired-file-name-at-point (error) file-truename nil
			       file-directory-p search-forward-regexp
			       "\\(.+-> ?\\)\\(.+\\)" t]
     7
     ("/nix/store/y8rifw71hjgsl2qjn1l0vrwq2c3593aw-emacs-30-2/share/emacs/30.2/lisp/dired.elc"
      . 27932)]
   (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
;;; Font-lock

(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)
                 (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-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.
   (list dired-re-sym
         (list (lambda (end)
                 (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.")