[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tree sitter support for C-like languages
From: |
Eli Zaretskii |
Subject: |
Re: Tree sitter support for C-like languages |
Date: |
Mon, 14 Nov 2022 22:10:06 +0200 |
> From: Yuan Fu <casouri@gmail.com>
> Date: Mon, 14 Nov 2022 11:51:59 -0800
> Cc: monnier@iro.umontreal.ca,
> theo@thornhill.no,
> emacs-devel@gnu.org
>
> >> Well we update the parse tree and re-parse, but we currently don’t update
> >> the nodes created from the old tree. Keeping all nodes updated requires us
> >> to track all live nodes and update them whenever the buffer is edited.
> >
> > I guess I still don't understand what exactly do you mean by "update
> > the node". Can you explain that in more detail?
>
> My bad. So when buffer changes (insert in X, delete from X to Y), we inform
> tree-sitter of this change by “updating” the tree:
>
> const TSInputEdit edit =
> treesit_prepare_input_edit (start_byte, old_end_byte, new_end_byte);
>
> ts_tree_edit (tree, &edit);
>
> Then when we re-parse, tree-sitter knows which part of the buffer has changed
> and needs to be re-parsed, and only parses those, hence “incremental
> parsing”.
>
> Tree-sitter nodes needs similar updates, so that it is in sync with the
> buffer text.
Doesn't the call to ts_tree_edit update those nodes? That is, aren't
those nodes a part of the tree that gets updated by the ts_tree_edit
call?
- Re: Tree sitter support for C-like languages, (continued)
- Re: Tree sitter support for C-like languages, Theodor Thornhill, 2022/11/13
- Re: Tree sitter support for C-like languages, Dmitry Gutov, 2022/11/14
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/13
- Re: Tree sitter support for C-like languages, Eli Zaretskii, 2022/11/14
- Re: Tree sitter support for C-like languages, Stefan Monnier, 2022/11/14
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/14
- Re: Tree sitter support for C-like languages, Eli Zaretskii, 2022/11/14
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/14
- Re: Tree sitter support for C-like languages, Eli Zaretskii, 2022/11/14
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/14
- Re: Tree sitter support for C-like languages,
Eli Zaretskii <=
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/14
- Re: Tree sitter support for C-like languages, Eli Zaretskii, 2022/11/14
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/15
- Re: Tree sitter support for C-like languages, Theodor Thornhill, 2022/11/15
- Re: Tree sitter support for C-like languages, Eli Zaretskii, 2022/11/15
- Re: Tree sitter support for C-like languages, Stefan Monnier, 2022/11/15
- Re: Tree sitter support for C-like languages, Eli Zaretskii, 2022/11/15
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/15
- Re: Tree sitter support for C-like languages, Eli Zaretskii, 2022/11/15
- Re: Tree sitter support for C-like languages, Yuan Fu, 2022/11/16