help / color / mirror / Atom feed
From: Stephen Leake <>
Subject: Re: Emacs mode: using tree-sitter
Date: Mon, 30 Aug 2021 17:37:58 -0700	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

Emmanuel Briot <> writes:

> I was looking recently at both Emacs and vim recent updates, and noted
> that both those tools now provide interfaces to tree-sitter
> ( which is a parser
> generator and incremental parsing library. It doesn't have an Ada
> parser yet, though :-(

And it won't until the parser generator gets a serious overhaul:

> It might be nice, as a community, to work on such a parser though. I
> did not look into what that implies yet, maybe someone else has
> already started work on that.

Yes, me. There is code in wisitoken devel that converts any wisitoken
grammar to tree-sitter syntax. I find EBNF much more readable than the
javascript DSL tree-sitter uses.

> The advantage might be that the Emacs ada-mode can use that instead of
> its home-brewed parser (which although I am sure it was fun to develop
> still likely requires some maintenance by Stephen, and definitely
> requires manually compiling some Ada code before we can use the
> ada-mode).

Someone would have to maintain the tree-sitter parser; it's not magic.

And you'd have to compile the tree-sitter parser as well. Again, not magic.

> We could also use it to improve the current vim ada-mode, which hasn't
> been updated in years and could do with various improvements.

It might be easier to adapt the Emacs ada-mode code to meet the vim
plugin interface.

Or adapt Emacs ada-mode code to LSP, that would benefit many editors.

> Finally, maybe we could talk with the GNAT Studio team. I don't think
> they have looked into tree-sitter yet, but it might be useful.

They provide an LSP ada-language-server:

It is not as feature rich as the ada-mode parser.

I doubt they have the resources for anything more (unless the request
comes with money, of course).

-- Stephe

      reply	other threads:[~2021-08-31  0:37 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-30  9:21 Emmanuel Briot
2021-08-31  0:37 ` Stephen Leake [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox