diff --git a/client-node-tests/src/integration.test.ts b/client-node-tests/src/integration.test.ts index 29c5c92d2..2b8634231 100644 --- a/client-node-tests/src/integration.test.ts +++ b/client-node-tests/src/integration.test.ts @@ -714,6 +714,20 @@ suite('Client integration', () => { assert.strictEqual(middlewareCalled, 2); }); + test('PrepareRename server defaultBehavior result', async () => { + const provider = client.getFeature(lsclient.RenameRequest.method).getProvider(document); + isDefined(provider); + isDefined(provider.prepareRename); + + const defaultBehaviorPosition = new vscode.Position(1, 5); + const defaultBehaviorExpected = document.getWordRangeAtPosition(defaultBehaviorPosition); + isDefined(defaultBehaviorExpected); + const defaultBehaviorResult = await provider.prepareRename(document, defaultBehaviorPosition, tokenSource.token) as vscode.Range; + + isInstanceOf(defaultBehaviorResult, vscode.Range); + assert.deepStrictEqual(defaultBehaviorResult, defaultBehaviorExpected); + }); + test('Document Link', async () => { const provider = client.getFeature(lsclient.DocumentLinkRequest.method).getProvider(document); isDefined(provider); diff --git a/client-node-tests/src/servers/testServer.ts b/client-node-tests/src/servers/testServer.ts index 7ad3a9a65..b504d426b 100644 --- a/client-node-tests/src/servers/testServer.ts +++ b/client-node-tests/src/servers/testServer.ts @@ -283,7 +283,10 @@ connection.onDocumentOnTypeFormatting((_params) => { ]; }); -connection.onPrepareRename((_params) => { +connection.onPrepareRename((params) => { + if (params.position.line === 1 && params.position.character === 5) { + return { defaultBehavior: true }; + } return Range.create(1, 1, 1, 2); }); diff --git a/client/src/common/rename.ts b/client/src/common/rename.ts index 1a1bca762..c0df569e1 100644 --- a/client/src/common/rename.ts +++ b/client/src/common/rename.ts @@ -98,7 +98,7 @@ export class RenameFeature extends TextDocumentLanguageFeature