* Faces?
@ 2020-07-01 15:40 Douglas Lewan
2020-07-01 16:23 ` Faces? Eli Zaretskii
2020-07-01 17:23 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
0 siblings, 2 replies; 7+ messages in thread
From: Douglas Lewan @ 2020-07-01 15:40 UTC (permalink / raw)
To: help-gnu-emacs
Is there a "Hello, World!" kind of tutorial about setting (and
unsetting) faces?
The only thing I find in the emacs info suggests putting face attributes
character by character. I can do that, but there has to be something
more appropriately abstract.
--
,Doug
d.lewan2000@gmail.com
(908) 720 7908
If this is what winning looks like, I'd hate to see what losing is.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Faces?
2020-07-01 15:40 Faces? Douglas Lewan
@ 2020-07-01 16:23 ` Eli Zaretskii
2020-07-01 20:51 ` Faces? Douglas Lewan
2020-07-01 17:23 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
1 sibling, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2020-07-01 16:23 UTC (permalink / raw)
To: help-gnu-emacs
> From: Douglas Lewan <d.lewan2000@gmail.com>
> Date: Wed, 1 Jul 2020 11:40:54 -0400
>
> The only thing I find in the emacs info suggests putting face attributes
> character by character. I can do that, but there has to be something
> more appropriately abstract.
Did you look at facemenu.el?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Faces?
2020-07-01 15:40 Faces? Douglas Lewan
2020-07-01 16:23 ` Faces? Eli Zaretskii
@ 2020-07-01 17:23 ` Emanuel Berg via Users list for the GNU Emacs text editor
2020-07-01 17:31 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
1 sibling, 1 reply; 7+ messages in thread
From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2020-07-01 17:23 UTC (permalink / raw)
To: help-gnu-emacs
Douglas Lewan wrote:
> Is there a "Hello, World!" kind of tutorial about
> setting (and unsetting) faces?
>
> The only thing I find in the emacs info suggests
> putting face attributes character by character.
> I can do that, but there has to be something more
> appropriately abstract.
Here are some face stuff:
;;; -*- lexical-binding: t -*-
;;;
;;; this file:
;;; http://user.it.uu.se/~embe8573/emacs-init/test-faces.el
;;; https://dataswamp.org/~incal/emacs-init/test-faces.el
(defun insert-colored-text (str color bright)
"Insert STR at point, in COLOR, and sometimes BRIGHT."
(interactive (list (read-string "string: ")
(read-string "color: ")
(y-or-n-p "bright? ") ))
(insert (propertize str 'font-lock-face
`(:weight ,(if bright 'bold 'normal) :foreground ,color) )))
;; use this to test
(when nil
(progn
(forward-line 1)
(insert "The French flag is ")
(insert-colored-text "blue, " "blue" t)
(insert-colored-text "white, " "white" t)
(insert "and" )
(insert-colored-text " red." "red" nil) ) ; <- eval me
)
(defun test-all-faces ()
"Print a test string in every color, normal and bright."
(interactive)
(forward-line 1)
(let ((str "this is what it looks like"))
(dolist (bold '(nil t))
(dolist (color '("black" "red" "green" "yellow" "blue"
"magenta" "cyan" "white") )
(insert-colored-text
(format "%s in %s (that is %sbold)\n" str color
(if bold "" "not "))
color bold) ))))
;; test all colors:
;; (test-all-faces) ; <- eval me
And even more in this long file [1], in particular
the `font-lock-add-keywords' stuff (line 27) and
"what-face" (line 49).
I wonder tho... why is this, uhm, required?
(require 'erc-button)
(require 'erc-match)
The byte compiler doesn't issue any complaint if
I comment it out. But without it, Emacs reports an
invalid face error on boot (when the file is loaded).
What I can see ERC doesn't get any special treatment
in that file, either.
[1] https://dataswamp.org/~incal/emacs-init/my-faces.el
--
underground experts united
http://user.it.uu.se/~embe8573
https://dataswamp.org/~incal
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Faces?
2020-07-01 17:23 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
@ 2020-07-01 17:31 ` Emanuel Berg via Users list for the GNU Emacs text editor
0 siblings, 0 replies; 7+ messages in thread
From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2020-07-01 17:31 UTC (permalink / raw)
To: help-gnu-emacs
> (defun test-all-faces ()
> "Print a test string in every color, normal and bright."
> (interactive)
> (forward-line 1)
> (let ((str "this is what it looks like"))
> (dolist (bold '(nil t))
> (dolist (color '("black" "red" "green" "yellow" "blue"
> "magenta" "cyan" "white") )
> (insert-colored-text
> (format "%s in %s (that is %sbold)\n" str color
> (if bold "" "not "))
> color bold) ))))
>
> ;; test all colors:
> ;; (test-all-faces) ; <- eval me
This is what it looks like ... in 6.1K!
https://dataswamp.org/~incal/pimgs/emacs-faces.png
--
underground experts united
http://user.it.uu.se/~embe8573
https://dataswamp.org/~incal
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Faces?
2020-07-01 16:23 ` Faces? Eli Zaretskii
@ 2020-07-01 20:51 ` Douglas Lewan
2020-07-01 21:14 ` Faces? Stefan Monnier
2020-07-02 0:41 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
0 siblings, 2 replies; 7+ messages in thread
From: Douglas Lewan @ 2020-07-01 20:51 UTC (permalink / raw)
To: help-gnu-emacs
Thanks for all the help. It turns out the door into what I want is the
two functions (add-face-text-property) and (face-list) (or M-x
list-faces-display). From there I'm sure I can begin to do more
sophisticated things.
And, yes, I'm embarrassed that I hadn't looked at any existing lisp code.
--
,Doug
d.lewan2000@gmail.com
(908) 720 7908
If this is what winning looks like, I'd hate to see what losing is.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Faces?
2020-07-01 20:51 ` Faces? Douglas Lewan
@ 2020-07-01 21:14 ` Stefan Monnier
2020-07-02 0:41 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
1 sibling, 0 replies; 7+ messages in thread
From: Stefan Monnier @ 2020-07-01 21:14 UTC (permalink / raw)
To: help-gnu-emacs
Douglas Lewan [2020-07-01 16:51:52] wrote:
> Thanks for all the help. It turns out the door into what I want is the two
> functions (add-face-text-property) and (face-list) (or M-x
> list-faces-display). From there I'm sure I can begin to do more
> sophisticated things.
`face-list` and `list-faces-display` should be used sparingly: you
should usually either use a face you already now or one you created
yourself on purpose. The appearance of each face can change drastically
depending on the user's preferences, so don't rely on
`list-faces-display` too much.
Stefan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Faces?
2020-07-01 20:51 ` Faces? Douglas Lewan
2020-07-01 21:14 ` Faces? Stefan Monnier
@ 2020-07-02 0:41 ` Emanuel Berg via Users list for the GNU Emacs text editor
1 sibling, 0 replies; 7+ messages in thread
From: Emanuel Berg via Users list for the GNU Emacs text editor @ 2020-07-02 0:41 UTC (permalink / raw)
To: help-gnu-emacs
Douglas Lewan wrote:
> And, yes, I'm embarrassed that I hadn't looked at
> any existing lisp code.
I think that's step 2, step one is `C-h f face- TAB'
and/or `C-h v face- TAB' :)
--
underground experts united
http://user.it.uu.se/~embe8573
https://dataswamp.org/~incal
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-07-02 0:41 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-01 15:40 Faces? Douglas Lewan
2020-07-01 16:23 ` Faces? Eli Zaretskii
2020-07-01 20:51 ` Faces? Douglas Lewan
2020-07-01 21:14 ` Faces? Stefan Monnier
2020-07-02 0:41 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
2020-07-01 17:23 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
2020-07-01 17:31 ` Faces? Emanuel Berg via Users list for the GNU Emacs text editor
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).