Treat $$ as an escaped $ in workspace search regex replace#326451
Open
dobbydobap wants to merge 1 commit into
Open
Treat $$ as an escaped $ in workspace search regex replace#326451dobbydobap wants to merge 1 commit into
dobbydobap wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Aligns workspace regex replacement with editor behavior by treating $$ as an escaped dollar sign.
Changes:
- Recognizes
$$as a replacement parameter. - Adds regression coverage for escaped dollars and capture groups.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
src/vs/workbench/services/search/common/replace.ts |
Enables native $$ replacement handling. |
src/vs/workbench/services/search/test/common/replace.test.ts |
Tests parsing and replacement results. |
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.
Fixes #299365
Workspace-search regex replace didn't collapse
$$to a literal$:$$0was inserted as$$0instead of$0.parseReplaceStringinreplace.tshandled$0,$`,$', and$1–$99, but had no case for$$, so it was never marked as a parameter and fell through to literal insertion. The in-editor find/replace (replacePattern.ts) already treats$$as an escaped$; this brings workspace search in line.Adding
$$to the same branch as$`/$'flags it as a parameter, letting the nativeString.replacecollapse$$→$. Added a regression test covering$$0→$0,$$1→$1, and$$$1→$+ group 1.