From: Emanuel Berg <embe8573@student.uu.se>
To: help-gnu-emacs@gnu.org
Subject: Re: Apply Emacs-Lisp `font-lock' rules to a string
Date: Mon, 24 Aug 2015 22:07:12 +0200 [thread overview]
Message-ID: <87a8tglabz.fsf@nl106-137-147.student.uu.se> (raw)
In-Reply-To: CAKu-7WxvsH=FU0M-OEvbuxsEn-T72A=Fou2_SQfX8HFLtsAXNw@mail.gmail.com
Alexander Shukaev <haroogan@gmail.com> writes:
> Assume I have a string somewhere in Emacs-Lisp
> program. I want this string to be propertized in
> such a way that when I display this string
> somewhere, it should have identical highlighting as
> if it would have been typed in Emacs-Lisp major mode
> (with `font-lock').
>
> To expand on the problem, I have a string which
> contains regular expression, which I display in the
> echo area. It would be nice to apply standard
> highlighting to it. Is there any way to achieve this
> smoothly (preferably with one or a few calls to
> built-in functions)? Thanks.
Check out this Lisp I wrote some years ago. Be sure to
evaluate the test forms. If you are into colors, check
out this page as well:
http://user.it.uu.se/~embe8573/cols/www/index.html
Keep it up!
;; This file: http://user.it.uu.se/~embe8573/cols/www/emacs-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-colored-text "and red." "red" nil) ) ; <- eval me
)
(defun test-all-faces ()
"Print a test strings 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
--
underground experts united
http://user.it.uu.se/~embe8573
next prev parent reply other threads:[~2015-08-24 20:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-24 3:19 Apply Emacs-Lisp `font-lock' rules to a string Alexander Shukaev
2015-08-24 20:07 ` Emanuel Berg [this message]
2015-08-24 20:23 ` John Mastro
2015-08-24 20:29 ` Alexander Shukaev
2015-08-24 20:39 ` John Mastro
2015-08-24 20:40 ` John Mastro
2015-08-25 22:38 ` Alexander Shukaev
2015-08-26 0:09 ` Alexander Shukaev
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a8tglabz.fsf@nl106-137-147.student.uu.se \
--to=embe8573@student.uu.se \
--cc=help-gnu-emacs@gnu.org \
/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 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.