quarto-dev / quarto-dev/q2

Panache

Open
#33 1 comment 1 reaction 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.