Subject: bug#23783: closed (Re: bug#23783: Emacs 25: Changing font-lock-maximum-decoration doesn't work.)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 18 Jun 2016 09:56:02 +0000

Your bug report

#23783: Emacs 25: Changing font-lock-maximum-decoration doesn't work.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
23783: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23783
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#23783: Emacs 25: Changing font-lock-maximum-decoration doesn't work.
From: Eli Zaretskii <[email-masked]>
To: Alan Mackenzie <[email-masked]>
Cc: [email-masked]
Date: Sat, 18 Jun 2016 12:56:10 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Fri, 17 Jun 2016 10:25:00 +0000
> From: Alan Mackenzie <[email-masked]>
> 
> 1. emacs -Q
> 2. M-x customize-variable <CR> font-lock-maximum-decoration <CR>
>    o - set the level to 1 (minimum decoration) and apply the new
>      setting.
> 3. C-x C-f .../src/xdisp.c
> 4. Note that font locking is indeed at level 1.  Note, indeed, how fast
>    scrolling works.  ;-)
> 5. M-x customize-variable <CR> font-lock-maximum-decoration <CR>
>    o - set the level to t (maximum decoration) and apply.
> 6. (In the xdisp.c window) M-x font-lock-mode, twice.
> 7. Note that the font locking remains at level 1.
> 
> This last is surely a bug.  Enabling font locking in a buffer should use
> the current valid setting of font-lock-maximum-decoration.

It's quite clear from the code that this is the intended behavior.
The comments for font-lock-set-defaults (the function and the
variable) and for font-lock-refresh-defaults are especially revealing.

> There are no instructions in the Emacs manual which tell you how to
> change decoration levels.  It merely states on page "Font Lock Mode"
> that "You can customize the variable `font-lock-maximum-decoration' to
> alter the amount of fontification applied by Font Lock mode, for major
> modes that support this feature.".  This doesn't then say what is to be
> done after doing such customization, for it to take effect.
> 
> There is a non-interactive function `font-lock-refresh-defaults' which
> works, but this function isn't called from anywhere in Emacs.

I have added to the Emacs manual explanation of how to make the
customization of font-lock-maximum-decoration effective in a file
buffer.  In a nutshell, you need to either customize before visiting
the file, or kill the buffer and revisit the file after the
customization.

I think this fixes this bug, so I'm closing it.

Thanks.

Subject: Emacs 25: Changing font-lock-maximum-decoration doesn't work.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Fri, 17 Jun 2016 10:25:00 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Emacs.

In GNU Emacs 25.0.94.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.7)
 of 2016-06-07 built on acm
Repository revision: 9d5ccebeba0506f7280662630f0ee85a52c8a327
Configured using:
 'configure --with-tiff=no --with-gif=no --with-gpm'

Do this:
1. emacs -Q
2. M-x customize-variable <CR> font-lock-maximum-decoration <CR>
   o - set the level to 1 (minimum decoration) and apply the new
     setting.
3. C-x C-f .../src/xdisp.c
4. Note that font locking is indeed at level 1.  Note, indeed, how fast
   scrolling works.  ;-)
5. M-x customize-variable <CR> font-lock-maximum-decoration <CR>
   o - set the level to t (maximum decoration) and apply.
6. (In the xdisp.c window) M-x font-lock-mode, twice.
7. Note that the font locking remains at level 1.

This last is surely a bug.  Enabling font locking in a buffer should use
the current valid setting of font-lock-maximum-decoration.

Discussion:
-----------

There are no instructions in the Emacs manual which tell you how to
change decoration levels.  It merely states on page "Font Lock Mode"
that "You can customize the variable `font-lock-maximum-decoration' to
alter the amount of fontification applied by Font Lock mode, for major
modes that support this feature.".  This doesn't then say what is to be
done after doing such customization, for it to take effect.

There is a non-interactive function `font-lock-refresh-defaults' which
works, but this function isn't called from anywhere in Emacs.

-- 
Alan Mackenzie (Nuremberg, Germany).