Enhancement Request Summary
Add filter options to the editor Find & Replace panel that let users restrict matches to either prose regions or code-block regions in .qmd documents.
Context
I noticed this gap while using Find & Replace in Positron. However, since the feature would require awareness of Quarto document structure — distinguishing prose regions from fenced code blocks — I'm filing it here on the assumption that it belongs in the Quarto extension rather than in Positron itself. Happy to be redirected if that reasoning is wrong.
Motivation
In mixed-format documents like .qmd, many terms appear in both prose and code with intentionally different formatting. For example:
- The desired markdown formatting for a book title like Great Expectations might be italics in prose but unformatted in code (e.g., str_detect(title, "Great Expectations")
- A function name like filter may need to be renamed in code without touching narrative references to "filtering"
The current find/replace is document-wide, making these edits either manual or reliant on complex regular expressions that approximate zone detection.
Proposed behaviour
Add a new toggle or dropdown to the in-editor Find/Replace widget and/or the global search panel when the active file is a .qmd, with three modes:
| Mode |
Behaviour |
| All (default) |
Current behaviour — search entire document |
| Prose only |
Match only outside fenced code blocks (```{r}, ```{python}, etc.) and inline code spans |
| Code only |
Match only inside fenced code blocks and inline code spans |
Implementation notes
The Quarto extension already parses the document structure to support cell execution, folding, and diagnostics, so the zone boundaries are available. The find/replace scope could be implemented by:
- Restricting the set of ranges passed to the editor's find implementation, or
- Post-filtering results to exclude ranges that fall in the wrong zone. This could be delivered initially for the in-editor Cmd/Ctrl+F widget; workspace-wide search (sidebar) is a secondary concern.
Related
Source editor priorities for 2026: #897
VS Code does not support this natively; this would be a Quarto-extension-level feature
Enhancement Request Summary
Add filter options to the editor Find & Replace panel that let users restrict matches to either prose regions or code-block regions in
.qmddocuments.Context
I noticed this gap while using Find & Replace in Positron. However, since the feature would require awareness of Quarto document structure — distinguishing prose regions from fenced code blocks — I'm filing it here on the assumption that it belongs in the Quarto extension rather than in Positron itself. Happy to be redirected if that reasoning is wrong.
Motivation
In mixed-format documents like
.qmd, many terms appear in both prose and code with intentionally different formatting. For example:The current find/replace is document-wide, making these edits either manual or reliant on complex regular expressions that approximate zone detection.
Proposed behaviour
Add a new toggle or dropdown to the in-editor Find/Replace widget and/or the global search panel when the active file is a
.qmd, with three modes:```{r},```{python}, etc.) and inline code spansImplementation notes
The Quarto extension already parses the document structure to support cell execution, folding, and diagnostics, so the zone boundaries are available. The find/replace scope could be implemented by:
Related
Source editor priorities for 2026: #897
VS Code does not support this natively; this would be a Quarto-extension-level feature