From: Yoni Rabkin Katzenell <yoni-r@actcom.com>
Subject: Re: describe-face should show an example of text in the face.
Date: Mon, 16 Oct 2006 22:01:53 +0200 [thread overview]
Message-ID: <874pu4rpvy.fsf@actcom.com> (raw)
In-Reply-To: EIENLHALHGIMHGDOLMIMOEPFCLAA.drew.adams@oracle.com
[-- Attachment #1: Type: text/plain, Size: 751 bytes --]
"Drew Adams" <drew.adams@oracle.com> writes:
> > Good idea. How about showing two samples: foreground and background?
>
> Like in `list-colors-display'? If that is not what you mean then I am
> misunderstanding you.
>
> Yes, that's what I was thinking.
>
> But I was mistakenly thinking of colors, not faces. Please ignore my
> suggestion.
Your reply got me thinking.
The following patch does exactly the same, except that it renders the
"sample" text to look just like the "sample" text in the `customize'
buffer. So that both are visually consistent examples.
The following screenshot shows how `describe-face' looks with the
attached patch, as compared with the `customize' buffer:
http://yrk.nfshost.com/images/faces-sample.png
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: describe_face.patch --]
[-- Type: text/x-patch, Size: 1467 bytes --]
Index: faces.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/faces.el,v
retrieving revision 1.354
diff -u -r1.354 faces.el
--- faces.el 14 Sep 2006 23:54:44 -0000 1.354
+++ faces.el 16 Oct 2006 19:52:28 -0000
@@ -32,6 +32,9 @@
;; Warning suppression -- can't require x-win in batch:
(autoload 'xw-defined-colors "x-win"))
+(defvar faces-sample-overlay nil
+ "Overlay for showing an example of a face.")
+
(defvar help-xref-stack-item)
\f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1253,6 +1256,17 @@
(setq faces (cdr faces)))))))
+(defun faces-sample-overlay (face)
+ "Insert sample text with FACE.
+
+If FACE is not a face or nil, use the default face."
+ (let ((f (if (facep face) face 'default))
+ (start (+ (point) 2))) ;; +1 to skip leading space
+ (insert " (sample)")
+ (setq faces-sample-overlay (make-overlay start (1- (point))))
+ (overlay-put faces-sample-overlay 'face f)))
+
+
(defun describe-face (face &optional frame)
"Display the properties of face FACE on FRAME.
Interactively, FACE defaults to the faces of the character after point
@@ -1293,6 +1307,7 @@
(insert " undefined face.\n")
(let ((customize-label "customize this face")
file-name)
+ (faces-sample-overlay f)
(princ (concat " (" customize-label ")\n"))
(insert "Documentation: "
(or (face-documentation f)
[-- Attachment #3: Type: text/plain, Size: 56 bytes --]
--
"Cut your own wood and it will warm you twice"
[-- Attachment #4: Type: text/plain, Size: 142 bytes --]
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel
prev parent reply other threads:[~2006-10-16 20:01 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-15 18:15 describe-face should show an example of text in the face Yoni Rabkin Katzenell
2006-10-15 21:44 ` Drew Adams
2006-10-16 8:32 ` Yoni Rabkin Katzenell
2006-10-16 16:28 ` Drew Adams
2006-10-16 20:01 ` Yoni Rabkin Katzenell [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874pu4rpvy.fsf@actcom.com \
--to=yoni-r@actcom.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).