From: "Perry E. Metzger" <perry@piermont.com>
To: emacs-devel@gnu.org
Subject: Re: [SPAM UNSURE] Maybe we're taking a wrong approach towards tree-sitter
Date: Mon, 2 Aug 2021 18:13:17 -0400 [thread overview]
Message-ID: <55094f8b-3572-0193-2280-b8e80500082f@piermont.com> (raw)
In-Reply-To: <AM9PR09MB49775E10862C9E89DF85AD8796EC9@AM9PR09MB4977.eurprd09.prod.outlook.com>
On 7/30/21 08:06, Arthur Miller wrote:
> I undestand that having specialized regex matcher is more efficient than
> some generalized regular matcher current font-locking in Emacs relies
> upon, but is it *that* more efficient to be worth the extra troubles?
It is not a question of efficiency. You cannot parse a context free
grammar using regular expressions. The reason that almost all our
highlight modes produce random garbage throughout is that you cannot
parse a context free grammar using regular expressions. (For many
languages, correctness isn't just occasionally violated, it's generally
violated.)
Reliable highlighting regardless of code formatting, reliable
indentation assistance, reliable code folding, and other such features
require that the editor be able to both parse the program being edited
_and_ that the editor be able to incrementally re-parse it as it changes
in minimal time.
Other editors now have such features and make good use of them. Highly
reliable code folding alone is worth the price of admission IMHO.
(Currently, the best we can do for code folding is assume that the
indentation is correct.)
LSP has been revolutionary in improving the programmer's experience in
Emacs. Tree Sitter will provide significant additional improvement.
> TS seem to keep state (a node) for each character typed, that will be a
> lot of memory consumed in some big files.
No one will be forced to turn it on. I, however, almost certainly will.
My productivity is more important to me than my RAM budget. Those that
don't like it, though, won't have to pay the RAM tax.
Perry
next prev parent reply other threads:[~2021-08-02 22:13 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-28 1:57 Maybe we're taking a wrong approach towards tree-sitter Andrei Kuznetsov
2021-07-28 3:53 ` [SPAM UNSURE] " Stephen Leake
2021-07-28 8:23 ` Manuel Giraud
2021-07-28 11:48 ` Andrei Kuznetsov
2021-07-28 13:04 ` Eli Zaretskii
2021-07-28 13:14 ` Andrei Kuznetsov
2021-07-28 13:27 ` Eli Zaretskii
2021-07-28 13:31 ` Andrei Kuznetsov
2021-07-28 14:24 ` Dmitry Gutov
2021-07-28 14:36 ` Dmitry Gutov
2021-07-28 14:51 ` Daniele Nicolodi
2021-07-28 16:10 ` Eli Zaretskii
2021-07-28 16:24 ` Perry E. Metzger
2021-07-28 16:29 ` Eli Zaretskii
2021-07-29 23:12 ` Stephen Leake
2021-07-29 23:21 ` Yuan Fu
2021-07-30 18:38 ` Stephen Leake
2021-07-30 0:41 ` Andrei Kuznetsov
2021-07-30 12:06 ` Arthur Miller
2021-07-30 12:52 ` Óscar Fuentes
2021-07-30 13:30 ` Arthur Miller
2021-07-30 13:57 ` Ergus
2021-07-30 14:52 ` Arthur Miller
2021-07-30 13:59 ` Eli Zaretskii
2021-07-30 15:45 ` Arthur Miller
2021-07-30 13:32 ` Ergus
2021-07-30 15:07 ` Arthur Miller
2021-08-02 22:13 ` Perry E. Metzger [this message]
2021-07-30 18:42 ` Stephen Leake
2021-07-30 6:05 ` Eli Zaretskii
2021-07-31 12:12 ` Stephen Leake
2021-07-31 13:07 ` Eli Zaretskii
2021-07-31 16:55 ` Stephen Leake
2021-07-31 17:12 ` Eli Zaretskii
2021-07-28 11:43 ` Andrei Kuznetsov
2021-07-28 11:50 ` Eli Zaretskii
2021-07-28 12:06 ` Andrei Kuznetsov
2021-07-28 13:05 ` Eli Zaretskii
2021-07-28 13:16 ` Andrei Kuznetsov
2021-07-28 12:36 ` Ergus
2021-07-28 13:07 ` Andrei Kuznetsov
2021-07-28 13:16 ` Eli Zaretskii
2021-07-28 13:27 ` Andrei Kuznetsov
2021-07-28 13:32 ` Eli Zaretskii
2021-07-28 13:38 ` Andrei Kuznetsov
2021-07-28 14:41 ` Manuel Giraud
2021-07-28 15:15 ` Perry E. Metzger
2021-07-28 16:10 ` Eli Zaretskii
2021-07-29 23:25 ` [SPAM UNSURE] " Stephen Leake
2021-07-30 0:54 ` Andrei Kuznetsov
2021-07-30 3:02 ` Andrei Kuznetsov
2021-07-30 18:48 ` Stephen Leake
2021-07-28 15:12 ` Perry E. Metzger
2021-07-29 23:28 ` Stephen Leake
2021-07-30 0:19 ` Perry E. Metzger
2021-07-30 18:44 ` [SPAM UNSURE] " Stephen Leake
2021-07-29 4:35 ` Richard Stallman
2021-07-28 15:09 ` Perry E. Metzger
2021-07-29 23:35 ` Stephen Leake
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=55094f8b-3572-0193-2280-b8e80500082f@piermont.com \
--to=perry@piermont.com \
--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.