From 857165c280508e4201270c4a8d83703555fb4cce Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Sun, 23 Nov 2025 20:56:37 -0800 Subject: [PATCH 1/4] Don't require disabling TS extension to debug --- .vscode/launch.template.json | 2 -- _extension/src/extension.ts | 29 ++++++++++++++++++++--------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.vscode/launch.template.json b/.vscode/launch.template.json index e4271e658c..96c158a609 100644 --- a/.vscode/launch.template.json +++ b/.vscode/launch.template.json @@ -8,8 +8,6 @@ "name": "Launch VS Code extension", "runtimeExecutable": "${execPath}", "args": [ - "--disable-extension=vscode.typescript-language-features", - "--disable-extension=ms-vscode.vscode-typescript-next", "--extensionDevelopmentPath=${workspaceRoot}/_extension" ], "outFiles": [ diff --git a/_extension/src/extension.ts b/_extension/src/extension.ts index d1fe6036eb..9956df0979 100644 --- a/_extension/src/extension.ts +++ b/_extension/src/extension.ts @@ -45,19 +45,30 @@ export async function activate(context: vscode.ExtensionContext) { })); const useTsgo = vscode.workspace.getConfiguration("typescript").get("experimental.useTsgo"); - if (!useTsgo) { - if (context.extensionMode === vscode.ExtensionMode.Development) { - if (useTsgo === false) { - vscode.window.showInformationMessage( - 'TypeScript Native Preview is running in development mode. Ignoring "typescript.experimental.useTsgo": false.', - ); + const tsExtension = vscode.extensions.getExtension("vscode.typescript-language-features"); + + if (context.extensionMode === vscode.ExtensionMode.Development) { + if (!tsExtension) { + if (!useTsgo) { + output.appendLine("TypeScript Native Preview: Built-in TypeScript extension is disabled. Using tsgo regardless of setting."); } } - else { - output.appendLine("TypeScript Native Preview is disabled. Select 'Enable TypeScript Native Preview (Experimental)' in the command palette to enable it."); - return; + else if (useTsgo === false) { + const selected = await vscode.window.showWarningMessage( + 'TypeScript Native Preview is running in development mode with "typescript.experimental.useTsgo" set to false.', + "Enable Setting", + "Ignore", + ); + if (selected === "Enable Setting") { + await vscode.commands.executeCommand("typescript.native-preview.enable"); + return; + } } } + else if (!useTsgo) { + output.appendLine("TypeScript Native Preview is disabled. Select 'Enable TypeScript Native Preview (Experimental)' in the command palette to enable it."); + return; + } disposeLanguageFeatures = await activateLanguageFeatures(context, output, traceOutput); context.subscriptions.push(disposeLanguageFeatures); From 20128a01a7fa1ce4cf7e517980ac09d0bc8ffd15 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Sun, 23 Nov 2025 20:58:50 -0800 Subject: [PATCH 2/4] refactor --- _extension/src/extension.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_extension/src/extension.ts b/_extension/src/extension.ts index 9956df0979..1a8dbf9f1a 100644 --- a/_extension/src/extension.ts +++ b/_extension/src/extension.ts @@ -45,9 +45,9 @@ export async function activate(context: vscode.ExtensionContext) { })); const useTsgo = vscode.workspace.getConfiguration("typescript").get("experimental.useTsgo"); - const tsExtension = vscode.extensions.getExtension("vscode.typescript-language-features"); if (context.extensionMode === vscode.ExtensionMode.Development) { + const tsExtension = vscode.extensions.getExtension("vscode.typescript-language-features"); if (!tsExtension) { if (!useTsgo) { output.appendLine("TypeScript Native Preview: Built-in TypeScript extension is disabled. Using tsgo regardless of setting."); From f8416014459d140ba85363acc7d56dea57fd92ab Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Tue, 25 Nov 2025 09:48:11 -0800 Subject: [PATCH 3/4] PR feedback --- _extension/src/extension.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/_extension/src/extension.ts b/_extension/src/extension.ts index 1a8dbf9f1a..9473fd85df 100644 --- a/_extension/src/extension.ts +++ b/_extension/src/extension.ts @@ -50,7 +50,10 @@ export async function activate(context: vscode.ExtensionContext) { const tsExtension = vscode.extensions.getExtension("vscode.typescript-language-features"); if (!tsExtension) { if (!useTsgo) { - output.appendLine("TypeScript Native Preview: Built-in TypeScript extension is disabled. Using tsgo regardless of setting."); + await vscode.window.showWarningMessage( + "The built-in TypeScript extension is disabled. Sync launch.json with launch.template.json to reenable.", + "OK", + ); } } else if (useTsgo === false) { From 28c06ce34870f102d5d15ca6a1ef9994c6c48b1c Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Tue, 25 Nov 2025 10:05:28 -0800 Subject: [PATCH 4/4] Do not block startup --- _extension/src/extension.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_extension/src/extension.ts b/_extension/src/extension.ts index 9473fd85df..2cfe44d603 100644 --- a/_extension/src/extension.ts +++ b/_extension/src/extension.ts @@ -50,22 +50,22 @@ export async function activate(context: vscode.ExtensionContext) { const tsExtension = vscode.extensions.getExtension("vscode.typescript-language-features"); if (!tsExtension) { if (!useTsgo) { - await vscode.window.showWarningMessage( + vscode.window.showWarningMessage( "The built-in TypeScript extension is disabled. Sync launch.json with launch.template.json to reenable.", "OK", ); } } else if (useTsgo === false) { - const selected = await vscode.window.showWarningMessage( + vscode.window.showWarningMessage( 'TypeScript Native Preview is running in development mode with "typescript.experimental.useTsgo" set to false.', "Enable Setting", "Ignore", - ); - if (selected === "Enable Setting") { - await vscode.commands.executeCommand("typescript.native-preview.enable"); - return; - } + ).then(selected => { + if (selected === "Enable Setting") { + vscode.commands.executeCommand("typescript.native-preview.enable"); + } + }); } } else if (!useTsgo) {