GNU bug report logs - #33913
26.1; Optionally not font-lock newline char when `comment-end' = ""

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Sat, 29 Dec 2018 22:50:01 UTC

Severity: wishlist

Tags: wontfix

Found in version 26.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 33913 in the body.
You can then email your comments to 33913 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Sat, 29 Dec 2018 22:50:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Drew Adams <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 29 Dec 2018 22:50:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.1; Optionally not font-lock newline char when `comment-end' = ""
Date: Sat, 29 Dec 2018 14:39:58 -0800 (PST)
See https://emacs.stackexchange.com/q/46808/105.

Please consider letting users easily (e.g. user option) not highlight a
newline character when it ends a comment, such as in Lisp.

The effect should be to highlight only the chars of the line, starting
with `comment-start', up to but not including the newline char.

(I never would have noticed how annoying the default behavior is if I hadn't tried putting a background color on comments, as the OP did.  I don't even think it should be the default behavior to highlight the newline char.)


In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
 of 2018-05-30
Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea
Windowing system distributor `Microsoft Corp.', version 10.0.16299
Configured using:
 `configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static -g3''




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Sun, 30 Dec 2018 11:52:01 GMT) Full text and rfc822 format available.

Message #8 received at 33913 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 33913 <at> debbugs.gnu.org
Subject: Re: bug#33913: 26.1;
 Optionally not font-lock newline char when `comment-end' = ""
Date: 30 Dec 2018 11:51:25 -0000
Hello, Drew.

In article <mailman.6534.1546123809.1284.bug-gnu-emacs <at> gnu.org> you wrote:
> See https://emacs.stackexchange.com/q/46808/105.

> Please consider letting users easily (e.g. user option) not highlight a
> newline character when it ends a comment, such as in Lisp.

OK, let's consider it.  The comment delimiters in Emacs are considered
part of the comment, and fontified with it.  In fact, I believe they get
font-lock-comment-delimiter-face.

It is open to the user to customize f-l-comment-delimiter-face not to
inherit from f-l-comment-face, but instead to have a neutral effect.

> The effect should be to highlight only the chars of the line, starting
> with `comment-start', up to but not including the newline char.

So the starting and stopping delimiters of a comment should get different
faces.  Hmmm.  Why?

One way to get this would be to introduce
font-lock-comment-terminator-face, inheriting by default from one of the
two existing comment faces.

> (I never would have noticed how annoying the default behavior is if I
> hadn't tried putting a background color on comments, as the OP did.  I
> don't even think it should be the default behavior to highlight the
> newline char.)

If the OP doesn't want the terminators fontified, why does he want the
comment openers fontified?  This seems a bit inconsistent.  I mean, if a
string's being fontified, you'd want either both of the "s (as Emacs
does) or neither of them (XEmacs) to get string face.  Why are comments
different?

> In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
>  of 2018-05-30
> Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea
> Windowing system distributor `Microsoft Corp.', version 10.0.16299
> Configured using:
>  `configure --without-dbus --host=x86_64-w64-mingw32
>  --without-compress-install 'CFLAGS=-O2 -static -g3''

-- 
Alan Mackenzie (Nuremberg, Germany).





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Sun, 30 Dec 2018 12:34:02 GMT) Full text and rfc822 format available.

Message #11 received at 33913 <at> debbugs.gnu.org (full text, mbox):

From: Alan Mackenzie <acm <at> muc.de>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 33913 <at> debbugs.gnu.org
Subject: Re: bug#33913: 26.1;
 Optionally not font-lock newline char when `comment-end' = ""
Date: 30 Dec 2018 12:33:13 -0000
Hello, Drew.

In article <mailman.6551.1546170751.1284.bug-gnu-emacs <at> gnu.org> you wrote:
> In article <mailman.6534.1546123809.1284.bug-gnu-emacs <at> gnu.org> you wrote:
>> See https://emacs.stackexchange.com/q/46808/105.

>> Please consider letting users easily (e.g. user option) not highlight a
>> newline character when it ends a comment, such as in Lisp.

> OK, let's consider it.  The comment delimiters in Emacs are considered
> part of the comment, and fontified with it.  In fact, I believe they get
> font-lock-comment-delimiter-face.

Apologies, I was wrong, here.  When the terminator is \n, comment-end is
"", not "\n", and things get confused.  comment-end is NOT and NEVER WAS
the comment terminator.  It's merely what gets inserted when you type
M-;.  I don't think there is a variable which holds the comment
terminator; there is merely an entry in the mode's syntax table.

The rest of my post was largely speculation, and was also wrong.  Please
ignore it.

[ .... ]

>> In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
>>  of 2018-05-30
>> Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea
>> Windowing system distributor `Microsoft Corp.', version 10.0.16299
>> Configured using:
>>  `configure --without-dbus --host=x86_64-w64-mingw32
>>  --without-compress-install 'CFLAGS=-O2 -static -g3''

-- 
Alan Mackenzie (Nuremberg, Germany).





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Sun, 30 Dec 2018 17:23:02 GMT) Full text and rfc822 format available.

Message #14 received at 33913 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 33913 <at> debbugs.gnu.org
Subject: RE: bug#33913: 26.1; Optionally not font-lock newline char when
 `comment-end' = ""
Date: Sun, 30 Dec 2018 09:21:56 -0800 (PST)
> Apologies, I was wrong, here.  When the terminator is \n, comment-end is
> "", not "\n", and things get confused.  comment-end is NOT and NEVER WAS
> the comment terminator.  It's merely what gets inserted when you type
> M-;.  I don't think there is a variable which holds the comment
> terminator; there is merely an entry in the mode's syntax table.
> 
> The rest of my post was largely speculation, and was also wrong.  Please
> ignore it.

Hi Alan.  No problem, and thanks for having looked into this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Sun, 30 Dec 2018 17:48:02 GMT) Full text and rfc822 format available.

Message #17 received at 33913 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Drew Adams <drew.adams <at> oracle.com>, 33913 <at> debbugs.gnu.org
Subject: Re: bug#33913: 26.1;
 Optionally not font-lock newline char when `comment-end' = ""
Date: Sun, 30 Dec 2018 18:46:55 +0100
[Message part 1 (text/plain, inline)]
> Please consider letting users easily (e.g. user option) not highlight a
> newline character when it ends a comment, such as in Lisp.
>
> The effect should be to highlight only the chars of the line, starting
> with `comment-start', up to but not including the newline char.

For my private solution to this problem look at the attached file.

> (I never would have noticed how annoying the default behavior is if
> I hadn't tried putting a background color on comments, as the OP
> did.  I don't even think it should be the default behavior to
> highlight the newline char.)

Fully agreed.

martin
[font-lock-fontify-syntactically-region.el (application/emacs-lisp, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Sun, 30 Dec 2018 18:24:02 GMT) Full text and rfc822 format available.

Message #20 received at 33913 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: martin rudalics <rudalics <at> gmx.at>, 33913 <at> debbugs.gnu.org
Subject: RE: bug#33913: 26.1; Optionally not font-lock newline char when
 `comment-end' = ""
Date: Sun, 30 Dec 2018 10:23:06 -0800 (PST)
>  > Please consider letting users easily (e.g. user option) not highlight a
>  > newline character when it ends a comment, such as in Lisp.
>  >
>  > The effect should be to highlight only the chars of the line, starting
>  > with `comment-start', up to but not including the newline char.
> 
> For my private solution to this problem look at the attached file.

Maybe you could fix that up to become a
general replacement, to fix this bug (only)?

But I do think a user option might be good,
or even a non-option variable.

>  > (I never would have noticed how annoying the default behavior is if
>  > I hadn't tried putting a background color on comments, as the OP
>  > did.  I don't even think it should be the default behavior to
>  > highlight the newline char.)
> 
> Fully agreed.

I doubt that such an incompatible change (to
the default) would be accepted immediately.
But a fix for the bug might be.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Sun, 30 Dec 2018 19:01:02 GMT) Full text and rfc822 format available.

Message #23 received at 33913 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Drew Adams <drew.adams <at> oracle.com>, 33913 <at> debbugs.gnu.org
Subject: Re: bug#33913: 26.1;
 Optionally not font-lock newline char when `comment-end' = ""
Date: Sun, 30 Dec 2018 20:00:33 +0100
> Maybe you could fix that up to become a
> general replacement, to fix this bug (only)?

No.  It's a hack to use fontification for that purpose.

> But I do think a user option might be good,
> or even a non-option variable.

This problem should be solved with the help of a new :no-extend-to-eol
face attribute.  Whenever set - typically in 'font-lock-comment-face',
'font-lock-doc-face' and 'font-lock-string-face' - the display engine
would show the default background on the rest of the line.  The idea
sounds deceptively simple but I never got around coding it.

> I doubt that such an incompatible change (to
> the default) would be accepted immediately.
> But a fix for the bug might be.

If it's made a face property, users are free to customize it at their
will.  But I obviously wouldn't oppose an :extend-to-eol attribute.

martin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33913; Package emacs. (Wed, 30 Oct 2019 19:21:02 GMT) Full text and rfc822 format available.

Message #26 received at 33913 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 33913 <at> debbugs.gnu.org
Subject: Re: 26.1; Optionally not font-lock newline char when `comment-end'
 = ""
Date: Wed, 30 Oct 2019 20:20:42 +0100
Drew Adams <drew.adams <at> oracle.com> writes:

> Please consider letting users easily (e.g. user option) not highlight a
> newline character when it ends a comment, such as in Lisp.
>
> The effect should be to highlight only the chars of the line, starting
> with `comment-start', up to but not including the newline char.
>
> (I never would have noticed how annoying the default behavior is if I
> hadn't tried putting a background color on comments, as the OP did.  I
> don't even think it should be the default behavior to highlight the
> newline char.)

I agree that this would have been useful earlier, but Emacs now has
support for not extending faces to the end of the line when the newline
has a face, so this no longer seems pertinent, and I'm closing this bug
report.  If others think that it's still worth doing something about,
please reopen.

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




Added tag(s) wontfix. Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 30 Oct 2019 19:21:04 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 33913 <at> debbugs.gnu.org and Drew Adams <drew.adams <at> oracle.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Wed, 30 Oct 2019 19:21:05 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 28 Nov 2019 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 149 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.