mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-29 18:09:01 +01:00
Merge pull request #107348 from jeanp413/fix-107220
Fixes SnippetString.appendChoice does not escape commas in choices
This commit is contained in:
@@ -781,7 +781,7 @@ export class SnippetString {
|
||||
}
|
||||
|
||||
appendChoice(values: string[], number: number = this._tabstop++): SnippetString {
|
||||
const value = SnippetString._escape(values.toString());
|
||||
const value = values.map(s => s.replace(/\$|}|\\|,/g, '\\$&')).join(',');
|
||||
|
||||
this.value += '${';
|
||||
this.value += number;
|
||||
|
||||
@@ -524,6 +524,10 @@ suite('ExtHostTypes', function () {
|
||||
string.appendChoice(['b', 'a', 'r']);
|
||||
assert.equal(string.value, '${1|b,a,r|}');
|
||||
|
||||
string = new types.SnippetString();
|
||||
string.appendChoice(['b,1', 'a,2', 'r,3']);
|
||||
assert.equal(string.value, '${1|b\\,1,a\\,2,r\\,3|}');
|
||||
|
||||
string = new types.SnippetString();
|
||||
string.appendChoice(['b', 'a', 'r'], 0);
|
||||
assert.equal(string.value, '${0|b,a,r|}');
|
||||
|
||||
Reference in New Issue
Block a user