GNU bug report logs - #33435
27.0.50; A use case for recursive display specifications

Previous Next

Package: emacs;

Reported by: Pip Cet <pipcet <at> gmail.com>

Date: Mon, 19 Nov 2018 18:53:01 UTC

Severity: wishlist

Found in version 27.0.50

Done: Stefan Kangas <stefan <at> marxist.se>

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 33435 in the body.
You can then email your comments to 33435 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#33435; Package emacs. (Mon, 19 Nov 2018 18:53:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Pip Cet <pipcet <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 19 Nov 2018 18:53:01 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.0.50; A use case for recursive display specifications
Date: Mon, 19 Nov 2018 18:51:37 +0000
This is a feature request: I'd like to be able to display an empty line
as a non-empty line with images in it.

If there's a way to do that with standard display specs, I haven't
found it. It's possible I'm merely missing an obvious way to do so.

I think there are two almost-equivalent approaches to achieving this:

1. interpret a list of display specifications by displaying the first
element of the list, then the second, and so, on, so I could use
(put-text-property beg end 'display `(,image1 ,image2 ,image3 "\n"))

2. allow a single level of recursion in display specifications, so I
could use
(put-text-property beg end 'display (concat (propertize " " 'display
image1) (propertize " " 'display image2) (propertize " " 'display
image3) "\n"))

I've tried simply disabling the checks for recursive display
specifications and (2) appears to work, but I don't know the precise
rationale for their existence, so it's possible that breaks the display
engine somehow.

If the problem is merely the possibility of creating an infinite loop
by setting a string's display property to the string itself (indeed,
in my test build, that crashes emacs), that could be avoided while
still allowing a single level of recursion.

(I'm using this to highlight syntactic indentation with SVG images,
and that's much prettier if empty lines are interpreted as being
indented to the minimum of the preceding and following levels of
indentation, rather than merely being empty.)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33435; Package emacs. (Mon, 19 Nov 2018 19:38:01 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> gmail.com>
Cc: 33435 <at> debbugs.gnu.org
Subject: Re: bug#33435: 27.0.50;
 A use case for recursive display specifications
Date: Mon, 19 Nov 2018 21:37:36 +0200
> From: Pip Cet <pipcet <at> gmail.com>
> Date: Mon, 19 Nov 2018 18:51:37 +0000
> 
> This is a feature request: I'd like to be able to display an empty line
> as a non-empty line with images in it.

I don't think I understand this.  Can you elaborate what that means?

In case I did understand: did you try an overlay with after-string
that has an image display property on it?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33435; Package emacs. (Tue, 20 Nov 2018 15:18:02 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> gmail.com>
To: eliz <at> gnu.org
Cc: 33435 <at> debbugs.gnu.org
Subject: Re: bug#33435: 27.0.50;
 A use case for recursive display specifications
Date: Tue, 20 Nov 2018 15:16:25 +0000
On Mon, Nov 19, 2018 at 7:37 PM Eli Zaretskii <eliz <at> gnu.org> wrote:
> > This is a feature request: I'd like to be able to display an empty line
> > as a non-empty line with images in it.
>
> I don't think I understand this.  Can you elaborate what that means?
>
> In case I did understand: did you try an overlay with after-string
> that has an image display property on it?

First, thanks for the suggestion; sorry, it simply hadn't occurred to
me that after/before-string can do things display specifications
cannot.

Obviously I'm still thinking of a display-propertized display
specification string as the more natural thing to do, and things are
slightly different (cursor placement, modifications, highlighting of
included text) with the after-string solution, but I'll try to get
things working that way. Thanks again.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33435; Package emacs. (Tue, 20 Nov 2018 16:31:03 GMT) Full text and rfc822 format available.

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

From: Eli Zaretskii <eliz <at> gnu.org>
To: Pip Cet <pipcet <at> gmail.com>
Cc: 33435 <at> debbugs.gnu.org
Subject: Re: bug#33435: 27.0.50;
 A use case for recursive display specifications
Date: Tue, 20 Nov 2018 18:30:06 +0200
> From: Pip Cet <pipcet <at> gmail.com>
> Date: Tue, 20 Nov 2018 15:16:25 +0000
> Cc: 33435 <at> debbugs.gnu.org
> 
> > In case I did understand: did you try an overlay with after-string
> > that has an image display property on it?
> 
> First, thanks for the suggestion; sorry, it simply hadn't occurred to
> me that after/before-string can do things display specifications
> cannot.

Well, it's still a display spec, just on a string, not on buffer text.

> Obviously I'm still thinking of a display-propertized display
> specification string as the more natural thing to do, and things are
> slightly different (cursor placement, modifications, highlighting of
> included text) with the after-string solution, but I'll try to get
> things working that way. Thanks again.

Let me know if you have other difficulties.  I should warn you that
the combination of an overlay string and a display spec is used
rarely, so you might bump into weird behavior and even bugs.  Until
Emacs 25 I think this combination was very buggy.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33435; Package emacs. (Thu, 03 Oct 2019 00:21:02 GMT) Full text and rfc822 format available.

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

From: Stefan Kangas <stefan <at> marxist.se>
To: Pip Cet <pipcet <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 33435 <at> debbugs.gnu.org
Subject: Re: bug#33435: 27.0.50;
 A use case for recursive display specifications
Date: Thu, 3 Oct 2019 02:20:07 +0200
Pip Cet <pipcet <at> gmail.com> writes:

> On Mon, Nov 19, 2018 at 7:37 PM Eli Zaretskii <eliz <at> gnu.org> wrote:
>> > This is a feature request: I'd like to be able to display an empty line
>> > as a non-empty line with images in it.
>>
>> I don't think I understand this.  Can you elaborate what that means?
>>
>> In case I did understand: did you try an overlay with after-string
>> that has an image display property on it?
>
> First, thanks for the suggestion; sorry, it simply hadn't occurred to
> me that after/before-string can do things display specifications
> cannot.
>
> Obviously I'm still thinking of a display-propertized display
> specification string as the more natural thing to do, and things are
> slightly different (cursor placement, modifications, highlighting of
> included text) with the after-string solution, but I'll try to get
> things working that way. Thanks again.

Is this feature request still relevant, or did Eli's reply solve this
use case?  Thanks.

Best regards,
Stefan Kangas




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#33435; Package emacs. (Thu, 03 Oct 2019 12:35:03 GMT) Full text and rfc822 format available.

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

From: Pip Cet <pipcet <at> gmail.com>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 33435 <at> debbugs.gnu.org
Subject: Re: bug#33435: 27.0.50;
 A use case for recursive display specifications
Date: Thu, 3 Oct 2019 12:33:49 +0000
On Thu, Oct 3, 2019 at 12:20 AM Stefan Kangas <stefan <at> marxist.se> wrote:
> Is this feature request still relevant, or did Eli's reply solve this
> use case?  Thanks.

I think we can close this bug. It would be nice to have a way to do
this without using overlays or modifying buffer text (the latter of
which is what I ended up doing), but hopefully new ideas for how to
handle overlay/text properties will take care of that one day...

Thanks!

Pip




Reply sent to Stefan Kangas <stefan <at> marxist.se>:
You have taken responsibility. (Thu, 03 Oct 2019 16:44:01 GMT) Full text and rfc822 format available.

Notification sent to Pip Cet <pipcet <at> gmail.com>:
bug acknowledged by developer. (Thu, 03 Oct 2019 16:44:02 GMT) Full text and rfc822 format available.

Message #25 received at 33435-done <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Pip Cet <pipcet <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 33435-done <at> debbugs.gnu.org
Subject: Re: bug#33435: 27.0.50;
 A use case for recursive display specifications
Date: Thu, 3 Oct 2019 18:42:48 +0200
skrev Pip Cet <pipcet <at> gmail.com> writes:

> On Thu, Oct 3, 2019 at 12:20 AM Stefan Kangas <stefan <at> marxist.se> wrote:
> > Is this feature request still relevant, or did Eli's reply solve this
> > use case?  Thanks.
>
> I think we can close this bug. It would be nice to have a way to do
> this without using overlays or modifying buffer text (the latter of
> which is what I ended up doing), but hopefully new ideas for how to
> handle overlay/text properties will take care of that one day...
>
> Thanks!

Thank you for clarifying!  Closing now.

Best regards,
Stefan Kangas




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

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

Previous Next


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