From 3818da992850c8cf886511d92be7b53bcacbd7d5 Mon Sep 17 00:00:00 2001 From: Vinicius Stock Date: Mon, 27 Jan 2025 17:04:53 -0500 Subject: [PATCH] Log message when overriding client's document selector --- client-node-tests/src/integration.test.ts | 10 ++++++++-- client/src/common/features.ts | 8 +++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/client-node-tests/src/integration.test.ts b/client-node-tests/src/integration.test.ts index 8d05f291a..b54bef246 100644 --- a/client-node-tests/src/integration.test.ts +++ b/client-node-tests/src/integration.test.ts @@ -140,10 +140,16 @@ suite ('Client Features', () => { test('Document Selector - Client and server', () => { const client = createClient(documentSelector); + const capabilitySelector = { documentSelector: [{ scheme: 'file', language: 'test' }] } as any; + + client.info = (message, data) => { + assert.strictEqual(message, `Overriding client document selector for ${lsclient.FoldingRangeRequest.method}`); + assert.deepStrictEqual(data, capabilitySelector); + }; const feature = client.getFeature(lsclient.FoldingRangeRequest.method) as unknown as FoldingRangeTestFeature; { - const [, options] = feature.getRegistration(documentSelector, { documentSelector: [{ scheme: 'file', language: 'test' }] }); + const [, options] = feature.getRegistration(documentSelector, capabilitySelector); isDefined(options); const filter = options.documentSelector[0] as lsclient.TextDocumentFilter; assert.strictEqual(filter.scheme, 'file'); @@ -153,7 +159,7 @@ suite ('Client Features', () => { { // Note that the old registration spec has no support for providing a document selector. // So ensure that even if we pass one in we will not honor it. - const options = feature.getRegistrationOptions(documentSelector, { documentSelector: [{ scheme: 'file', language: 'test' }] } as any); + const options = feature.getRegistrationOptions(documentSelector, capabilitySelector); isDefined(options); const filter = options.documentSelector[0] as lsclient.TextDocumentFilter; assert.strictEqual(filter.scheme, 'lsptests'); diff --git a/client/src/common/features.ts b/client/src/common/features.ts index dbeb7592b..79d571bd7 100644 --- a/client/src/common/features.ts +++ b/client/src/common/features.ts @@ -552,6 +552,12 @@ export abstract class TextDocumentLanguageFeature { getFeature(request: typeof NotebookDocumentSyncRegistrationType.method): DynamicFeature & NotebookDocumentProviderShape; getFeature(request: typeof InlineCompletionRequest.method): (DynamicFeature & TextDocumentProviderFeature) | undefined; getFeature(request: typeof ExecuteCommandRequest.method): DynamicFeature; -} \ No newline at end of file +}