unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#13917: 24.3.50; Elisp manual: Font Lock Mode
@ 2013-03-10 16:39 Joost Kremers
  2019-11-01 16:48 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Joost Kremers @ 2013-03-10 16:39 UTC (permalink / raw)
  To: 13917


The Elisp manual, info node "(elisp) Search-based Fontification" states
the following:

,----
| `(MATCHER . FACESPEC)'
|      In this kind of element, FACESPEC is an expression whose value
|      specifies the face to use for highlighting.  In the simplest case,
|      FACESPEC is a Lisp variable (a symbol) whose value is a face name.
| 
|           ;; Highlight occurrences of `fubar',
|           ;; using the face which is the value of `fubar-face'.
|           ("fubar" . fubar-face)
| 
|      However, FACESPEC can also evaluate to a list of this form:
| 
|           (face FACE PROP1 VAL1 PROP2 VAL2...)
| 
|      to specify the face FACE and various additional text properties to
|      put on the text that matches.  If you do this, be sure to add the
|      other text property names that you set in this way to the value of
|      `font-lock-extra-managed-props' so that the properties will also
|      be cleared out when they are no longer appropriate.  Alternatively,
|      you can set the variable `font-lock-unfontify-region-function' to
|      a function that clears these properties.  *Note Other Font Lock
|      Variables::.
`----

However, a font lock entry of the type

,----
| (MATCHER . (face FACE PROP1 VAL1 PROP1 VAL2))
`----

does not actually work. What works is any of the forms:

,----
| (MATCHER . (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
| (MATCHER 0 (face FACE PROP1 VAL1 PROP1 VAL2))
| (MATCHER (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
`----

(Where the first two are of course equivalent).




In GNU Emacs 24.3.50.1 (i686-pc-linux-gnu, GTK+ Version 3.6.0)
 of 2013-03-04 on charichuelo, modified by Debian
 (emacs-snapshot package, version 2:20130304-1~ppa1~quantal1)
Windowing system distributor `The X.Org Foundation', version 11.0.11300000
System Description:	Ubuntu 12.10

Configured using:
 `configure --build i686-linux-gnu --host i686-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var
 --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.3.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3.50/site-lisp:/usr/share/emacs/site-lisp
 --without-compress-info --with-crt-dir=/usr/lib/i386-linux-gnu/
 --with-x=yes --with-x-toolkit=gtk3 --with-imagemagick=yes
 CFLAGS='-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2'
 CPPFLAGS='-D_FORTIFY_SOURCE=2' LDFLAGS='-g -Wl,--as-needed
 -znocombreloc''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Text

Minor modes in effect:
  diff-auto-refine-mode: t
  TeX-PDF-mode: t
  autopair-global-mode: t
  autopair-mode: t
  global-edit-server-edit-mode: t
  override-global-mode: t
  show-paren-mode: t
  delete-selection-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
s SPC t h e SPC o n e SPC t h a t SPC C-d r e t u r 
n s SPC t h e SPC f i e l d SPC t o SPC i n h e r i 
t SPC f r o m SPC <backspace> , SPC b a s e d SPC o 
n SPC a SPC f i e l d M-b M-b M-b M-b M-b M-b M-b M-b 
t a r g e t SPC M-f M-d M-d M-d M-f M-f M-f <backspace> 
t h e SPC o <backspace> s o u r c e M-f SPC a n d SPC 
t h e SPC n e t r y SPC <M-backspace> e n t r y SPC 
t y p e SPC o f SPC t e h SPC s o u r c e . M-b C-b 
C-b C-p C-e C-x C-s C-x # M-x e m a <tab> b u <tab> 
<M-backspace> <M-backspace> r e p <tab> o <tab> <tab> 
r <tab> <return> M a n u a l <M-backspace> C-g C-h 
i u u u m f o n - <backspace> t SPC l o c k <tab> m 
o <tab> <return> 3 b <backspace> <backspace> <backspace> 
<backspace> <backspace> C-t C-t C-t C-t C-t C-t C-t 
C-t C-t C-t C-t C-t C-t C-t C-t C-t C-t C-t C-SPC C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n M-w <C-tab> <return> <return> 
C-y <C-S-iso-lefttab> <C-S-iso-lefttab> <C-tab> <C-tab> 
C-h i <home> C-n C-b C-SPC C-e M-w q <return> <return> 
C-y C-t M-d M-d M-d M-d C-d C-d M-f M-f M-f C-k C-c 
C-g M-x e <backspace> r e p a r <backspace> <backspace> 
o r <tab> <return>

Recent messages:
Package `multiple-cursors-20130226.2138' deleted.
Package `ebib-20130309.145' deleted.
Package `dash-20130225.2203' deleted.
Field contents killed.
Wrote /home/joost/Dropbox/Work/Bibtex/genbib.bib
[mu4e] Retrieving mail...
[mu4e] Indexing... processed 4000, updated 0
[mu4e] Indexing completed; processed 4306, updated 0, cleaned-up 0
Making completion list... [2 times]
Quit

Load-path shadows:
/home/joost/.elpa/ess-20130225.1754/.dir-locals hides /home/joost/.elpa/magit-20130304.2017/.dir-locals
/usr/share/emacs/24.3.50/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
~/.emacs.d/custom hides /usr/share/emacs/24.3.50/lisp/custom
~/src/org-mode/contrib/lisp/org-w3m hides /usr/share/emacs/24.3.50/lisp/org/org-w3m
~/src/org-mode/contrib/lisp/org-vm hides /usr/share/emacs/24.3.50/lisp/org/org-vm
~/src/org-mode/contrib/lisp/org-wl hides /usr/share/emacs/24.3.50/lisp/org/org-wl
~/src/org-mode/contrib/lisp/org-mew hides /usr/share/emacs/24.3.50/lisp/org/org-mew
/home/joost/.elpa/ess-20130225.1754/.dir-locals hides /usr/share/emacs/24.3.50/lisp/gnus/.dir-locals

Features:
(shadow emacsbug mc-separate-operations rectangular-region-mode
mc-mark-more mc-cycle-cursors mc-edit-lines multiple-cursors-core
autoload tar-mode url-http url-gw url-cache url-auth url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse url-vars mailcap finder-inf ace-jump-mode jump-char
debug ebib loadhist epa-file gnutls network-stream starttls tls
mailalias qp mail-extr sort parse-time boxquote crm view magit-bisect
magit-key-mode magit diff-mode log-edit pcvs-util add-log compile
re-builder bm expand-region text-mode-expansions org-mode-expansions
latex-mode-expansions expand-region-custom expand-region-core vc-git
reftex-index rect reftex-sel reftex-ref reftex-toc texmathp
writeroom-mode pcmpl-unix cus-edit cus-start cus-load wid-edit misearch
multi-isearch mule-util reftex-cite reftex-parse pandoc-mode bibtex
preview prv-emacs tex-buf reftex-dcr reftex reftex-vars face-remap
adaptive-wrap tex-fold font-latex latex tex-style tex dbus xml latexenc
offlineimap diminish epresent org-latex org-export-latex org-beamer
footnote autopair quail em-unix em-term term disp-table ehelp electric
em-script em-prompt em-ls em-hist em-pred em-glob em-dirs em-cmpl
em-basic em-banner em-alias esh-var esh-io esh-cmd esh-opt esh-ext
esh-proc esh-arg eldoc esh-groups eshell esh-module esh-mode esh-util
ielm pp anti-zenburn-theme edit-server uniquify org-mu4e org-exp ob-exp
org-exp-blocks org-agenda mu4e mu4e-speedbar speedbar sb-image ezimage
dframe mu4e-main mu4e-view epa epg epg-config browse-url mu4e-headers
mu4e-compose mu4e-draft mu4e-actions rfc2368 smtpmail auth-source eieio
gnus-util password-cache sendmail mu4e-mark mu4e-message html2text
mu4e-proc mu4e-utils doc-view jka-compr image-mode dired mu4e-lists
mu4e-about mu4e-vars message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mailabbrev mail-utils gmm-utils mailheader hl-line mu4e-meta
dictem org-drill org-learn org-id hi-lock org-inlinetask org byte-opt
warnings bytecomp byte-compile cconv ob-tangle ob-ref ob-lob ob-table
org-footnote org-src ob-comint ob-keys org-pcomplete pcomplete comint
ansi-color ring org-list org-faces org-entities org-version
ob-emacs-lisp ob org-compat org-macs ob-eval org-loaddefs format-spec
find-func cal-menu calendar cal-loaddefs yasnippet dropdown-list derived
help-mode cl cm-mode cl-macs gv cl-lib markdown-mode thingatpt noutline
outline windmove swbuff nadvice advice help-fns preview-latex tex-site
auto-loads server edmacro kmacro bind-key easy-mmode paren delsel
ace-jump-mode-autoloads adaptive-wrap-autoloads
anti-zenburn-theme-autoloads autopair-autoloads bm-autoloads
boxquote-autoloads dash-autoloads diminish-autoloads ebib-autoloads
edit-server-autoloads expand-region-autoloads jump-char-autoloads
magit-autoloads multiple-cursors-autoloads offlineimap-autoloads
pandoc-mode-autoloads unfill-autoloads wc-mode-autoloads
writeroom-mode-autoloads info easymenu package time-date tooltip
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind inotify
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)

-- 
Joost Kremers, PhD
University of Göttingen
Institute for German Philology
Käte-Hamburger-Weg 3
37073 Göttingen, Germany





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#13917: 24.3.50; Elisp manual: Font Lock Mode
  2013-03-10 16:39 bug#13917: 24.3.50; Elisp manual: Font Lock Mode Joost Kremers
@ 2019-11-01 16:48 ` Lars Ingebrigtsen
  2021-05-31  6:40   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2019-11-01 16:48 UTC (permalink / raw)
  To: Joost Kremers; +Cc: 13917

Joost Kremers <joost.kremers@phil.uni-goettingen.de> writes:

> The Elisp manual, info node "(elisp) Search-based Fontification" states
> the following:
>
> ,----
> | `(MATCHER . FACESPEC)'
> |      In this kind of element, FACESPEC is an expression whose value
> |      specifies the face to use for highlighting.  In the simplest case,
> |      FACESPEC is a Lisp variable (a symbol) whose value is a face name.
> | 
> |           ;; Highlight occurrences of `fubar',
> |           ;; using the face which is the value of `fubar-face'.
> |           ("fubar" . fubar-face)
> | 
> |      However, FACESPEC can also evaluate to a list of this form:
> | 
> |           (face FACE PROP1 VAL1 PROP2 VAL2...)
> | 
> |      to specify the face FACE and various additional text properties to
> |      put on the text that matches.  If you do this, be sure to add the
> |      other text property names that you set in this way to the value of
> |      `font-lock-extra-managed-props' so that the properties will also
> |      be cleared out when they are no longer appropriate.  Alternatively,
> |      you can set the variable `font-lock-unfontify-region-function' to
> |      a function that clears these properties.  *Note Other Font Lock
> |      Variables::.
> `----
>
> However, a font lock entry of the type
>
> ,----
> | (MATCHER . (face FACE PROP1 VAL1 PROP1 VAL2))
> `----
>
> does not actually work. What works is any of the forms:
>
> ,----
> | (MATCHER . (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
> | (MATCHER 0 (face FACE PROP1 VAL1 PROP1 VAL2))
> | (MATCHER (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
> `----
>
> (Where the first two are of course equivalent).

Hm...  is this a bug in the documentation or the code, though?  It seems
like it would be logical for the described syntax to work, doesn't it?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#13917: 24.3.50; Elisp manual: Font Lock Mode
  2019-11-01 16:48 ` Lars Ingebrigtsen
@ 2021-05-31  6:40   ` Lars Ingebrigtsen
  2021-05-31 12:52     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-31  6:40 UTC (permalink / raw)
  To: Joost Kremers; +Cc: Stefan Monnier, 13917

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> However, a font lock entry of the type
>>
>> ,----
>> | (MATCHER . (face FACE PROP1 VAL1 PROP1 VAL2))
>> `----
>>
>> does not actually work. What works is any of the forms:
>>
>> ,----
>> | (MATCHER . (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
>> | (MATCHER 0 (face FACE PROP1 VAL1 PROP1 VAL2))
>> | (MATCHER (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
>> `----
>>
>> (Where the first two are of course equivalent).
>
> Hm...  is this a bug in the documentation or the code, though?  It seems
> like it would be logical for the described syntax to work, doesn't it?

Perhaps Stefan as an opinion; added to the CCs.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#13917: 24.3.50; Elisp manual: Font Lock Mode
  2021-05-31  6:40   ` Lars Ingebrigtsen
@ 2021-05-31 12:52     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2021-06-01  5:57       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-05-31 12:52 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 13917, Joost Kremers

Lars Ingebrigtsen [2021-05-31 08:40:42] wrote:
> Lars Ingebrigtsen <larsi@gnus.org> writes:
>>> However, a font lock entry of the type
>>>
>>> ,----
>>> | (MATCHER . (face FACE PROP1 VAL1 PROP1 VAL2))
>>> `----
>>>
>>> does not actually work. What works is any of the forms:
>>>
>>> ,----
>>> | (MATCHER . (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
>>> | (MATCHER 0 (face FACE PROP1 VAL1 PROP1 VAL2))
>>> | (MATCHER (0 (face FACE PROP1 VAL1 PROP1 VAL2)))
>>> `----
>>>
>>> (Where the first two are of course equivalent).
>>
>> Hm...  is this a bug in the documentation or the code, though?  It seems
>> like it would be logical for the described syntax to work, doesn't it?
>
> Perhaps Stefan as an opinion; added to the CCs.

I don't know if there might be some conflict with existing syntax.
Personally I dislike this support for those different syntaxes, it just
makes the doc and the code more complex without any clear benefit.


        Stefan






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#13917: 24.3.50; Elisp manual: Font Lock Mode
  2021-05-31 12:52     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2021-06-01  5:57       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-06-01  5:57 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 13917, Joost Kremers

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> I don't know if there might be some conflict with existing syntax.
> Personally I dislike this support for those different syntaxes, it just
> makes the doc and the code more complex without any clear benefit.

Right.  So I've just changed the documentation here to reflect what's
actually accepted.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-06-01  5:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-10 16:39 bug#13917: 24.3.50; Elisp manual: Font Lock Mode Joost Kremers
2019-11-01 16:48 ` Lars Ingebrigtsen
2021-05-31  6:40   ` Lars Ingebrigtsen
2021-05-31 12:52     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-01  5:57       ` Lars Ingebrigtsen

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).