quarto-dev / quarto-cli

Open-source scientific and technical publishing system built on Pandoc.
https://quarto.org
Other
3.56k stars 293 forks source link

Feature request: Extensibility of the standalone Quarto visual editor #388

Open gvelasq opened 2 years ago

gvelasq commented 2 years ago

It's been great to experiment with RStudio's transition to Electron. Will the forthcoming standalone Quarto visual editor also be based on Electron?

If so, given the runaway success of extension registries for Electron-based text editors (e.g. Obsidian, VS Code, OpenVSX), do you anticipate making an extension API (e.g., Obsidian API, VS Code API) available for the standalone Quarto visual editor?

A final thought is, given the polyglot spirit of Quarto, would such an API have bindings to JavaScript/TypeScript only, or could it have bindings to R and Python?

jjallaire commented 2 years ago

Yes, it will be based on Electron and there will definitely be an extension API. The full fidelity API will likely use JS/TS. It would be possible to create limited bindings to R/Python, but we also don't want to create an extension ecosystem where end users need to install a runtime + a bunch of packages for a language they don't even use just to get an extension working. The best path to writing extensions in other languages will likely be WASM.

gvelasq commented 2 years ago

Thanks very much for the response. This is exciting news on all counts. It will be great to see what the community can build with the JS/TS extensions API for the standalone Quarto visual editor.

I appreciate that full-fidelity API support may not be possible for R/Python, especially if it would require additional complexities for end users. On the developer side, perhaps there will be solutions as you mentioned that could expand the pool of potential extension contributors to other languages, without requiring the complexities of the 'glue' to be passed onto end users.

Another thought that comes to mind is that rstudioapi, RStudio Addins, Shiny Gadgets, rsthemes, etc. are already a great way for R users to extend RStudio, some of which have already been ported outside of RStudio. Perhaps an abstraction of addins as language-specific extension mini-ecosystems for R, Python, Julia, etc. might coexist with each other and with the formal JS/TS extensions API in the standalone Quarto editor, since users conversant in a particular language will opt-in to their language-specific runtimes/packages.

jjallaire commented 2 years ago

Yes, I agree that some extensions will absolutely required and benefit from the use of R or Python (as w/ the examples you cite). So there will definitely need to be both available in some form!