Skip to content

Commit 613dd2e

Browse files
committed
work around broken snippet files
1 parent ae23d37 commit 613dd2e

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ function _fillCodeSnippetFromMarker(snippet: CodeSnippet, marker: Marker[]) {
474474
snippet.lines.push(...lines);
475475

476476
} else if (marker instanceof Placeholder) {
477-
477+
// TODO - not every variable is a placeholder
478478
let placeHolder = placeHolders[marker.name];
479479
if (!placeHolder) {
480480
placeHolders[marker.name] = placeHolder = {
@@ -495,7 +495,14 @@ function _fillCodeSnippetFromMarker(snippet: CodeSnippet, marker: Marker[]) {
495495
endColumn: column + Marker.toString(marker.value).length // TODO multiline placeholders!
496496
});
497497

498-
stack.unshift(...marker.value);
498+
if (marker.value.length === 0 && marker.isVariable) {
499+
// HACK this is here because we falsy advertise
500+
// ${foo} as placeholder in our own snippets
501+
stack.unshift(new Text(marker.name));
502+
503+
} else {
504+
stack.unshift(...marker.value);
505+
}
499506
}
500507
}
501508

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ suite('Editor Contrib - Snippets', () => {
7373

7474
assertInternalAndTextmate(
7575
'{{first}}-{{2:}}-{{second}}-{{1:}}',
76-
'${first:first}-${2}-${second:second}-${1}',
76+
'${first}-${2}-${second}-${1}',
7777
snippet => {
7878
assert.deepEqual(snippet.lines, ['first--second-']);
7979
assert.equal(snippet.placeHolders.length, 4);

0 commit comments

Comments
 (0)