From e67d7c991bfaf2eab6e5cab19fd14ca4ee765dd9 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Fri, 9 Jan 2026 17:29:19 +0100 Subject: [PATCH] Use package.json to detect if workspace is vscode workspace (#286714) (see https://github.com/microsoft/vscode/issues/285255) --- .../src/testTree.ts | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/.vscode/extensions/vscode-selfhost-test-provider/src/testTree.ts b/.vscode/extensions/vscode-selfhost-test-provider/src/testTree.ts index 7a54c5c0d32..4210987083f 100644 --- a/.vscode/extensions/vscode-selfhost-test-provider/src/testTree.ts +++ b/.vscode/extensions/vscode-selfhost-test-provider/src/testTree.ts @@ -31,17 +31,24 @@ export const guessWorkspaceFolder = async () => { } for (const folder of vscode.workspace.workspaceFolders) { - try { - await vscode.workspace.fs.stat(vscode.Uri.joinPath(folder.uri, 'src/vs/loader.js')); + if (await isVsCodeWorkspaceFolder(folder)) { return folder; - } catch { - // ignored } } return undefined; }; +export async function isVsCodeWorkspaceFolder(folder: vscode.WorkspaceFolder): Promise { + try { + const buffer = await vscode.workspace.fs.readFile(vscode.Uri.joinPath(folder.uri, 'package.json')); + const pkg = JSON.parse(textDecoder.decode(buffer)); + return pkg.name === 'code-oss-dev'; + } catch { + return false; + } +} + export const getContentFromFilesystem: ContentGetter = async uri => { try { const rawContent = await vscode.workspace.fs.readFile(uri); @@ -58,7 +65,7 @@ export class TestFile { constructor( public readonly uri: vscode.Uri, public readonly workspaceFolder: vscode.WorkspaceFolder - ) {} + ) { } public getId() { return this.uri.toString().toLowerCase(); @@ -169,8 +176,8 @@ export abstract class TestConstruct { } } -export class TestSuite extends TestConstruct {} +export class TestSuite extends TestConstruct { } -export class TestCase extends TestConstruct {} +export class TestCase extends TestConstruct { } export type VSCodeTest = TestFile | TestSuite | TestCase;