--- Begin Message ---
Subject: |
27.1; `display-line-numbers-mode`, line numbers hidden with multiline overlays |
Date: |
Mon, 19 Apr 2021 16:46:16 +0200 |
When putting an overlay over multiple lines, the line numbers of
`display-line-numbers-mode` are hidden.
(defun bug ()
(display-line-numbers-mode)
(goto-char (point-min))
(let ((ov (make-overlay (line-beginning-position)
(save-excursion (forward-line 4)
(line-beginning-position)))))
(overlay-put ov 'invisible t)
(overlay-put ov 'before-string "line1\nline2\nline3\line3\nline4\n")))
I've also observed the issue with Emacs 28.
In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.5,
cairo version 1.16.0)
of 2021-02-09, modified by Debian built on 3df710f593d9
Repository revision: b0229d4bbaea7fcddffced393512c650212830db
Repository branch: deb/emacs/d/sid/master
Windowing system distributor 'The X.Org Foundation', version 11.0.12004000
System Description: Debian GNU/Linux 10 (buster)
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#47893: 27.1; `display-line-numbers-mode`, line numbers hidden with multiline overlays |
Date: |
Mon, 19 Apr 2021 18:29:28 +0300 |
> Cc: 47893@debbugs.gnu.org
> From: Daniel Mendler <mail@daniel-mendler.de>
> Date: Mon, 19 Apr 2021 17:10:59 +0200
>
> On 4/19/21 4:55 PM, Eli Zaretskii wrote:
> > What do you mean by "hidden"? With the above recipe, I see all the
> > line numbers starting from 5, as expected. What is "hidden" here?
>
> When I have a buffer with the following content:
>
> 1 a
> 2 b
> 3 c
> 4 d
> 5 e
> 6 f
> 7 g
> 8 h
> 9 i
>
> And run the given function, I see the following:
>
> 5 line1
> line2
> line3
> line4
> e
> 6 f
> 7 g
> 8 h
> 9 i
Right, and this is expected.
> I suppose this is expected since the overlay hides all the lines in
> between?
Yes, exactly. We only show the line numbers for lines that are
displayed. Compare with, for example, Org buffers, where we don't
show line numbers for lines that are invisible.
> You can close this issue then as invalid, since the display line
> numbers don't reflect the visual lines but the lines in the buffer.
You can have the visual line numbers as well: just set the line-number
style to 'visual'.
Closing.
--- End Message ---