Skip to content

Commit 3d7fbec

Browse files
committed
Use file system for settings and fix data home path
It's possible that using browser storage makes more sense with settings sync, so we might want to revisit this once/if we get settings sync working. As it currently is though, browser storage just causes jank. The path was also missing a `User` at the end so I added that. This might affect the Vim extension which would have been writing to the wrong path previously but I don't believe it should affect anything else since they would have been writing to browser storage. - Fixes #2208 - Fixes #2231 - Fixes #2279 - Fixes #2274
1 parent 96170de commit 3d7fbec

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

ci/dev/vscode.patch

+13-6
Original file line numberDiff line numberDiff line change
@@ -3797,18 +3797,25 @@ index 85d83f37da179a1e39266cf72a02e971f590308e..0659738b36df1747c9afcabf8d9abf26
37973797
};
37983798

37993799
diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts
3800-
index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..cd589c6f75eccbeefbf364d426ac882396b26fb4 100644
3800+
index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..8e122c761ac7ddfee11f9dda2ac5e845b893cc28 100644
38013801
--- a/src/vs/workbench/services/environment/browser/environmentService.ts
38023802
+++ b/src/vs/workbench/services/environment/browser/environmentService.ts
3803-
@@ -119,8 +119,18 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
3803+
@@ -119,8 +119,25 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
38043804
@memoize
38053805
get logFile(): URI { return joinPath(this.options.logsPath, 'window.log'); }
38063806

3807-
+ // NOTE@coder: Use the regular path for extensions that write directly to disk
3808-
+ // instead of using the VS Code API.
3807+
+ // NOTE@coder: Use the same path in // ../../../../platform/environment/node/environmentService.ts
3808+
+ // and don't use the user data scheme. This solves two problems:
3809+
+ // 1. Extensions running in the browser (like Vim) might use these paths
3810+
+ // directly instead of using the file service and most likely can't write
3811+
+ // to `/User` on disk.
3812+
+ // 2. Settings will be stored in the file system instead of in browser
3813+
+ // storage. Using browser storage makes sharing or seeding settings
3814+
+ // between browsers difficult. We may want to revisit this once/if we get
3815+
+ // settings sync.
38093816
@memoize
38103817
- get userRoamingDataHome(): URI { return URI.file('/User').with({ scheme: Schemas.userData }); }
3811-
+ get userRoamingDataHome(): URI { return URI.file(this.userDataPath).with({ scheme: Schemas.userData }); }
3818+
+ get userRoamingDataHome(): URI { return joinPath(URI.file(this.userDataPath).with({ scheme: Schemas.vscodeRemote }), 'User'); }
38123819
+ @memoize
38133820
+ get userDataPath(): string {
38143821
+ const dataPath = this.payload?.get("userDataPath");
@@ -3820,7 +3827,7 @@ index a8d43045ecc8cbe04b3f8440cff16d42aadbcad0..cd589c6f75eccbeefbf364d426ac8823
38203827

38213828
@memoize
38223829
get settingsResource(): URI { return joinPath(this.userRoamingDataHome, 'settings.json'); }
3823-
@@ -301,7 +311,12 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
3830+
@@ -301,7 +318,12 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment
38243831
extensionHostDebugEnvironment.params.port = parseInt(value);
38253832
break;
38263833
case 'enableProposedApi':

0 commit comments

Comments
 (0)