Font-lock symlinks in dired buffers better
* lisp/dired.el (dired-font-lock-keywords): Font-lock symlinks differently based on whether they point at a directory or not (bug#17064). Based on code from Michael Heerdegen.
This commit is contained in:
parent
390dd2cff9
commit
48fdfd8b93
1 changed files with 24 additions and 2 deletions
|
|
@ -517,9 +517,31 @@ Subexpression 2 must end right before the \\n.")
|
|||
(list dired-re-dir
|
||||
'(".+" (dired-move-to-filename) nil (0 dired-directory-face)))
|
||||
;;
|
||||
;; Symbolic links.
|
||||
;; Symbolic link to a directory.
|
||||
(list dired-re-sym
|
||||
'(".+" (dired-move-to-filename) nil (0 dired-symlink-face)))
|
||||
(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 dired-directory-face)))
|
||||
;;
|
||||
;; 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 'default)))
|
||||
;;
|
||||
;; Sockets, pipes, block devices, char devices.
|
||||
(list dired-re-special
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue