Subject: bug#56820: outline-minor-mode replacing the first character with an arrow

From: Juri Linkov <[email-masked]>
Date: Thu, 08 Sep 2022 20:39:24 +0300

>> I counted ~100 occurrences of display_line_numbers in xdisp.c.
>> So I guess display_outlines could be added based on code
>> for display_line_numbers using the same strategy as
>> tab_line was added based on header_line.
>> 
>> If this is a good idea, I could look into doing this
>> after finishing all already opened issues, probably
>> around December.
>
> I don't think I understand what you mean by "same strategy" here, so I
> cannot answer the question yet.
>
> Vdisplay_line_numbers is used in xdisp.c for several purposes:
>
>   . adjust layout calculations for the space taken by line numbers
>   . disable some redisplay optimizations that cannot be used when line
>     numbers (especially relative numbers) are displayed
>   . produce and display the line numbers for relevant lines
>
> Which one(s) are "strategy" for the purpose of this discussion?

The strategy is to reuse the existing code that adjusts layout calculations
to display the line numbers, and to display outline arrows after line numbers.

> I also don't think I understand which parts of the image you posted
> you want to emulate.  In addition to outline-style widgets for folding
> and un-folding buffer text, the image shows vertical lines that
> delineate code blocks.  Those are shown in the same column as the
> braces, and thus call for a different kind of implementation than the
> line numbers.  I guess you didn't mean those?

I meant only outline arrows for folding and un-folding,
not vertical lines for code blocks.  I recall someone
provided some patches to implement crosshairs, but maybe
the existing display-fill-column-indicator-mode could be
adapted to display vertical lines for code blocks.