lezer-parser/lezer

Query a syntax tree, – a la Tree-Sitter.

c4lliope opened this issue · 2 comments

I was pleased to find that this library took inspiration from Tree-Sitter;
there seems to be no better example of how to build an editor-ingrained parser
which can handle reparsing a syntax tree on each keystroke.

I am curious if the inspiration of copying Tree-Sitter's basic constructs
extends to copying their "Query" API
– see the docs and the playground.

I am deciding on a parser for my in-browser editor program, and I am inspired by Lezer's being Javascript-native,
but I need query support for detecting common refactorings that are possible in the code.

I couldn't find any documentation in Lezer regarding querying syntax trees; am I missing the feature someplace?

Much obliged.

No, there's no query system like that. There's no support for 'fields' either. The only helper for selective tree-walking is getChild (in combination with 'group' properties on node types), which is quite minimal.

I did look into this, but it felt too heavyweight for this library (support for fields would grow the size of each node value in memory, and a query language would add quite a bit of code that every client has to download).

No problem – nice reasoning, and thanks for the quick reply.