Skip to content

Show incremental progress in Quarto cells, when supported#14772

Open
jmcphers wants to merge 2 commits into
mainfrom
feature/quarto-incremental-cell-progress
Open

Show incremental progress in Quarto cells, when supported#14772
jmcphers wants to merge 2 commits into
mainfrom
feature/quarto-incremental-cell-progress

Conversation

@jmcphers

@jmcphers jmcphers commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Closes #13505

Summary

Adds per-statement execution progress to the Quarto inline-output gutter. When a cell's code is split into individual statements (via a language's input boundary provider, e.g. R), the gutter now shows granular progress as the cell runs instead of treating the whole cell as one running block:

  • Statements that have already executed are shown as a solid green bar.
  • The statement currently executing breathes (a gentle pulse).
  • Statements not yet executed are shown as one contiguous hollow bar that fills in as execution advances.
image

This makes it easy to see which line is currently executing and to spot execution bottlenecks within a chunk, matching the per-line indicator RStudio provides.

The granular treatment is only used when an input boundary provider is available and actually splits the cell into more than one statement; otherwise the existing whole-cell "twinkling" running indicator is used unchanged.

Implementation: QuartoExecutionManager now tracks fragment-level progress (executed / executing / pending line ranges) as it dispatches statements one at a time, exposed via a new getFragmentProgress() getter and onDidChangeFragmentProgress event. QuartoExecutionDecorations consumes these to render the gutter; the visual treatments are CSS-driven.

Release Notes

New Features

Bug Fixes

  • N/A

Validation Steps

@:quarto

  1. Open a .qmd (or .Rmd) file with an R code cell containing several statements, e.g.:

    ```{r}
    Sys.sleep(0.5)
    Sys.sleep(0.5)
    Sys.sleep(0.5)
    Sys.sleep(0.5)
    Sys.sleep(0.5)
    
    
  2. Run the cell and watch the gutter to the left of the code. As execution advances you should see:

    • a solid green bar over statements that have finished,
    • a breathing (pulsing) bar over the statement currently executing,
    • a single contiguous hollow bar over the statements still queued, filling in as each statement completes.
  3. Confirm the currently executing line is never darker/more solid than an already-completed line, and that the transition from executing to done is smooth (no abrupt jump).

  4. Confirm that in a language without statement splitting (or with the positron.quarto.inlineOutput.splitStatements setting disabled), the gutter falls back to the previous whole-cell running indicator.

Unit coverage: src/vs/workbench/contrib/positronQuarto/test/browser/quartoExecutionManager.vitest.ts (Fragment Progress suite) covers the per-statement progress tracking, event, and getter.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

E2E Tests 🚀
This PR will run tests tagged with: @:critical @:quarto

readme  valid tags  why these tags?

@jmcphers jmcphers changed the title Feature/quarto incremental cell progress Show incremental progress in Quarto cells, when supported Jul 8, 2026
@jmcphers jmcphers requested a review from nstrayer July 8, 2026 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quarto notebooks: Per-line gutter indicators missing

1 participant