Skip to content

Commit 66a1bb7

Browse files
committed
fix #51769
1 parent e47a9c9 commit 66a1bb7

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/vs/editor/contrib/snippet/snippetParser.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ export class Transform extends Marker {
334334
}
335335

336336
toTextmateString(): string {
337-
return `/${Text.escape(this.regexp.source)}/${this.children.map(c => c.toTextmateString())}/${this.regexp.ignoreCase ? 'i' : ''}`;
337+
return `/${Text.escape(this.regexp.source)}/${this.children.map(c => c.toTextmateString())}/${(this.regexp.ignoreCase ? 'i' : '') + (this.regexp.global ? 'g' : '')}`;
338338
}
339339

340340
clone(): Transform {

src/vs/editor/contrib/snippet/test/snippetParser.test.ts

+7
Original file line numberDiff line numberDiff line change
@@ -720,4 +720,11 @@ suite('SnippetParser', () => {
720720
const snippet = new SnippetParser().parse('${TM_DIRECTORY/.*src[\\/](.*)/$1/}');
721721
assertMarker(snippet, Variable);
722722
});
723+
724+
test('Variable transformation doesn\'t work if undefined variables are used in the same snippet #51769', function () {
725+
let transform = new Transform();
726+
transform.appendChild(new Text('bar'));
727+
transform.regexp = new RegExp('foo', 'gi');
728+
assert.equal(transform.toTextmateString(), '/foo/bar/ig');
729+
});
723730
});

0 commit comments

Comments
 (0)