From 3e125c78ce7b02779002658fcd3ed64386a40e25 Mon Sep 17 00:00:00 2001 From: Maria Solano Date: Thu, 26 Oct 2023 12:03:36 -0700 Subject: [PATCH] Snippet text edits --- client-node-tests/src/helpers.test.ts | 23 +++++---- client/src/common/client.ts | 1 + client/src/common/protocolConverter.ts | 2 + protocol/src/common/protocol.ts | 10 +++- types/src/main.ts | 66 ++++++++++++++++++++++---- 5 files changed, 84 insertions(+), 18 deletions(-) diff --git a/client-node-tests/src/helpers.test.ts b/client-node-tests/src/helpers.test.ts index 90dffd73e..bf38631a7 100644 --- a/client-node-tests/src/helpers.test.ts +++ b/client-node-tests/src/helpers.test.ts @@ -8,7 +8,8 @@ import { strictEqual, ok } from 'assert'; import { Position, Range, TextDocumentIdentifier, TextDocumentItem, VersionedTextDocumentIdentifier, Command, CodeLens, CodeActionContext, Diagnostic, DiagnosticSeverity, WorkspaceChange, TextDocumentEdit, CreateFile, RenameFile, DeleteFile, ChangeAnnotation, - AnnotatedTextEdit + AnnotatedTextEdit, + TextEdit } from 'vscode-languageclient'; suite('Protocol Helper Tests', () => { @@ -124,17 +125,21 @@ suite('Protocol Helper Tests', () => { strictEqual(workspaceEdit.documentChanges!.length, 2); let edits = (workspaceEdit.documentChanges![0] as TextDocumentEdit).edits; strictEqual(edits.length, 3); - rangeEqual(edits[0].range, Range.create(0,1,0,1)); - strictEqual(edits[0].newText, 'insert'); - rangeEqual(edits[1].range, Range.create(0,1,2,3)); - strictEqual(edits[1].newText, 'replace'); - rangeEqual(edits[2].range, Range.create(0,1,2,3)); - strictEqual(edits[2].newText, ''); + let edit = edits[0] as TextEdit; + rangeEqual(edit.range, Range.create(0,1,0,1)); + strictEqual(edit.newText, 'insert'); + edit = edits[1] as TextEdit; + rangeEqual(edit.range, Range.create(0,1,2,3)); + strictEqual(edit.newText, 'replace'); + edit = edits[2] as TextEdit; + rangeEqual(edit.range, Range.create(0,1,2,3)); + strictEqual(edit.newText, ''); edits = (workspaceEdit.documentChanges![1] as TextDocumentEdit).edits; strictEqual(edits.length, 1); - rangeEqual(edits[0].range, Range.create(2,3,2,3)); - strictEqual(edits[0].newText, 'insert'); + edit = edits[0] as TextEdit; + rangeEqual(edit.range, Range.create(2,3,2,3)); + strictEqual(edit.newText, 'insert'); workspaceChange.createFile('file:///create.txt'); workspaceChange.renameFile('file:///old.txt', 'file:///new.txt'); diff --git a/client/src/common/client.ts b/client/src/common/client.ts index bf121286d..2e04e59a7 100644 --- a/client/src/common/client.ts +++ b/client/src/common/client.ts @@ -1836,6 +1836,7 @@ export abstract class BaseLanguageClient implements FeatureClient