From 1ccf2fb1cfcbaa8335930cb3b22b8534eff4f004 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Sun, 10 May 2026 23:04:48 +0000 Subject: [PATCH] Keep Theia config out of home dotfolder --- applications/remote-theia/package.json | 5 ++++ .../remote-theia/src-gen/backend/main.js | 2 +- test/test.theia-config.node.ts | 30 +++++++++++++++++++ .../gitzone-remote-frontend-module.d.ts.map | 2 +- .../browser/gitzone-remote-frontend-module.js | 6 +++- .../gitzone-remote-frontend-module.js.map | 2 +- .../gitzone-preference-configurations.d.ts | 6 ++++ ...gitzone-preference-configurations.d.ts.map | 1 + .../gitzone-preference-configurations.js | 22 ++++++++++++++ .../gitzone-preference-configurations.js.map | 1 + .../gitzone-remote-backend-module.d.ts.map | 2 +- .../lib/node/gitzone-remote-backend-module.js | 6 +++- .../node/gitzone-remote-backend-module.js.map | 2 +- .../browser/gitzone-remote-frontend-module.ts | 6 +++- .../gitzone-preference-configurations.ts | 11 +++++++ .../src/node/gitzone-remote-backend-module.ts | 6 +++- 16 files changed, 101 insertions(+), 9 deletions(-) create mode 100644 test/test.theia-config.node.ts create mode 100644 theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts create mode 100644 theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts.map create mode 100644 theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js create mode 100644 theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js.map create mode 100644 theia-extensions/gitzone-remote/src/common/gitzone-preference-configurations.ts diff --git a/applications/remote-theia/package.json b/applications/remote-theia/package.json index 9dd9ea4..2eeb502 100644 --- a/applications/remote-theia/package.json +++ b/applications/remote-theia/package.json @@ -39,6 +39,11 @@ }, "theia": { "target": "browser", + "backend": { + "config": { + "configurationFolder": ".git.zone/ide/theia" + } + }, "frontend": { "config": { "applicationName": "Git.Zone IDE", diff --git a/applications/remote-theia/src-gen/backend/main.js b/applications/remote-theia/src-gen/backend/main.js index 16ebe86..801e901 100644 --- a/applications/remote-theia/src-gen/backend/main.js +++ b/applications/remote-theia/src-gen/backend/main.js @@ -8,7 +8,7 @@ const main = require('@theia/core/lib/node/main'); BackendApplicationConfigProvider.set({ "singleInstance": true, "frontendConnectionTimeout": 0, - "configurationFolder": ".theia" + "configurationFolder": ".git.zone/ide/theia" }); globalThis.extensionInfo = [ diff --git a/test/test.theia-config.node.ts b/test/test.theia-config.node.ts new file mode 100644 index 0000000..ca8073d --- /dev/null +++ b/test/test.theia-config.node.ts @@ -0,0 +1,30 @@ +import { tap, expect } from '@git.zone/tstest/tapbundle'; +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; + +const gitZoneWorkspacePreferenceFolder = '.git.zone/ide/workspace'; + +tap.test('should keep Theia backend config under Git.Zone IDE home path', async () => { + const packageJsonPath = path.join(process.cwd(), 'applications', 'remote-theia', 'package.json'); + const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf8')); + + expect(packageJson.theia.backend.config.configurationFolder).toEqual('.git.zone/ide/theia'); +}); + +tap.test('should avoid legacy .theia workspace preference folders', async () => { + const sourcePath = path.join( + process.cwd(), + 'theia-extensions', + 'gitzone-remote', + 'src', + 'common', + 'gitzone-preference-configurations.ts', + ); + const sourceText = await fs.readFile(sourcePath, 'utf8'); + + expect(sourceText).toInclude(gitZoneWorkspacePreferenceFolder); + expect(sourceText).toInclude("return [gitZoneWorkspacePreferenceFolder, '.vscode']"); + expect(sourceText).not.toInclude("'.theia'"); +}); + +export default tap.start(); diff --git a/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.d.ts.map b/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.d.ts.map index 82ecf35..bbd46dd 100644 --- a/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.d.ts.map +++ b/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"gitzone-remote-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/gitzone-remote-frontend-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAsB,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,+BAA+B;;;CAG3C,CAAC;AAEF,qBACa,yBAA0B,YAAW,mBAAmB,EAAE,gBAAgB;IAErF,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAG,oBAAoB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAC;IAE7C,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IASjD,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAM9C;;AAED,wBAWG"} \ No newline at end of file +{"version":3,"file":"gitzone-remote-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/gitzone-remote-frontend-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAE3E,OAAO,EAAE,eAAe,EAAsB,MAAM,uCAAuC,CAAC;AAC5F,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,sCAAsC,CAAC;AAG9C,eAAO,MAAM,+BAA+B;;;CAG3C,CAAC;AAEF,qBACa,yBAA0B,YAAW,mBAAmB,EAAE,gBAAgB;IAErF,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAG,oBAAoB,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAC;IAE7C,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IASjD,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAM9C;;AAED,wBAaG"} \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js b/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js index e9ce392..3ab53be 100644 --- a/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js +++ b/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js @@ -15,8 +15,10 @@ const common_menus_js_1 = require("@theia/core/lib/browser/common-menus.js"); const command_js_1 = require("@theia/core/lib/common/command.js"); const menu_model_registry_js_1 = require("@theia/core/lib/common/menu/menu-model-registry.js"); const message_service_js_1 = require("@theia/core/lib/common/message-service.js"); +const preference_configurations_js_1 = require("@theia/core/lib/common/preferences/preference-configurations.js"); const index_js_1 = require("@theia/core/shared/inversify/index.js"); const gitzone_remote_protocol_js_1 = require("../common/gitzone-remote-protocol.js"); +const gitzone_preference_configurations_js_1 = require("../common/gitzone-preference-configurations.js"); exports.GitZoneRemoteEnvironmentCommand = { id: 'gitzone.remote.environment', label: 'Git.Zone: Show Remote Environment', @@ -51,7 +53,9 @@ __decorate([ exports.GitZoneRemoteContribution = GitZoneRemoteContribution = __decorate([ (0, index_js_1.injectable)() ], GitZoneRemoteContribution); -exports.default = new index_js_1.ContainerModule((bind) => { +exports.default = new index_js_1.ContainerModule((bind, _unbind, isBound, rebind) => { + const preferenceBinding = isBound(preference_configurations_js_1.PreferenceConfigurations) ? rebind(preference_configurations_js_1.PreferenceConfigurations) : bind(preference_configurations_js_1.PreferenceConfigurations); + preferenceBinding.to(gitzone_preference_configurations_js_1.GitZonePreferenceConfigurations).inSingletonScope(); bind(gitzone_remote_protocol_js_1.GitZoneRemoteServer) .toDynamicValue((context) => context.container .get(ws_connection_provider_js_1.WebSocketConnectionProvider) diff --git a/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js.map b/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js.map index b59a1aa..d40fdc2 100644 --- a/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js.map +++ b/theia-extensions/gitzone-remote/lib/browser/gitzone-remote-frontend-module.js.map @@ -1 +1 @@ -{"version":3,"file":"gitzone-remote-frontend-module.js","sourceRoot":"","sources":["../../src/browser/gitzone-remote-frontend-module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2GAA0G;AAC1G,6EAAsE;AACtE,kEAAyF;AACzF,+FAAyG;AACzG,kFAA2E;AAC3E,oEAA4F;AAC5F,qFAI8C;AAEjC,QAAA,+BAA+B,GAAG;IAC7C,EAAE,EAAE,4BAA4B;IAChC,KAAK,EAAE,mCAAmC;CAC3C,CAAC;AAGK,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAEjB,YAAY,CAAwB;IAGpC,QAAQ,CAAkB;IAE7C,gBAAgB,CAAC,QAAyB;QACxC,QAAQ,CAAC,eAAe,CAAC,uCAA+B,EAAE;YACxD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;YAC7E,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAwB;QACpC,KAAK,CAAC,kBAAkB,CAAC,6BAAW,CAAC,SAAS,EAAE;YAC9C,SAAS,EAAE,uCAA+B,CAAC,EAAE;YAC7C,KAAK,EAAE,uCAA+B,CAAC,KAAK;SAC7C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAtBY,8DAAyB;AAEjB;IADlB,IAAA,iBAAM,EAAC,gDAAmB,CAAC;;+DAC2B;AAGpC;IADlB,IAAA,iBAAM,EAAC,mCAAc,CAAC;8BACO,mCAAc;2DAAC;oCALlC,yBAAyB;IADrC,IAAA,qBAAU,GAAE;GACA,yBAAyB,CAsBrC;AAED,kBAAe,IAAI,0BAAe,CAAC,CAAC,IAAI,EAAE,EAAE;IAC1C,IAAI,CAAC,gDAAmB,CAAC;SACtB,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1B,OAAO,CAAC,SAAS;SACd,GAAG,CAAC,uDAA2B,CAAC;SAChC,WAAW,CAAuB,8CAAiB,CAAC,CACxD;SACA,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,gCAAmB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC/D,IAAI,CAAC,yCAAgB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"gitzone-remote-frontend-module.js","sourceRoot":"","sources":["../../src/browser/gitzone-remote-frontend-module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2GAA0G;AAC1G,6EAAsE;AACtE,kEAAyF;AACzF,+FAAyG;AACzG,kFAA2E;AAC3E,kHAA2G;AAC3G,oEAA4F;AAC5F,qFAI8C;AAC9C,yGAAiG;AAEpF,QAAA,+BAA+B,GAAG;IAC7C,EAAE,EAAE,4BAA4B;IAChC,KAAK,EAAE,mCAAmC;CAC3C,CAAC;AAGK,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAEjB,YAAY,CAAwB;IAGpC,QAAQ,CAAkB;IAE7C,gBAAgB,CAAC,QAAyB;QACxC,QAAQ,CAAC,eAAe,CAAC,uCAA+B,EAAE;YACxD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;YAC7E,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,KAAwB;QACpC,KAAK,CAAC,kBAAkB,CAAC,6BAAW,CAAC,SAAS,EAAE;YAC9C,SAAS,EAAE,uCAA+B,CAAC,EAAE;YAC7C,KAAK,EAAE,uCAA+B,CAAC,KAAK;SAC7C,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAtBY,8DAAyB;AAEjB;IADlB,IAAA,iBAAM,EAAC,gDAAmB,CAAC;;+DAC2B;AAGpC;IADlB,IAAA,iBAAM,EAAC,mCAAc,CAAC;8BACO,mCAAc;2DAAC;oCALlC,yBAAyB;IADrC,IAAA,qBAAU,GAAE;GACA,yBAAyB,CAsBrC;AAED,kBAAe,IAAI,0BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IACpE,MAAM,iBAAiB,GAAG,OAAO,CAAC,uDAAwB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,uDAAwB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uDAAwB,CAAC,CAAC;IAChI,iBAAiB,CAAC,EAAE,CAAC,sEAA+B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzE,IAAI,CAAC,gDAAmB,CAAC;SACtB,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1B,OAAO,CAAC,SAAS;SACd,GAAG,CAAC,uDAA2B,CAAC;SAChC,WAAW,CAAuB,8CAAiB,CAAC,CACxD;SACA,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC5D,IAAI,CAAC,gCAAmB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC/D,IAAI,CAAC,yCAAgB,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts new file mode 100644 index 0000000..55d66b9 --- /dev/null +++ b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts @@ -0,0 +1,6 @@ +import { PreferenceConfigurations } from '@theia/core/lib/common/preferences/preference-configurations.js'; +export declare const gitZoneWorkspacePreferenceFolder = ".git.zone/ide/workspace"; +export declare class GitZonePreferenceConfigurations extends PreferenceConfigurations { + getPaths(): string[]; +} +//# sourceMappingURL=gitzone-preference-configurations.d.ts.map \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts.map b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts.map new file mode 100644 index 0000000..3edbc87 --- /dev/null +++ b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"gitzone-preference-configurations.d.ts","sourceRoot":"","sources":["../../src/common/gitzone-preference-configurations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iEAAiE,CAAC;AAG3G,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAE1E,qBACa,+BAAgC,SAAQ,wBAAwB;IAC3E,QAAQ,IAAI,MAAM,EAAE;CAGrB"} \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js new file mode 100644 index 0000000..99892b1 --- /dev/null +++ b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js @@ -0,0 +1,22 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GitZonePreferenceConfigurations = exports.gitZoneWorkspacePreferenceFolder = void 0; +const preference_configurations_js_1 = require("@theia/core/lib/common/preferences/preference-configurations.js"); +const index_js_1 = require("@theia/core/shared/inversify/index.js"); +exports.gitZoneWorkspacePreferenceFolder = '.git.zone/ide/workspace'; +let GitZonePreferenceConfigurations = class GitZonePreferenceConfigurations extends preference_configurations_js_1.PreferenceConfigurations { + getPaths() { + return [exports.gitZoneWorkspacePreferenceFolder, '.vscode']; + } +}; +exports.GitZonePreferenceConfigurations = GitZonePreferenceConfigurations; +exports.GitZonePreferenceConfigurations = GitZonePreferenceConfigurations = __decorate([ + (0, index_js_1.injectable)() +], GitZonePreferenceConfigurations); +//# sourceMappingURL=gitzone-preference-configurations.js.map \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js.map b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js.map new file mode 100644 index 0000000..45e0889 --- /dev/null +++ b/theia-extensions/gitzone-remote/lib/common/gitzone-preference-configurations.js.map @@ -0,0 +1 @@ +{"version":3,"file":"gitzone-preference-configurations.js","sourceRoot":"","sources":["../../src/common/gitzone-preference-configurations.ts"],"names":[],"mappings":";;;;;;;;;AAAA,kHAA2G;AAC3G,oEAAmE;AAEtD,QAAA,gCAAgC,GAAG,yBAAyB,CAAC;AAGnE,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,uDAAwB;IAC3E,QAAQ;QACN,OAAO,CAAC,wCAAgC,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AAJY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,qBAAU,GAAE;GACA,+BAA+B,CAI3C"} \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.d.ts.map b/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.d.ts.map index b7a0fb9..7236ff2 100644 --- a/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.d.ts.map +++ b/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"gitzone-remote-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/gitzone-remote-backend-module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;;AAQxE,wBAUG"} \ No newline at end of file +{"version":3,"file":"gitzone-remote-backend-module.d.ts","sourceRoot":"","sources":["../../src/node/gitzone-remote-backend-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;;AASxE,wBAYG"} \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js b/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js index 2e7016d..bfb64b7 100644 --- a/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js +++ b/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js @@ -2,10 +2,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); const handler_js_1 = require("@theia/core/lib/common/messaging/handler.js"); const proxy_factory_js_1 = require("@theia/core/lib/common/messaging/proxy-factory.js"); +const preference_configurations_js_1 = require("@theia/core/lib/common/preferences/preference-configurations.js"); const index_js_1 = require("@theia/core/shared/inversify/index.js"); +const gitzone_preference_configurations_js_1 = require("../common/gitzone-preference-configurations.js"); const gitzone_remote_protocol_js_1 = require("../common/gitzone-remote-protocol.js"); const gitzone_remote_node_service_js_1 = require("./gitzone-remote-node-service.js"); -exports.default = new index_js_1.ContainerModule((bind) => { +exports.default = new index_js_1.ContainerModule((bind, _unbind, isBound, rebind) => { + const preferenceBinding = isBound(preference_configurations_js_1.PreferenceConfigurations) ? rebind(preference_configurations_js_1.PreferenceConfigurations) : bind(preference_configurations_js_1.PreferenceConfigurations); + preferenceBinding.to(gitzone_preference_configurations_js_1.GitZonePreferenceConfigurations).inSingletonScope(); bind(gitzone_remote_node_service_js_1.GitZoneRemoteNodeService).toSelf().inSingletonScope(); bind(gitzone_remote_protocol_js_1.GitZoneRemoteServer).toService(gitzone_remote_node_service_js_1.GitZoneRemoteNodeService); bind(handler_js_1.ConnectionHandler) diff --git a/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js.map b/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js.map index 1469749..9ae675f 100644 --- a/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js.map +++ b/theia-extensions/gitzone-remote/lib/node/gitzone-remote-backend-module.js.map @@ -1 +1 @@ -{"version":3,"file":"gitzone-remote-backend-module.js","sourceRoot":"","sources":["../../src/node/gitzone-remote-backend-module.ts"],"names":[],"mappings":";;AAAA,4EAAgF;AAChF,wFAAyF;AACzF,oEAAwE;AACxE,qFAI8C;AAC9C,qFAA4E;AAE5E,kBAAe,IAAI,0BAAe,CAAC,CAAC,IAAI,EAAE,EAAE;IAC1C,IAAI,CAAC,yDAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,gDAAmB,CAAC,CAAC,SAAS,CAAC,yDAAwB,CAAC,CAAC;IAC9D,IAAI,CAAC,8BAAiB,CAAC;SACpB,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1B,IAAI,uCAAoB,CAAQ,8CAAiB,EAAE,GAAG,EAAE,CACtD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAuB,gDAAmB,CAAC,CACjE,CACF;SACA,gBAAgB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"gitzone-remote-backend-module.js","sourceRoot":"","sources":["../../src/node/gitzone-remote-backend-module.ts"],"names":[],"mappings":";;AAAA,4EAAgF;AAChF,wFAAyF;AACzF,kHAA2G;AAC3G,oEAAwE;AACxE,yGAAiG;AACjG,qFAI8C;AAC9C,qFAA4E;AAE5E,kBAAe,IAAI,0BAAe,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IACpE,MAAM,iBAAiB,GAAG,OAAO,CAAC,uDAAwB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,uDAAwB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uDAAwB,CAAC,CAAC;IAChI,iBAAiB,CAAC,EAAE,CAAC,sEAA+B,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzE,IAAI,CAAC,yDAAwB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC3D,IAAI,CAAC,gDAAmB,CAAC,CAAC,SAAS,CAAC,yDAAwB,CAAC,CAAC;IAC9D,IAAI,CAAC,8BAAiB,CAAC;SACpB,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1B,IAAI,uCAAoB,CAAQ,8CAAiB,EAAE,GAAG,EAAE,CACtD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAuB,gDAAmB,CAAC,CACjE,CACF;SACA,gBAAgB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/theia-extensions/gitzone-remote/src/browser/gitzone-remote-frontend-module.ts b/theia-extensions/gitzone-remote/src/browser/gitzone-remote-frontend-module.ts index 38ee4ee..d88a780 100644 --- a/theia-extensions/gitzone-remote/src/browser/gitzone-remote-frontend-module.ts +++ b/theia-extensions/gitzone-remote/src/browser/gitzone-remote-frontend-module.ts @@ -3,12 +3,14 @@ import { CommonMenus } from '@theia/core/lib/browser/common-menus.js'; import { CommandContribution, CommandRegistry } from '@theia/core/lib/common/command.js'; import { MenuContribution, MenuModelRegistry } from '@theia/core/lib/common/menu/menu-model-registry.js'; import { MessageService } from '@theia/core/lib/common/message-service.js'; +import { PreferenceConfigurations } from '@theia/core/lib/common/preferences/preference-configurations.js'; import { ContainerModule, inject, injectable } from '@theia/core/shared/inversify/index.js'; import { GitZoneRemoteServer, gitZoneRemotePath, type IGitZoneRemoteServer, } from '../common/gitzone-remote-protocol.js'; +import { GitZonePreferenceConfigurations } from '../common/gitzone-preference-configurations.js'; export const GitZoneRemoteEnvironmentCommand = { id: 'gitzone.remote.environment', @@ -40,7 +42,9 @@ export class GitZoneRemoteContribution implements CommandContribution, MenuContr } } -export default new ContainerModule((bind) => { +export default new ContainerModule((bind, _unbind, isBound, rebind) => { + const preferenceBinding = isBound(PreferenceConfigurations) ? rebind(PreferenceConfigurations) : bind(PreferenceConfigurations); + preferenceBinding.to(GitZonePreferenceConfigurations).inSingletonScope(); bind(GitZoneRemoteServer) .toDynamicValue((context) => context.container diff --git a/theia-extensions/gitzone-remote/src/common/gitzone-preference-configurations.ts b/theia-extensions/gitzone-remote/src/common/gitzone-preference-configurations.ts new file mode 100644 index 0000000..a4193d8 --- /dev/null +++ b/theia-extensions/gitzone-remote/src/common/gitzone-preference-configurations.ts @@ -0,0 +1,11 @@ +import { PreferenceConfigurations } from '@theia/core/lib/common/preferences/preference-configurations.js'; +import { injectable } from '@theia/core/shared/inversify/index.js'; + +export const gitZoneWorkspacePreferenceFolder = '.git.zone/ide/workspace'; + +@injectable() +export class GitZonePreferenceConfigurations extends PreferenceConfigurations { + getPaths(): string[] { + return [gitZoneWorkspacePreferenceFolder, '.vscode']; + } +} diff --git a/theia-extensions/gitzone-remote/src/node/gitzone-remote-backend-module.ts b/theia-extensions/gitzone-remote/src/node/gitzone-remote-backend-module.ts index a664b93..8ca4913 100644 --- a/theia-extensions/gitzone-remote/src/node/gitzone-remote-backend-module.ts +++ b/theia-extensions/gitzone-remote/src/node/gitzone-remote-backend-module.ts @@ -1,6 +1,8 @@ import { ConnectionHandler } from '@theia/core/lib/common/messaging/handler.js'; import { RpcConnectionHandler } from '@theia/core/lib/common/messaging/proxy-factory.js'; +import { PreferenceConfigurations } from '@theia/core/lib/common/preferences/preference-configurations.js'; import { ContainerModule } from '@theia/core/shared/inversify/index.js'; +import { GitZonePreferenceConfigurations } from '../common/gitzone-preference-configurations.js'; import { GitZoneRemoteServer, gitZoneRemotePath, @@ -8,7 +10,9 @@ import { } from '../common/gitzone-remote-protocol.js'; import { GitZoneRemoteNodeService } from './gitzone-remote-node-service.js'; -export default new ContainerModule((bind) => { +export default new ContainerModule((bind, _unbind, isBound, rebind) => { + const preferenceBinding = isBound(PreferenceConfigurations) ? rebind(PreferenceConfigurations) : bind(PreferenceConfigurations); + preferenceBinding.to(GitZonePreferenceConfigurations).inSingletonScope(); bind(GitZoneRemoteNodeService).toSelf().inSingletonScope(); bind(GitZoneRemoteServer).toService(GitZoneRemoteNodeService); bind(ConnectionHandler)