diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index d3d6e631a02..7200a26f72a 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts @@ -31,10 +31,10 @@ export class Config { enableProposedApi: boolean | undefined; } = vscode.extensions.getExtension(this.extensionId)!.packageJSON; - readonly globalStoragePath: string; + readonly globalStorageUri: vscode.Uri; constructor(ctx: vscode.ExtensionContext) { - this.globalStoragePath = ctx.globalStorageUri.fsPath; + this.globalStorageUri = ctx.globalStorageUri; vscode.workspace.onDidChangeConfiguration(this.onDidChangeConfiguration, this, ctx.subscriptions); this.refreshLogging(); } diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 74ee28d2457..fb9d38a14dd 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -160,7 +160,7 @@ export async function deactivate() { } async function bootstrap(config: Config, state: PersistentState): Promise { - await fs.mkdir(config.globalStoragePath, { recursive: true }); + await vscode.workspace.fs.createDirectory(config.globalStorageUri); if (!config.currentExtensionIsNightly) { await state.updateNightlyReleaseId(undefined); @@ -222,7 +222,7 @@ async function bootstrapExtension(config: Config, state: PersistentState): Promi const artifact = latestNightlyRelease.assets.find(artifact => artifact.name === "rust-analyzer.vsix"); assert(!!artifact, `Bad release: ${JSON.stringify(latestNightlyRelease)}`); - const dest = path.join(config.globalStoragePath, "rust-analyzer.vsix"); + const dest = path.join(config.globalStorageUri.path, "rust-analyzer.vsix"); await downloadWithRetryDialog(state, async () => { await download({ @@ -334,7 +334,7 @@ async function getServer(config: Config, state: PersistentState): Promise true, () => false); if (!exists) { await state.updateServerVersion(undefined);