From 23d99b3055a95aeb586406905b6bdcbc31d39a53 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 21 Jul 2021 14:56:04 -0700 Subject: [PATCH] Prompt users to update TS versions before reporting issues Fixes #129131 --- .../src/typescriptServiceClient.ts | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts index 7b54a6c0b91..eba66008be0 100644 --- a/extensions/typescript-language-features/src/typescriptServiceClient.ts +++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts @@ -634,10 +634,25 @@ export default class TypeScriptServiceClient extends Disposable implements IType this._isPromptingAfterCrash = false; if (item === reportIssueItem) { - const args = previousState.type === ServerState.Type.Errored && previousState.error instanceof TypeScriptServerError - ? getReportIssueArgsForError(previousState.error, previousState.tsServerLogFile) - : undefined; - vscode.commands.executeCommand('workbench.action.openIssueReporter', args); + const minModernTsVersion = this.versionProvider.bundledVersion.apiVersion; + + if (minModernTsVersion && this.apiVersion.lt(minModernTsVersion)) { + vscode.window.showWarningMessage( + localize('usingOldTsVersion.title', 'Please update your TypeScript version'), + { + modal: true, + detail: localize( + 'usingOldTsVersion.detail', + 'The workspace is using an old version of TypeScript ({0}).\n\nBefore reporting an issue, please update the workspace to use the latest stable TypeScript release to make sure the bug has not already been fixed.', + previousState.type === ServerState.Type.Errored && previousState.error instanceof TypeScriptServerError ? previousState.error.version.apiVersion?.displayName : undefined), + useCustom: true + }); + } else { + const args = previousState.type === ServerState.Type.Errored && previousState.error instanceof TypeScriptServerError + ? getReportIssueArgsForError(previousState.error, previousState.tsServerLogFile) + : undefined; + vscode.commands.executeCommand('workbench.action.openIssueReporter', args); + } } }); -- GitLab