diff --git a/src/vs/editor/contrib/snippet/browser/snippetSession.ts b/src/vs/editor/contrib/snippet/browser/snippetSession.ts index c41b1355024fc2183dc0c6f2c29be078fbccb89f..0ac10110bc404b136fb86c747f5858a5c22efd35 100644 --- a/src/vs/editor/contrib/snippet/browser/snippetSession.ts +++ b/src/vs/editor/contrib/snippet/browser/snippetSession.ts @@ -212,25 +212,6 @@ export class OneSnippet { } } -class WhitespaceAwareSnippetResolver extends EditorSnippetVariableResolver { - - constructor( - model: IModel, - selection: Selection, - private _snippetStart: IPosition - ) { - super(model, selection); - } - - resolve(name: string): string { - let ret = super.resolve(name); - if (ret) { - ret = SnippetSession.adjustWhitespace(this._model, this._snippetStart, ret); - } - return ret; - } -} - export class SnippetSession { static adjustWhitespace(model: IModel, position: IPosition, template: string): string { @@ -315,7 +296,7 @@ export class SnippetSession { const snippet = new SnippetParser() .parse(adjustedTemplate, true, enforceFinalTabstop) - .resolveVariables(new WhitespaceAwareSnippetResolver(model, selection, start)); + .resolveVariables(new EditorSnippetVariableResolver(model, selection)); const offset = model.getOffsetAt(start) + delta; delta += snippet.text.length - model.getValueLengthInRange(snippetSelection); diff --git a/src/vs/editor/contrib/snippet/browser/snippetVariables.ts b/src/vs/editor/contrib/snippet/browser/snippetVariables.ts index 7c3cd43996077fef75b33045e16208d1c00e8eed..2953ee8bfc3bbefe8b18a410cf3f8940b901b31f 100644 --- a/src/vs/editor/contrib/snippet/browser/snippetVariables.ts +++ b/src/vs/editor/contrib/snippet/browser/snippetVariables.ts @@ -24,8 +24,8 @@ export class EditorSnippetVariableResolver { }); constructor( - protected readonly _model: IModel, - protected readonly _selection: Selection + private readonly _model: IModel, + private readonly _selection: Selection ) { // } diff --git a/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts b/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts index f5966698f35ae21aa93dc4e5b9b0ae3560a5f3b2..62f148f8ff84f313a079f74f48147d5227c2f03b 100644 --- a/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts +++ b/src/vs/editor/contrib/snippet/test/browser/snippetSession.test.ts @@ -462,30 +462,5 @@ suite('SnippetSession', function () { assert.equal(editor.getModel().getValue(), 'test 1\ntest 2\ntest 3\ntest 4\n'); }); - - test('Snippet variable text isn\'t whitespace normalised, #31124', function () { - editor.getModel().setValue([ - 'start', - '\t-one', - '\t-two', - 'end' - ].join('\n')); - - editor.getModel().updateOptions({ insertSpaces: false }); - editor.setSelection(new Selection(2, 2, 3, 6)); - - new SnippetSession(editor, '
\n\t$TM_SELECTED_TEXT\n
$0').insert(); - - const expected = [ - 'start', - '\t
', - '\t\t-one', - '\t\t-two', - '\t
', - 'end' - ].join('\n'); - - assert.equal(editor.getModel().getValue(), expected); - }); });