[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#27281: Fix nlinum missing line numbers.
From: |
Bryan Gilbert |
Subject: |
bug#27281: Fix nlinum missing line numbers. |
Date: |
Sat, 10 Jun 2017 10:35:29 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 |
On 06/10/2017 07:51 AM, npostavs@users.sourceforge.net wrote:
> William Gilbert <gilbertw1@gmail.com> writes:
>
>> I've been working to track to down a bug where line numbers are
>> occasionally missing when using nlinum mode. Currently there is a
package
>> written to workaround the problem that has a picture and description
of the
>> problem: https://github.com/hlissner/emacs-nlinum-hl.
>>
>> After extensive debugging I've tracked the problem down to the
>> 'nlinum--region' function. Specifically the while loop check that
>> determines if '(point)' is less than the limit. I've found that the
problem
>> exists when '(point)' is exactly equal to 'limit'. In this scenario the
>> loop terminates and the last line in the region is not provided with
a line
>> number.
>
> Do you know how to reproduce this scenario?
I don't know how to easily and reliably reproduce this problem. I
normally encounter it at least once every few minutes. I've reproduced
the problem in my configuration, which is a derivative of the doom
configuration (https://github.com/hlissner/.emacs.d), and using
spacemacs with nlinum enabled. I don't know if there is anything
specific to those two configurations that makes the problem present
itself more frequently, but using one of those setups you should see the
problem relatively quickly.
I lucked out and had a saved perspective (persp-mode) that exhibited
this problem every time I loaded it, which was what allowed me to
reliably debug the problem.
>
>> I was able to remedy the problem by changing the condition from
>> 'less than' to 'less than or equal to', which will allow the last
line in
>> the region to be properly assigned a line number.
>
> This sounds like a workaround, possibly to a bug in jit-lock. Or
> perhaps we need to return a list of the form (jit-lock-bounds BEG END)
> from nlinum--region?
I am not familiar with jit-lock and am still all around very much a
novice with elisp and emacs. I essentially zeroed in on the problem, but
instrumenting some of the nlinum functions with print messages. I still
have the perspective and underlying files preserved that replicate this
problem everytime I load them. If there is anything you would like me to
test or debug, please let me know. I will try to dig a little deeper to
understand nlinum's interaction with jit-lock.