From 13566513a86bbe63365cfc16c387fe4c504bfc10 Mon Sep 17 00:00:00 2001 From: Kim-Adeline Miguel Date: Thu, 14 May 2020 16:56:23 -0700 Subject: [PATCH] Update LS code to use periods instead of slashes --- .../activation/languageClientMiddleware.ts | 28 +++++++++---------- .../languageServer/languageServerProxy.ts | 11 ++++++-- .../activation/node/languageServerProxy.ts | 7 ++++- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/client/activation/languageClientMiddleware.ts b/src/client/activation/languageClientMiddleware.ts index 287ce9c47ef8..a73981eb23d8 100644 --- a/src/client/activation/languageClientMiddleware.ts +++ b/src/client/activation/languageClientMiddleware.ts @@ -157,7 +157,7 @@ export class LanguageClientMiddleware implements Middleware { this.connected = false; } - @captureTelemetryForLSPMethod('textDocument/completion', debounceFrequentCall) + @captureTelemetryForLSPMethod('textDocument.completion', debounceFrequentCall) public provideCompletionItem( document: TextDocument, position: Position, @@ -171,7 +171,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/hover', debounceFrequentCall) + @captureTelemetryForLSPMethod('textDocument.hover', debounceFrequentCall) public provideHover( document: TextDocument, position: Position, @@ -194,7 +194,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('completionItem/resolve', debounceFrequentCall) + @captureTelemetryForLSPMethod('completionItem.resolve', debounceFrequentCall) public resolveCompletionItem( item: CompletionItem, token: CancellationToken, @@ -205,7 +205,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/signatureHelp', debounceFrequentCall) + @captureTelemetryForLSPMethod('textDocument.signatureHelp', debounceFrequentCall) public provideSignatureHelp( document: TextDocument, position: Position, @@ -218,7 +218,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/definition', debounceRareCall) + @captureTelemetryForLSPMethod('textDocument.definition', debounceRareCall) public provideDefinition( document: TextDocument, position: Position, @@ -230,7 +230,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/references', debounceRareCall) + @captureTelemetryForLSPMethod('textDocument.references', debounceRareCall) public provideReferences( document: TextDocument, position: Position, @@ -256,7 +256,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/documentSymbol', debounceFrequentCall) + @captureTelemetryForLSPMethod('textDocument.documentSymbol', debounceFrequentCall) public provideDocumentSymbols( document: TextDocument, token: CancellationToken, @@ -267,7 +267,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('workspace/symbol', debounceRareCall) + @captureTelemetryForLSPMethod('workspace.symbol', debounceRareCall) public provideWorkspaceSymbols( query: string, token: CancellationToken, @@ -278,7 +278,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/codeAction', debounceFrequentCall) + @captureTelemetryForLSPMethod('textDocument.codeAction', debounceFrequentCall) public provideCodeActions( document: TextDocument, range: Range, @@ -291,7 +291,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/codeLens', debounceFrequentCall) + @captureTelemetryForLSPMethod('textDocument.codeLens', debounceFrequentCall) public provideCodeLenses( document: TextDocument, token: CancellationToken, @@ -302,7 +302,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('codeLens/resolve', debounceFrequentCall) + @captureTelemetryForLSPMethod('codeLens.resolve', debounceFrequentCall) public resolveCodeLens( codeLens: CodeLens, token: CancellationToken, @@ -349,7 +349,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/rename', debounceRareCall) + @captureTelemetryForLSPMethod('textDocument.rename', debounceRareCall) public provideRenameEdits( document: TextDocument, position: Position, @@ -362,7 +362,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/prepareRename', debounceRareCall) + @captureTelemetryForLSPMethod('textDocument.prepareRename', debounceRareCall) public prepareRename( document: TextDocument, position: Position, @@ -400,7 +400,7 @@ export class LanguageClientMiddleware implements Middleware { } } - @captureTelemetryForLSPMethod('textDocument/declaration', debounceRareCall) + @captureTelemetryForLSPMethod('textDocument.declaration', debounceRareCall) public provideDeclaration( document: TextDocument, position: VPosition, diff --git a/src/client/activation/languageServer/languageServerProxy.ts b/src/client/activation/languageServer/languageServerProxy.ts index 29d2e318eb96..aae7fadfd5b4 100644 --- a/src/client/activation/languageServer/languageServerProxy.ts +++ b/src/client/activation/languageServer/languageServerProxy.ts @@ -73,7 +73,12 @@ export class DotNetLanguageServerProxy implements ILanguageServerProxy { if (settings.downloadLanguageServer) { this.languageClient.onTelemetry((telemetryEvent) => { const eventName = telemetryEvent.EventName || EventName.PYTHON_LANGUAGE_SERVER_TELEMETRY; - sendTelemetryEvent(eventName, telemetryEvent.Measurements, telemetryEvent.Properties); + const formattedProperties = { + ...telemetryEvent.Properties, + // Replace all slashes with a period so they don't get scrubbed by vscode-extension-telemetry. + method: telemetryEvent.Properties.method?.replace(/\//g, '.') + }; + sendTelemetryEvent(eventName, telemetryEvent.Measurements, formattedProperties); }); } await this.registerTestServices(); @@ -89,8 +94,8 @@ export class DotNetLanguageServerProxy implements ILanguageServerProxy { this.extensionLoadedArgs.add(args || ''); this.startupCompleted.promise .then(() => - this.languageClient!.sendRequest('python/loadExtension', args).then(noop, (ex) => - traceError('Request python/loadExtension failed', ex) + this.languageClient!.sendRequest('python.loadExtension', args).then(noop, (ex) => + traceError('Request python.loadExtension failed', ex) ) ) .ignoreErrors(); diff --git a/src/client/activation/node/languageServerProxy.ts b/src/client/activation/node/languageServerProxy.ts index 17f25cbd97e7..a6d618a4faa4 100644 --- a/src/client/activation/node/languageServerProxy.ts +++ b/src/client/activation/node/languageServerProxy.ts @@ -99,7 +99,12 @@ export class NodeLanguageServerProxy implements ILanguageServerProxy { if (settings.downloadLanguageServer) { this.languageClient.onTelemetry((telemetryEvent) => { const eventName = telemetryEvent.EventName || EventName.LANGUAGE_SERVER_TELEMETRY; - sendTelemetryEvent(eventName, telemetryEvent.Measurements, telemetryEvent.Properties); + const formattedProperties = { + ...telemetryEvent.Properties, + // Replace all slashes with a period so they don't get scrubbed by vscode-extension-telemetry. + method: telemetryEvent.Properties.method?.replace(/\//g, '.') + }; + sendTelemetryEvent(eventName, telemetryEvent.Measurements, formattedProperties); }); } await this.registerTestServices();