* Why call font-lock-add-keywords in a mode hook?
@ 2016-01-25 10:03 Marcin Borkowski
2016-01-25 14:49 ` Michael Heerdegen
2016-01-26 4:14 ` Stefan Monnier
0 siblings, 2 replies; 5+ messages in thread
From: Marcin Borkowski @ 2016-01-25 10:03 UTC (permalink / raw)
To: Help Gnu Emacs mailing list
Hi list,
this I found in the manual:
--8<---------------cut here---------------start------------->8---
-- Function: font-lock-add-keywords mode keywords &optional how
This function adds highlighting KEYWORDS, for the current buffer or
for major mode MODE. The argument KEYWORDS should be a list with
the same format as the variable ‘font-lock-keywords’.
If MODE is a symbol which is a major mode command name, such as
‘c-mode’, the effect is that enabling Font Lock mode in MODE will
add KEYWORDS to ‘font-lock-keywords’. Calling with a non-‘nil’
value of MODE is correct only in your ‘~/.emacs’ file.
If MODE is ‘nil’, this function adds KEYWORDS to
‘font-lock-keywords’ in the current buffer. This way of calling
‘font-lock-add-keywords’ is usually used in mode hook functions.
--8<---------------cut here---------------end--------------->8---
My question: why would I want to call this function in a hook if I can
specify the mode in its invocation? (Assuming that I use it in my
init.el, of course.)
TIA,
--
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Faculty of Mathematics and Computer Science
Adam Mickiewicz University
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Why call font-lock-add-keywords in a mode hook?
2016-01-25 10:03 Why call font-lock-add-keywords in a mode hook? Marcin Borkowski
@ 2016-01-25 14:49 ` Michael Heerdegen
2016-01-26 4:14 ` Stefan Monnier
1 sibling, 0 replies; 5+ messages in thread
From: Michael Heerdegen @ 2016-01-25 14:49 UTC (permalink / raw)
To: help-gnu-emacs
Marcin Borkowski <mbork@mbork.pl> writes:
> Hi list,
>
> this I found in the manual:
>
> -- Function: font-lock-add-keywords mode keywords &optional how
> This function adds highlighting KEYWORDS, for the current buffer or
> for major mode MODE. The argument KEYWORDS should be a list with
> the same format as the variable ‘font-lock-keywords’.
>
> If MODE is a symbol which is a major mode command name, such as
> ‘c-mode’, the effect is that enabling Font Lock mode in MODE will
> add KEYWORDS to ‘font-lock-keywords’. Calling with a non-‘nil’
> value of MODE is correct only in your ‘~/.emacs’ file.
>
> If MODE is ‘nil’, this function adds KEYWORDS to
> ‘font-lock-keywords’ in the current buffer. This way of calling
> ‘font-lock-add-keywords’ is usually used in mode hook functions.
>
> My question: why would I want to call this function in a hook if I can
> specify the mode in its invocation? (Assuming that I use it in my
> init.el, of course.)
I can think of two reasons at least:
(1) If MODE has not yet "been initialized", the HOW argument would not
have any effect. In particular, if you want to append your keywords to
the generic ones, this will only work before the mode had been defined.
(2) With MODE -> nil, using the function in a hook is a common use
case, I think.
Regards,
Michael.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Why call font-lock-add-keywords in a mode hook?
2016-01-25 10:03 Why call font-lock-add-keywords in a mode hook? Marcin Borkowski
2016-01-25 14:49 ` Michael Heerdegen
@ 2016-01-26 4:14 ` Stefan Monnier
2016-01-26 8:51 ` Marcin Borkowski
1 sibling, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2016-01-26 4:14 UTC (permalink / raw)
To: help-gnu-emacs
> My question: why would I want to call this function in a hook if I can
> specify the mode in its invocation?
Because the other use is fundamentally unclean, requiring
a re-implementation of major-mode's inheritance, whereas you get it for
free if you use nil for `mode' and call it from the mode's hook instead.
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Why call font-lock-add-keywords in a mode hook?
2016-01-26 4:14 ` Stefan Monnier
@ 2016-01-26 8:51 ` Marcin Borkowski
2016-01-26 13:04 ` Stefan Monnier
0 siblings, 1 reply; 5+ messages in thread
From: Marcin Borkowski @ 2016-01-26 8:51 UTC (permalink / raw)
To: Stefan Monnier; +Cc: help-gnu-emacs
On 2016-01-26, at 05:14, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>> My question: why would I want to call this function in a hook if I can
>> specify the mode in its invocation?
>
> Because the other use is fundamentally unclean, requiring
> a re-implementation of major-mode's inheritance, whereas you get it for
> free if you use nil for `mode' and call it from the mode's hook instead.
Ah, so that means that if I use a non-nil value for the `mode' argument,
say x-mode, and launch a buffer in y-mode, which derives from x-mode,
then I won't have my keywords there?
> Stefan
Best,
--
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Faculty of Mathematics and Computer Science
Adam Mickiewicz University
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Why call font-lock-add-keywords in a mode hook?
2016-01-26 8:51 ` Marcin Borkowski
@ 2016-01-26 13:04 ` Stefan Monnier
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Monnier @ 2016-01-26 13:04 UTC (permalink / raw)
To: Marcin Borkowski; +Cc: help-gnu-emacs
>>> My question: why would I want to call this function in a hook if I can
>>> specify the mode in its invocation?
>> Because the other use is fundamentally unclean, requiring
>> a re-implementation of major-mode's inheritance, whereas you get it for
>> free if you use nil for `mode' and call it from the mode's hook instead.
> Ah, so that means that if I use a non-nil value for the `mode' argument,
> say x-mode, and launch a buffer in y-mode, which derives from x-mode,
> then I won't have my keywords there?
Yes (unless someone wrote the extra code to try and handle this case).
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-01-26 13:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-25 10:03 Why call font-lock-add-keywords in a mode hook? Marcin Borkowski
2016-01-25 14:49 ` Michael Heerdegen
2016-01-26 4:14 ` Stefan Monnier
2016-01-26 8:51 ` Marcin Borkowski
2016-01-26 13:04 ` Stefan Monnier
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).