← Back to all sparks
Q

quarto

INFRA · APIS
Velocity0.0

Quarto open-source scientific and technical publishing system

Quarto's editor extension is quietly becoming Positron-first while keeping VS Code parity.

quartovscodepositronauthoring-toolsnotebooksdeveloper-experience
Current state
This is the Quarto extension for VS Code and Positron — cell execution, preview and render, the visual editor, snippets, and the language-server plumbing that makes .qmd files behave like real code documents. The last several releases have pushed the editing experience toward parity with ordinary source files: diagnostics inside code cells, code symbols and cells in the outline, semantic highlighting, and clickable file links with autocompletion in _quarto.yml. A large share of every release is now Positron-specific work rather than generic VS Code support.
Where it's heading
Two patterns hold across releases. First, Positron is where new surface appears first — notebook editor commands, statement execution, runtime-aware language selection for new cells, and a bundled-CLI preference setting all landed as Positron features. Second, the extension is steadily stepping back from things dedicated tooling does better, giving up .typ files to Typst extensions and commenting out IPython magics in the virtual document so Ruff and Pyrefly stop flagging them. The multi-language story keeps widening, with Julia cells joining Python and R for in-editor execution.
Prediction
Given how much recent work has been notebook-editor commands and .ipynb conversion, expect further consolidation of the notebook and .qmd paths behind shared commands rather than new authoring features.

Recent moves

  1. 1mo ago

    Julia cells become executable in .qmd files

    Julia code cells in .qmd documents can now be run the same way Python and R already could, provided the positron-julia extension is installed — extending in-editor execution to a third language. Also stops an error toast on failing cells in Positron and fixes soft line breaks rendering as separate paragraphs in markdown preview.

    View source ↗
  2. 1mo ago

    Unified Export command and cleaner language-server handoff

    Jupyter notebooks move to a unified Export command in Positron, replacing the narrower Convert to .qmd path, and Preview and Render Document reach the Positron Notebook Editor. The notable fix stops IPython magics and shell escapes in Python cells from producing spurious diagnostics, by commenting them out in the virtual document handed to language servers.

    View source ↗
  3. 2mo ago

    Diagnostics and code symbols land inside qmd cells

    Adds squiggly-underline diagnostics to code cells in .qmd files and puts code symbols into the outline, with a setting to show or hide cells there. Custom pair colorization for divs and a Mermaid bump to match the Quarto CLI's 11.12.0 round it out. The release where a .qmd cell starts behaving like a real source file in the editor.

    View source ↗
  4. 3mo ago

    _quarto.yml gains clickable paths and autocompletion

    File paths in _quarto.yml become clickable links and project files autocomplete while typing YAML values, which addresses one of the more error-prone parts of project configuration. Adds Convert to .ipynb and Convert to .qmd commands, and sends cell figure width and height to Positron's Plots pane.

    View source ↗
  5. 4mo ago

    Cell option directives preserved through formatting

    Formatting embedded code now preserves #| option directives by stripping them from the virtual document rather than the file, fixing a data-loss class of bug. The extension also stops claiming standalone .typ files, leaving them to Tinymist, and ships a substantial snippet overhaul including yaml, figure, xref, list-table, and tabset.

    View source ↗
  6. 5mo ago

    Parse errors no longer block execution in other chunks

    Fixes statement execution being blocked across the whole document by a parse error in one chunk, and retitles the document creation commands. Small, though the parse-error fix removes a real interruption in iterative editing.

    View source ↗