unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dmitry@gutov.dev>
To: Philip Kaludercic <philipk@posteo.net>
Cc: Stefan Kangas <stefankangas@gmail.com>,
	emacs-devel@gnu.org,
	Stephen Leake <stephen_leake@stephe-leake.org>
Subject: Re: Is it better to add treesitter modes to core?
Date: Mon, 8 Jan 2024 14:46:36 +0200	[thread overview]
Message-ID: <505f644d-235b-4565-978d-8e8cea3e765b@gutov.dev> (raw)
In-Reply-To: <871qas8i6s.fsf@posteo.net>

On 08/01/2024 08:15, Philip Kaludercic wrote:

>>> In my ideal world, we should have basic editing support in place in
>>> Emacs for typical tasks, and packages should provide extensions.  Most
>>> users don't particularly enjoy starting work with installing a bunch of
>>> extras.
>>
>> The way VS Code works and its level of popularity seem to say otherwise.
> 
> One notable difference is that VS Code prompts users to install the
> necessary packages, while with Emacs one has to figure out what to
> install (and how to install it in the case of ada-mode).

We were talking about a feature like that for Emacs too, at some point. 
Aside from cases like ada-mode, it wouldn't be hard to implement.

>> And yet the Vim repository doesn't have any tree-sitter integration,
>> it's all third-party. I don't think we'll see it there anytime soon
>> (or even in the medium term).
> 
> I don't know how to check this, but didn't Neovim have built-in
> tree-sitter support?

You're thinking of LSP. nvim-treesitter is a separate plugin, with 
"experimental" in bold in its description.

>> Possible grammar versioning problems. But the above should be small
>> and stable enough, nor should they require many changes over the
>> years.
> 
> I don't think this has to be a problem.  Last year I had suggested that
> `treesit-install-language-grammar' should download release GitHub
> tarballs, not just clone the repository (which requires Git, and is
> prone to upstream breakage).

It's a problem anyway when the ts mode in the Emacs release that the 
user has installed is out of sync with whatever grammar release would be 
downloaded by the above method.

These releases can also be sparse and outdated: the last tagged version 
of tree-sitter-ruby is 0.19 from 3 years ago. There was a version update 
to 0.20 2 years ago but it's not tagged. And there are useful recent 
changes as well.

>>>> And Ada is niche enough that even the argument of having the popular
>>>> languages supported OOtB doesn't work.
>>> I think historical context matters here.  Ada is not exactly in
>>> vogue
>>> these days, but it _is_ supported by GCC, and it has an ISO standard.
>>> It's not some random novelty language for people that feel that
>>> Typescript is not edgy enough, or anything like that.
>>> We also happened to support it in Emacs for ages.
>>
>> And it's still there in ELPA, available for everybody to install.
>>
>> Note that I don't mean to belittle Stephen's work, nor have any desire
>> to throw it away, but the sentiment "it's unmaintained, let's bring it
>> in the core and see what happens" sounds very wrong to me.
> 
> Just to clarify, my question was what people would think of adding
> ada-mode back to the core, if it were simplified using tree sitter.

ada-ts-mode might look very different from the current ada-mode.

It's unclear which approach the next maintainer of ada-mode is going to 
take. One of Stephen's outlined alternatives (2) describes 
reimplementing its own parser on top of tree-sitter (and I'm guessing 
that he would prefer 2 over 3). That sounds like more work than 
implementing ada-ts-mode on top of treesit.el like the others.

Oh, and speaking of motivated developers. Someone who knows at least a 
little Ada should check this out: https://github.com/brownts/ada-ts-mode





  reply	other threads:[~2024-01-08 12:46 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-07 12:34 Ada-mode to be abandoned? Philip Kaludercic
2024-01-07 14:48 ` Eli Zaretskii
2024-01-07 15:21 ` Dmitry
2024-01-07 15:25   ` Eli Zaretskii
2024-01-07 15:54     ` Dmitry
2024-01-07 16:55       ` Eli Zaretskii
2024-01-08  2:14         ` Dmitry Gutov
2024-01-08  3:36           ` Eli Zaretskii
2024-01-08 12:22             ` Eli Zaretskii
2024-01-08 12:37               ` Dmitry Gutov
2024-01-08  1:45       ` Po Lu
2024-01-07 15:34   ` Daniel Mendler via Emacs development discussions.
2024-01-07 15:45     ` Alfred M. Szmidt
2024-01-07 15:58     ` Dmitry
2024-01-07 17:52     ` Stefan Kangas
2024-01-07 16:26   ` Philip Kaludercic
2024-01-07 16:48     ` Daniel Mendler via Emacs development discussions.
2024-01-07 20:36     ` Dmitry Gutov
2024-01-07 21:02       ` Daniel Mendler via Emacs development discussions.
2024-01-07 21:27         ` Stefan Kangas
2024-01-07 22:05           ` Daniel Mendler via Emacs development discussions.
2024-01-08  3:26         ` Eli Zaretskii
2024-01-07 17:46   ` Is it better to add treesitter modes to core? Stefan Kangas
2024-01-07 21:27     ` Dmitry Gutov
2024-01-08  6:15       ` Philip Kaludercic
2024-01-08 12:46         ` Dmitry Gutov [this message]
2024-01-08 12:47         ` Eli Zaretskii
2024-01-09 19:27           ` Philip Kaludercic
2024-01-09 19:54             ` Eli Zaretskii
2024-01-09 20:21               ` Philip Kaludercic
2024-01-10  3:29                 ` Eli Zaretskii
2024-01-09  5:20       ` Stefan Kangas
2024-01-09 17:50         ` Dmitry Gutov
2024-01-09 17:54           ` Dmitry Gutov
2024-01-09 18:59           ` Stefan Kangas
2024-01-09 19:51             ` Eli Zaretskii
2024-01-09 20:06               ` Dmitry Gutov
2024-01-10  6:27                 ` Stefan Kangas
2024-01-10 11:38                   ` Dmitry Gutov
2024-01-10 12:03                     ` Stefan Kangas
2024-01-10 12:14                       ` Dmitry Gutov
2024-01-10 15:11                         ` Stefan Kangas
2024-01-10 12:35                       ` Modes in generic-x.el (was: Is it better to add treesitter modes to core?) Peter Oliver
2024-01-10 13:50                         ` Eli Zaretskii
2024-01-10 13:47                       ` Is it better to add treesitter modes to core? Eli Zaretskii
2024-01-07 16:29 ` Ada-mode to be abandoned? Fernando Oleo Blanco
2024-01-07 16:48   ` Philip Kaludercic
2024-01-07 17:22     ` Fernando Oleo Blanco

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=505f644d-235b-4565-978d-8e8cea3e765b@gutov.dev \
    --to=dmitry@gutov.dev \
    --cc=emacs-devel@gnu.org \
    --cc=philipk@posteo.net \
    --cc=stefankangas@gmail.com \
    --cc=stephen_leake@stephe-leake.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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).