Show incremental progress in Quarto cells, when supported#14772
Open
jmcphers wants to merge 2 commits into
Open
Show incremental progress in Quarto cells, when supported#14772jmcphers wants to merge 2 commits into
jmcphers wants to merge 2 commits into
Conversation
|
E2E Tests 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
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:
QuartoExecutionManagernow tracks fragment-level progress (executed / executing / pending line ranges) as it dispatches statements one at a time, exposed via a newgetFragmentProgress()getter andonDidChangeFragmentProgressevent.QuartoExecutionDecorationsconsumes these to render the gutter; the visual treatments are CSS-driven.Release Notes
New Features
Bug Fixes
Validation Steps
@:quarto
Open a
.qmd(or.Rmd) file with an R code cell containing several statements, e.g.:Run the cell and watch the gutter to the left of the code. As execution advances you should see:
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).
Confirm that in a language without statement splitting (or with the
positron.quarto.inlineOutput.splitStatementssetting 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.