Skip to content

Commit ddf9607

Browse files
committed
Pass builtin extension dir to vscode
1 parent 91bd677 commit ddf9607

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

packages/vscode/src/client.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@ export class Client extends IdeClient {
3030
private readonly windowId = parseInt(new Date().toISOString().replace(/[-:.TZ]/g, ""), 10);
3131
private _serviceCollection: ServiceCollection | undefined;
3232
private _clipboardContextKey: RawContextKey<boolean> | undefined;
33+
private _builtInExtensionsDirectory: string | undefined;
34+
35+
public get builtInExtensionsDirectory(): string {
36+
if (!this._builtInExtensionsDirectory) {
37+
throw new Error("trying to access builtin extensions directory before it has been set");
38+
}
39+
40+
return this._builtInExtensionsDirectory;
41+
}
3342

3443
public async handleExternalDrop(target: ExplorerItem | Model, originalEvent: DragMouseEvent): Promise<void> {
3544
await this.upload.uploadDropped(
@@ -157,6 +166,7 @@ export class Client extends IdeClient {
157166
return this.task("Start workbench", 1000, async (data) => {
158167
paths._paths.appData = data.dataDirectory;
159168
paths._paths.defaultUserData = data.dataDirectory;
169+
this._builtInExtensionsDirectory = data.builtInExtensionsDirectory;
160170
process.env.SHELL = data.shell;
161171

162172
const { startup } = require("./startup");

scripts/vscode.patch

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,19 @@ index 7b4e8721ac..96d612f940 100644
328328
}
329329

330330
return codeEditorModel;
331+
diff --git a/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts b/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts
332+
index 4cb7a231f3..d5a9c26673 100644
333+
--- a/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts
334+
+++ b/src/vs/workbench/services/extensions/electron-browser/cachedExtensionScanner.ts
335+
@@ -31,6 +31,8 @@ interface IExtensionCacheData {
336+
337+
let _SystemExtensionsRoot: string | null = null;
338+
function getSystemExtensionsRoot(): string {
339+
+ const { client } = require("../../../../../../../../packages/vscode") as typeof import ("../../../../../../../../packages/vscode");
340+
+ return client.builtInExtensionsDirectory;
341+
if (!_SystemExtensionsRoot) {
342+
_SystemExtensionsRoot = path.normalize(path.join(getPathFromAmdModule(require, ''), '..', 'extensions'));
343+
}
331344
diff --git a/src/vs/workbench/services/themes/electron-browser/fileIconThemeData.ts b/src/vs/workbench/services/themes/electron-browser/fileIconThemeData.ts
332345
index 5b4136989f..25ccc0fe9e 100644
333346
--- a/src/vs/workbench/services/themes/electron-browser/fileIconThemeData.ts

0 commit comments

Comments
 (0)