-
Notifications
You must be signed in to change notification settings - Fork 3
Description
I seem to have unfortunately missed this project, or I don't think I would have started my own project, but in any case, I have separately developed a language server for Quarto/RMarkdown/pandoc: https://github.com/jolars/panache. I realize your project is much more comprehensive, being what I understand if a full rewrite of quarto.
I would be very interested to hear your thoughts on your architecture, because I gather that you have taken a somewhat different route. If I understand correctly, you have built a tree-sitter parser and build a AST. I guess this stays very close to what pandoc is doing.
I have looked a lot at rust-analyzer and built the parser around rowan (like air), building a lossless CST with AST wrappers on top of that. The hope is to be able to utilize the rowan trees for incremental parsing and formatting fully at some point, although the markdown grammar is proving somewhat difficult to fit into that fold at the moment. Then, also taken from rust-analyzer, use salsa to manage the quarto project LSP state side.
Anyway, I thought it would be interesting to hear your thoughts on why you decided on your approach and I hope we can learn from each other!
Note: I wrote this originally over at https://github.com/quarto-dev/quarto-markdown/issues, but I guess this is where it belonged in the first place, given that I guess this is where the development is actually going on.