diff --git a/extensions/typescript/src/typescriptServiceClient.ts b/extensions/typescript/src/typescriptServiceClient.ts index 3fe2dde35fd090d0630db98f637801d539cb23b4..84982e9658aaf8b4eed92b71dce17dcd34a25ff6 100644 --- a/extensions/typescript/src/typescriptServiceClient.ts +++ b/extensions/typescript/src/typescriptServiceClient.ts @@ -386,6 +386,11 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient this.lastError = err; this.error('Starting TSServer failed with error.', err); window.showErrorMessage(localize('serverCouldNotBeStarted', 'TypeScript language server couldn\'t be started. Error message is: {0}', err.message || err)); + /* __GDPR__ + "error" : { + "message": { "endPoint": "none", "classification": "CustomerContent", "purpose": "PerformanceAndHealth" } + } + */ this.logTelemetry('error', { message: err.message }); return; } @@ -396,6 +401,9 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient if (this.tsServerLogFile) { this.error(`TSServer log file: ${this.tsServerLogFile}`); } + /* __GDPR__ + "tsserver.error" : {} + */ this.logTelemetry('tsserver.error'); this.serviceExited(false); }); @@ -404,6 +412,11 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient this.info(`TSServer exited`); } else { this.error(`TSServer exited with code: ${code}`); + /* __GDPR__ + "tsserver.exitWithCode" : { + "code" : { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } + } + */ this.logTelemetry('tsserver.exitWithCode', { code: code }); } @@ -548,6 +561,9 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient id: MessageAction.reportIssue, isCloseAffordance: true }); + /* __GDPR__ + "serviceExited" : {} + */ this.logTelemetry('serviceExited'); } else if (diff < 60 * 1000 /* 1 Minutes */) { this.lastStart = Date.now(); @@ -835,6 +851,14 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient } break; } + /* __GDPR__ + "typingsInstalled" : { + "installedPackages" : { "endPoint": "none", "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }, + "installSuccess": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "typingsInstallerVersion": { "endPoint": "none", "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } + } + */ + // GDPR__COMMENT: Other events are defined by TypeScript. this.logTelemetry(telemetryData.telemetryEventName, properties); } } diff --git a/extensions/typescript/src/utils/projectStatus.ts b/extensions/typescript/src/utils/projectStatus.ts index ec6cb67c2b52ee202ca85abacc57e1c109df5624..7bb8416e33ab57d90706bb112d93092a3274d9f5 100644 --- a/extensions/typescript/src/utils/projectStatus.ts +++ b/extensions/typescript/src/utils/projectStatus.ts @@ -54,6 +54,9 @@ class ExcludeHintItem { this._item.tooltip = localize('hintExclude.tooltip', "To enable project-wide JavaScript/TypeScript language features, exclude large folders with source files that you do not work on."); this._item.color = '#A5DF3B'; this._item.show(); + /* __GDPR__ + "js.hintProjectExcludes" : {} + */ this._client.logTelemetry('js.hintProjectExcludes'); } }