[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Patch]: Allow overlay arrows to be inserted before the text at colu

From: Alan Mackenzie
Subject: Re: [Patch]: Allow overlay arrows to be inserted before the text at column zero rather than splatting it.
Date: Sun, 18 Aug 2019 16:15:30 +0000
User-agent: Mutt/1.10.1 (2018-07-13)

Hello, Eli.

On Sun, Aug 18, 2019 at 17:34:09 +0300, Eli Zaretskii wrote:
> > Date: Sun, 18 Aug 2019 13:48:04 +0000
> > From: Alan Mackenzie <address@hidden>

> > Currently, when there are no fringes, inserting an overlay arrow
> > overwrites the first two characters on the pertinent line.  This is fine
> > for things like edebug, where the text is usually indented many columns
> > anyway, and only whitespace gets overwritten.

> > This is less good for things like compilation-mode, where this arrow
> > would obliterate the first two characters of a file name.

> > The following amendment fixes this by allowing the arrow to be displayed
> > at the BOL, displacing the rest of the line two characters to the right.
> > To do this, a new buffer local boolean variable, overlay-arrow-insert is
> > introduced.

> If you want the arrow be displayed before the line's text, why didn't
> you just put a before-string at the beginning of the line, instead of
> implementing this in the display engine?

I think it was to be able to use the same interface that the overlay
arrow already uses, without having to reimplement a lot of it using

> AFAIU, that would give you most of the patch for free, e.g. you
> wouldn't need to mess with the set_cursor_from_row hair.

Yes, there was set_cursor_from_row which I had to change.  Somehow, only
partially initialised glyphs got into it; they pointed to lisp strings,
but with an offset of -1.  This caused an error to be thrown, and the
surrounding internal_condition_case_1 reentered the redisplay code in a
loop, causing Emacs to hang.  I'm not sure where they failed to get
initialised, but the function is probably better with the workaround I
put in.

> What am I missing?

Probably not a lot.  Extending the overlay arrow functionality using
before-strings would certainly have been easier than changing the
display engine.  But it may be worthwhile to be able to use the overlay
arrow interface for "insertion type" arrows.

Alan Mackenzie (Nuremberg, Germany).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]