emacs-devel
[Top][All Lists]
Advanced

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

Re: Call for volunteers: add tree-sitter support to major modes


From: Brian
Subject: Re: Call for volunteers: add tree-sitter support to major modes
Date: Sun, 9 Oct 2022 14:36:22 +0000

Hello,

I looked through some major modes and IIUC they already have an
author assigned to them.  I haven't seen this practice on other
FLOSS projects I encountered GitHub, any pointers on how this
process works on Emacs?

TIA

On Sun, Oct 9, 2022 at 9:03 AM Eli Zaretskii <eliz@gnu.org> wrote:
>
> The Emacs 29 release branch is planned to be cut in about 1.5 months,
> and we want tree-sitter support to be in Emacs 29.  The Emacs Git
> repository has a feature branch that integrates tree-sitter with
> Emacs.  That branch is being prepared for landing on master.  However,
> currently there's only one major-mode which can use tree-sitter
> support on the branch: Python mode.  We need to add tree-sitter
> integration to more major modes, so that Emacs 29 could have
> reasonably useful tree-sitter support options in at least the popular
> major modes.
>
> This is a call for volunteers to work on adding tree-sitter support to
> major modes beyond Python, and on improving the existing support in
> Python mode.
>
> Some of the popular major modes for which we would like to see
> tree-sitter support in Emacs 29 are:
>
>  c-mode
>  c++-mode
>  emacs-lisp-mode
>  js-mode
>  js-json-mode
>  ruby-mode
>  shell-script-mode
>
> We probably won't have all of them by Emacs 29, but we hope to have at
> least some.
>
> So if you are interested in enhancing your favorite major-mode with
> tree-sitter support, and by doing that making Emacs 29 much better,
> please checkout the feature/tree-sitter branch, and start working on
> some mode(s).  Tree-sitter support for a major-mode should include
> enhancement of one or more of the following Emacs features:
>
>  - font-lock
>  - indentation
>  - navigation (beginning-of-defun-function etc.)
>  - imenu
>  - which-func
>  - thing-at-point
>
> We think that font-lock is the absolute minimum, followed by
> indentation.
>
> To help with this effort, Yuan Fu, who did most of the development on
> this feature branch, wrote a document with guidance notes which aim to
> help you implement tree-sitter support for the above features.  You
> will find that document and some other helpful documentation in the
> admin/notes/tree-sitter directory and its subdirectories on the
> branch.  That directory also includes scripts for easy compilation of
> tree-sitter language modules (which you will need to download from the
> tree-sitter site).
>
> We hope that the existing support for Python can serve as working
> example of how to add tree-sitter support for other major modes, and
> together with the guidance document it will allow you to add support
> for more modes with minimum effort.  Don't hesitate to ask questions
> if something is unclear or you need more advice.
>
> We hope volunteers will step forward in time to make tree-sitter
> integration in Emacs 29 functional and useful.  To avoid waste of
> effort, please announce here on which major mode(s) you decided to
> work.
>
> Thanks in advance.
>



reply via email to

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