[Top][All Lists]

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

Re: Native display of line numbers

From: Alan Mackenzie
Subject: Re: Native display of line numbers
Date: Sat, 17 Jun 2017 20:27:02 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

Hello, Eli.

On Sat, Jun 17, 2017 at 18:12:00 +0300, Eli Zaretskii wrote:
> I generally consider display of line numbers for each line in the
> buffer un-Emacsy, something that came from the dark era when we needed
> to count lines to be able to tell the then existing editors something
> like "move down N lines, then DO SOMETHING".  Emacs pioneered today's
> world where all this is unnecessary, and the rest is history.

> However, many users want line numbers to be displayed in Emacs.  I
> don't know why they want it, perhaps they were "spoiled" by other IDEs
> or something.

I'm not sure either.  One possible use is when using a build process
disjoint from Emacs which gives error and warning messages on a
terminal.  It may be easier to find the pertinent lines if the line
numbers are displayed prominently.  But this is speculation, nothing

> In any case, given the popularity of the various add-on modes which
> insist on displaying line numbers using all kinds of tricks, I don't
> think we can ignore this tendency any longer, even if we agree that
> this is a disease.  The "epidemic" has spread too far and too wide for
> us to continue looking the other way.  And since Emacs doesn't make it
> easy for a Lisp program to invade the holy realm of redisplay, those
> modes use tricks that make Emacs slower and frequently interfere with
> other packages.  They also make demands on the display engine that
> make Emacs harder to develop and maintain.

Yes to all of that.

> So with that in mind, I came up with an implementation of a native
> display of line numbers.  You can find it in the scratch/line-numbers
> branch of the Emacs repository.  Compared with linum-mode,
> nlinum-mode, and other similar modes, it has the following main
> advantages:

>   . it works significantly faster (almost twice as fast as linum-mode,
>     50% faster that relative-line-numbers-mode)
>   . it doesn't use the display margins
>   . it works with R2L text, something the old modes never did

And, for me, the display engine is simply the Right Place to implement
these line numbers.

> The main features of the line-numbering modes are all supported by
> this new feature.

> Please give it a try and report any bugs you find.  I'm sure there
> will be quite a few bugs, given the sheer amount of display feature
> which could be affected, and which I didn't have time to test.

Just one or two minor irritations: it's not clear what face the line
numbers are displayed with; presumably this will become a defcustom in
the finished version.  Also, it's not clear what "relative" line numbers
are, though I dare say it would become clear if I actually tried it
(and I admit I haven't tried RTFM).  ;-)

> Once the flood of serious bug reports dries out, I will look into
> merging this to master.  If, miraculously, no such flood arrives, I
> will merge in a couple of weeks.  When that happens, we will declare
> all the other modes which do the same job deprecated.

I'm in favour of this.


Alan Mackenzie (Nuremberg, Germany).

reply via email to

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