* bug#17064: 24.3.50; Enhancement request: dired: fontification of symlinks
@ 2014-03-21 23:34 Michael Heerdegen
2019-10-30 23:33 ` Lars Ingebrigtsen
0 siblings, 1 reply; 2+ messages in thread
From: Michael Heerdegen @ 2014-03-21 23:34 UTC (permalink / raw)
To: 17064
Hi,
in dired, symlinks look like
symlink -> target
where the whole thing is fontified with dired-symlink-face. But I
already know from the -> that I have a symlink, it would be more useful
to know whether TARGET is a directory, which is what I normally see for
non symlink files in dired by fontification with dired-directory-face.
My proposal: fontify only the first part "symlink ->" with
dired-symlink-face. Fontify "target" according to its truename type.
I'm no expert for font lock, so I don't send a patch but just post the
code I use in my config:
--8<---------------cut here---------------start------------->8---
(cl-callf2 cl-remove dired-re-sym dired-font-lock-keywords :key #'car)
(cl-callf nconc dired-font-lock-keywords
`((,dired-re-sym
((lambda (end) (when (let ((file (dired-file-name-at-point)))
(file-directory-p (file-truename file)))
(search-forward-regexp "\\(.+-> ?\\)\\(.+\\)" end t)))
(dired-move-to-filename)
nil
(1 dired-symlink-face)
(2 dired-directory-face)))
(,dired-re-sym
((lambda (end) (when (let ((file (dired-file-name-at-point)))
(file-regular-p (file-truename file)))
(search-forward-regexp "\\(.+-> ?\\)\\(.+\\)" end t)))
(dired-move-to-filename)
nil
(1 dired-symlink-face)
(2 'default)))))
--8<---------------cut here---------------end--------------->8---
Or could this have any bad side effects? Is it maybe too heavy to call
`file-truename'?
Thanks,
Michael.
In GNU Emacs 24.3.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.7)
of 2014-03-14 on drachen
Windowing system distributor `The X.Org Foundation', version 11.0.11500000
System Description: Debian GNU/Linux testing (jessie)
Important settings:
value of $LC_ALL: de_DE.utf8
value of $LC_COLLATE: C
value of $LC_TIME: C
value of $LANG: de_DE.utf8
locale-coding-system: utf-8-unix
Major mode: Emacs-Lisp
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#17064: 24.3.50; Enhancement request: dired: fontification of symlinks
2014-03-21 23:34 bug#17064: 24.3.50; Enhancement request: dired: fontification of symlinks Michael Heerdegen
@ 2019-10-30 23:33 ` Lars Ingebrigtsen
0 siblings, 0 replies; 2+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-30 23:33 UTC (permalink / raw)
To: Michael Heerdegen; +Cc: 17064
Michael Heerdegen <michael_heerdegen@web.de> writes:
> in dired, symlinks look like
>
> symlink -> target
>
> where the whole thing is fontified with dired-symlink-face. But I
> already know from the -> that I have a symlink, it would be more useful
> to know whether TARGET is a directory, which is what I normally see for
> non symlink files in dired by fontification with dired-directory-face.
>
> My proposal: fontify only the first part "symlink ->" with
> dired-symlink-face. Fontify "target" according to its truename type.
Sounds good to me.
> (cl-callf nconc dired-font-lock-keywords
> `((,dired-re-sym
> ((lambda (end) (when (let ((file (dired-file-name-at-point)))
> (file-directory-p (file-truename file)))
> (search-forward-regexp "\\(.+-> ?\\)\\(.+\\)" end t)))
> (dired-move-to-filename)
> nil
> (1 dired-symlink-face)
> (2 dired-directory-face)))
[...]
> Or could this have any bad side effects? Is it maybe too heavy to call
> `file-truename'?
Normally, there aren't many symlinks in a buffer, so I think the
performance impact would be negligible.
I've added a modified version of your code to Emacs 27 -- more error
checking was necessary, because symlinks may be circular etc.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-10-30 23:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-21 23:34 bug#17064: 24.3.50; Enhancement request: dired: fontification of symlinks Michael Heerdegen
2019-10-30 23:33 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.