From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Native display of line numbers
Date: Sat, 17 Jun 2017 20:27:02 +0000 [thread overview]
Message-ID: <20170617202702.GC2955@acm.fritz.box> (raw)
In-Reply-To: <83lgoqzm0v.fsf@gnu.org>
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
more.
> 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.
> TIA
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2017-06-17 20:27 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-17 15:12 Native display of line numbers Eli Zaretskii
2017-06-17 16:41 ` Stefan Monnier
2017-06-17 18:25 ` Eli Zaretskii
2017-06-17 21:25 ` Stefan Monnier
2017-06-18 14:21 ` Eli Zaretskii
2017-06-17 16:52 ` Kaushal Modi
2017-06-17 17:20 ` Kaushal Modi
2017-06-17 17:42 ` Eli Zaretskii
2017-06-17 17:41 ` Eli Zaretskii
2017-06-17 21:16 ` Stefan Monnier
2017-06-18 4:27 ` Kaushal Modi
2017-06-18 14:40 ` Eli Zaretskii
2017-06-17 20:27 ` Alan Mackenzie [this message]
2017-06-17 21:26 ` Stefan Monnier
2017-06-18 2:35 ` Eli Zaretskii
2017-06-18 11:42 ` Alan Mackenzie
2017-06-18 12:16 ` Colin Baxter
2017-06-18 15:06 ` Eli Zaretskii
2017-06-18 15:47 ` Alan Mackenzie
2017-06-18 16:11 ` Eli Zaretskii
2017-06-18 20:19 ` Alan Mackenzie
2017-06-19 2:28 ` Eli Zaretskii
2017-06-17 20:47 ` Sébastien Le Callonnec
2017-06-18 2:38 ` Eli Zaretskii
2017-06-18 10:51 ` Sébastien Le Callonnec
2017-06-17 21:32 ` Mathias Dahl
2017-06-17 22:12 ` James Nguyen
2017-06-18 14:31 ` Eli Zaretskii
2017-06-19 2:25 ` James Nguyen
2017-06-19 15:32 ` Eli Zaretskii
2017-06-19 16:33 ` James Nguyen
2017-06-18 14:28 ` Eli Zaretskii
2017-06-18 14:42 ` Andreas Schwab
2017-06-18 8:44 ` martin rudalics
2017-06-18 8:58 ` martin rudalics
2017-06-18 14:46 ` Eli Zaretskii
2017-06-19 2:39 ` Eli Zaretskii
2017-06-19 8:04 ` martin rudalics
2017-06-19 15:13 ` Eli Zaretskii
2017-06-18 11:03 ` Yuri Khan
2017-06-18 14:54 ` Eli Zaretskii
2017-06-18 16:54 ` Yuri Khan
2017-06-18 19:00 ` Eli Zaretskii
2017-06-19 5:32 ` Yuri Khan
2017-06-19 15:51 ` Eli Zaretskii
2017-06-24 10:32 ` Eli Zaretskii
2017-06-18 19:41 ` Daniele Nicolodi
2017-06-18 20:04 ` Eli Zaretskii
2017-06-18 20:48 ` Daniele Nicolodi
2017-06-19 2:31 ` Eli Zaretskii
2017-06-19 3:07 ` Daniele Nicolodi
2017-06-19 15:03 ` Eli Zaretskii
2017-06-19 2:44 ` Clément Pit-Claudel
2017-06-19 4:15 ` Eli Zaretskii
2017-06-19 4:30 ` Clément Pit-Claudel
2017-06-18 22:20 ` Scott Jaderholm
2017-06-19 2:34 ` Eli Zaretskii
2017-06-19 5:49 ` Scott Jaderholm
2017-06-19 16:56 ` Stephen Leake
2017-06-19 17:11 ` Eli Zaretskii
2017-06-19 18:43 ` Stephen Leake
2017-06-19 19:32 ` Eli Zaretskii
2017-06-19 18:39 ` Alan Mackenzie
2017-06-19 19:28 ` Eli Zaretskii
2017-06-19 19:38 ` Alan Mackenzie
2017-06-19 19:51 ` Eli Zaretskii
2017-06-22 15:02 ` Filipe Silva
2017-06-22 15:38 ` Eli Zaretskii
2017-06-22 15:46 ` Filipe Silva
2017-06-23 16:23 ` Stefan Monnier
2017-06-23 21:04 ` Eli Zaretskii
2017-06-23 21:24 ` Stefan Monnier
2017-06-24 7:18 ` Eli Zaretskii
2017-06-22 16:27 ` Yuri Khan
2017-06-22 16:56 ` Stephen Berman
2017-06-23 11:10 ` Filipe Silva
2017-06-23 11:17 ` Filipe Silva
-- strict thread matches above, loose matches on Subject: below --
2017-06-17 23:44 Joseph Garvin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170617202702.GC2955@acm.fritz.box \
--to=acm@muc.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.