Subject: bug#27427: 26.0.50; Native line numbers lead to display error in company-mode popup

From: Eli Zaretskii <[email-masked]>
Date: Sun, 25 Jun 2017 21:51:32 +0300

> Date: Sun, 25 Jun 2017 21:36:51 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> 
> I think people who lobby for more extensive and flexible use of the
> margins underestimate the amount of work something like that will
> take.  The current management of the margin display is exceedingly
> rudimentary.  Most of the sophisticated layout stuff we have in the
> text area -- truncation and continuation markers, word-wrap, etc. --
> all that doesn't exist there.  And the cursor cannot enter the
> margins.  Basically, we just put there glyphs until the available
> space is exhausted, and that's it.
> 
> By contrast, you guys are dreaming about full-fledged additional "text
> areas" with all the features we now support in the single one we have.
> That's an entirely new ballpark game, although I agree that it's a
> natural generalization and extension of what we have.  The problem is
> that the knowledge of the basic canvas geometry is hard-coded in many
> places in the display code, and all of them will have to be reworked.
> 
> I think this would be a very good project and a significant progress
> for Emacs, so I'd welcome such a development.  Just don't
> underestimate the magnitude of the task.

Btw, it strikes me that if we want something like that, it should be
much easier to provide side-by-side windows that scroll together or
according to some predefined relation.  This at least doesn't need to
redesign the basic display geometry of a window, only to change the
order in which we traverse the window tree -- instead of the current
depth-first order we'd need some more complicated traversal, and
perhaps also some redisplay considerations that look at more than one
window at a time.  Then just removing the scroll bars from all but one
of these "lockstep" windows will get you what you want at a much
smaller effort.