Panache
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 255
- Forks
- 17
- Avg merge
- 6h 20m
- Merged PRs (30d)
- 109
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No repository file, test, or entry point is named; begin by comparing the project's existing parser and language-server approach with the Panache, rowan, and salsa discussion. This needs a maintainer decision and a concrete follow-up issue before implementation or completion can be defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers, devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100