@theia/core 1.74.0-next.0 → 1.74.0-next.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/lib/browser/catalog.json +156 -12
  2. package/lib/browser/keyboard/keyboard-layout-service.d.ts +2 -0
  3. package/lib/browser/keyboard/keyboard-layout-service.d.ts.map +1 -1
  4. package/lib/browser/keyboard/keyboard-layout-service.js +35 -12
  5. package/lib/browser/keyboard/keyboard-layout-service.js.map +1 -1
  6. package/lib/browser/keyboard/keyboard-layout-service.spec.js +26 -0
  7. package/lib/browser/keyboard/keyboard-layout-service.spec.js.map +1 -1
  8. package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
  9. package/lib/browser/preferences/preference-contribution.js +9 -1
  10. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  11. package/lib/browser/preferences/preference-service.spec.js +63 -0
  12. package/lib/browser/preferences/preference-service.spec.js.map +1 -1
  13. package/lib/common/logger.d.ts.map +1 -1
  14. package/lib/common/logger.js +11 -1
  15. package/lib/common/logger.js.map +1 -1
  16. package/lib/common/logger.spec.js +46 -0
  17. package/lib/common/logger.spec.js.map +1 -1
  18. package/lib/common/preferences/index.d.ts +1 -0
  19. package/lib/common/preferences/index.d.ts.map +1 -1
  20. package/lib/common/preferences/index.js +1 -0
  21. package/lib/common/preferences/index.js.map +1 -1
  22. package/lib/common/preferences/preference-scope.d.ts +6 -1
  23. package/lib/common/preferences/preference-scope.d.ts.map +1 -1
  24. package/lib/common/preferences/preference-scope.js +5 -0
  25. package/lib/common/preferences/preference-scope.js.map +1 -1
  26. package/lib/common/preferences/preference-scope.spec.js +5 -3
  27. package/lib/common/preferences/preference-scope.spec.js.map +1 -1
  28. package/lib/common/preferences/preference-service.d.ts +19 -0
  29. package/lib/common/preferences/preference-service.d.ts.map +1 -1
  30. package/lib/common/preferences/preference-service.js +34 -5
  31. package/lib/common/preferences/preference-service.js.map +1 -1
  32. package/lib/common/preferences/session-preference-provider.d.ts +17 -0
  33. package/lib/common/preferences/session-preference-provider.d.ts.map +1 -0
  34. package/lib/common/preferences/session-preference-provider.js +77 -0
  35. package/lib/common/preferences/session-preference-provider.js.map +1 -0
  36. package/lib/common/preferences/session-preference-provider.spec.d.ts +2 -0
  37. package/lib/common/preferences/session-preference-provider.spec.d.ts.map +1 -0
  38. package/lib/common/preferences/session-preference-provider.spec.js +71 -0
  39. package/lib/common/preferences/session-preference-provider.spec.js.map +1 -0
  40. package/package.json +4 -4
  41. package/src/browser/keyboard/keyboard-layout-service.spec.ts +28 -0
  42. package/src/browser/keyboard/keyboard-layout-service.ts +38 -14
  43. package/src/browser/preferences/preference-contribution.ts +9 -1
  44. package/src/browser/preferences/preference-service.spec.ts +72 -0
  45. package/src/browser/style/status-bar.css +1 -1
  46. package/src/common/logger.spec.ts +62 -1
  47. package/src/common/logger.ts +13 -4
  48. package/src/common/preferences/index.ts +1 -0
  49. package/src/common/preferences/preference-scope.spec.ts +5 -3
  50. package/src/common/preferences/preference-scope.ts +6 -1
  51. package/src/common/preferences/preference-service.ts +39 -5
  52. package/src/common/preferences/session-preference-provider.spec.ts +78 -0
  53. package/src/common/preferences/session-preference-provider.ts +69 -0
@@ -202,10 +202,35 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
202
202
  }
203
203
  const provider = this.getProvider(resolvedScope);
204
204
  if (provider && await provider.setPreference(preferenceName, value, resourceUri)) {
205
+ await this.evictSessionOverride(preferenceName, resolvedScope);
205
206
  return;
206
207
  }
207
208
  throw new Error(`Unable to write to ${preference_scope_1.PreferenceScope[resolvedScope]} Settings.`);
208
209
  }
210
+ /**
211
+ * When a preference is written to a persistent scope, drop any in-memory session
212
+ * override (set via `--session-preference`) for the same key so that the explicit
213
+ * change takes effect for the remainder of the session. Without this, the session
214
+ * scope would keep shadowing the user's change because it has higher precedence.
215
+ *
216
+ * Note: this fires for any write to a persistent scope, including programmatic
217
+ * writes from extensions. Extensions that race with startup CLI overrides will
218
+ * therefore clear them. This is intentional: a programmatic write is "explicit"
219
+ * from the preference system's point of view, but consumers should be aware.
220
+ *
221
+ * Session preferences are global (no per-resource scoping), so `resourceUri` is
222
+ * not threaded through.
223
+ */
224
+ async evictSessionOverride(preferenceName, writtenScope) {
225
+ if (writtenScope === preference_scope_1.PreferenceScope.Session || writtenScope === preference_scope_1.PreferenceScope.Default) {
226
+ return;
227
+ }
228
+ const sessionProvider = this.getProvider(preference_scope_1.PreferenceScope.Session);
229
+ if (sessionProvider && sessionProvider.get(preferenceName) !== undefined) {
230
+ // Passing `undefined` clears the value in the session provider.
231
+ await sessionProvider.setPreference(preferenceName, undefined);
232
+ }
233
+ }
209
234
  getBoolean(preferenceName, defaultValue, resourceUri) {
210
235
  const value = resourceUri ? this.get(preferenceName, defaultValue, resourceUri) : this.get(preferenceName, defaultValue);
211
236
  // eslint-disable-next-line no-null/no-null
@@ -235,8 +260,9 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
235
260
  const globalValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.User, resourceUri, forceLanguageOverride);
236
261
  const workspaceValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.Workspace, resourceUri, forceLanguageOverride);
237
262
  const workspaceFolderValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.Folder, resourceUri, forceLanguageOverride);
238
- const valueApplied = workspaceFolderValue ?? workspaceValue ?? globalValue ?? defaultValue;
239
- return { preferenceName, defaultValue, globalValue, workspaceValue, workspaceFolderValue, value: valueApplied };
263
+ const sessionValue = this.inspectInScope(preferenceName, preference_scope_1.PreferenceScope.Session, resourceUri, forceLanguageOverride);
264
+ const valueApplied = sessionValue ?? workspaceFolderValue ?? workspaceValue ?? globalValue ?? defaultValue;
265
+ return { preferenceName, defaultValue, globalValue, workspaceValue, workspaceFolderValue, sessionValue, value: valueApplied };
240
266
  }
241
267
  inspectInScope(preferenceName, scope, resourceUri, forceLanguageOverride) {
242
268
  const value = this.doInspectInScope(preferenceName, scope, resourceUri);
@@ -258,6 +284,8 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
258
284
  return inspection.workspaceValue;
259
285
  case preference_scope_1.PreferenceScope.Folder:
260
286
  return inspection.workspaceFolderValue;
287
+ case preference_scope_1.PreferenceScope.Session:
288
+ return inspection.sessionValue;
261
289
  }
262
290
  (0, types_1.unreachable)(scope, 'Not all PreferenceScope enum variants handled.');
263
291
  }
@@ -278,9 +306,10 @@ let PreferenceServiceImpl = class PreferenceServiceImpl {
278
306
  return [];
279
307
  }
280
308
  // Scopes in ascending order of scope breadth.
281
- const allScopes = [...this.schemaService.validScopes].reverse();
282
- // Get rid of Default scope. We can't set anything there.
283
- allScopes.pop();
309
+ const allScopes = [...this.schemaService.validScopes].reverse()
310
+ // Default is read-only, and Session is populated only by `--session-preference`,
311
+ // so neither is a valid target for a regular user edit.
312
+ .filter(scope => scope !== preference_scope_1.PreferenceScope.Default && scope !== preference_scope_1.PreferenceScope.Session);
284
313
  const isScopeDefined = (scope) => this.getScopedValueFromInspection(inspection, scope) !== undefined;
285
314
  if (intendedValue === undefined) {
286
315
  return allScopes.filter(isScopeDefined);
@@ -1 +1 @@
1
- {"version":3,"file":"preference-service.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preference-service.js","sourceRoot":"","sources":["../../../src/common/preferences/preference-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { JSONObject, JSONValue } from '@lumino/coreutils';
2
+ import { PreferenceProvider } from './preference-provider';
3
+ import { PreferenceProviderImpl } from './preference-provider-impl';
4
+ import { PreferenceScope } from './preference-scope';
5
+ /**
6
+ * In-memory preference provider used for process-lifetime overrides such as those
7
+ * supplied via the `--session-preference` CLI option. Values live in memory only
8
+ * and are dropped when the process exits.
9
+ */
10
+ export declare class SessionPreferenceProvider extends PreferenceProviderImpl implements PreferenceProvider {
11
+ protected readonly preferences: Map<string, JSONValue>;
12
+ protected init(): void;
13
+ canHandleScope(scope: PreferenceScope): boolean;
14
+ getPreferences(): JSONObject;
15
+ setPreference(key: string, value: JSONValue | undefined): Promise<boolean>;
16
+ }
17
+ //# sourceMappingURL=session-preference-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAgC,MAAM,uBAAuB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;GAIG;AACH,qBACa,yBAA0B,SAAQ,sBAAuB,YAAW,kBAAkB;IAE/F,SAAS,CAAC,QAAQ,CAAC,WAAW,yBAAgC;IAG9D,SAAS,CAAC,IAAI,IAAI,IAAI;IAIb,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAIxD,cAAc,IAAI,UAAU;IAQtB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBnF"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SessionPreferenceProvider = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("inversify");
21
+ const preference_provider_impl_1 = require("./preference-provider-impl");
22
+ const preference_scope_1 = require("./preference-scope");
23
+ /**
24
+ * In-memory preference provider used for process-lifetime overrides such as those
25
+ * supplied via the `--session-preference` CLI option. Values live in memory only
26
+ * and are dropped when the process exits.
27
+ */
28
+ let SessionPreferenceProvider = class SessionPreferenceProvider extends preference_provider_impl_1.PreferenceProviderImpl {
29
+ constructor() {
30
+ super(...arguments);
31
+ this.preferences = new Map();
32
+ }
33
+ init() {
34
+ this._ready.resolve();
35
+ }
36
+ canHandleScope(scope) {
37
+ return scope === preference_scope_1.PreferenceScope.Session;
38
+ }
39
+ getPreferences() {
40
+ const result = {};
41
+ for (const [name, value] of this.preferences) {
42
+ result[name] = value;
43
+ }
44
+ return result;
45
+ }
46
+ async setPreference(key, value) {
47
+ const oldValue = this.preferences.get(key);
48
+ if (value === undefined) {
49
+ if (!this.preferences.has(key)) {
50
+ return false;
51
+ }
52
+ this.preferences.delete(key);
53
+ }
54
+ else {
55
+ this.preferences.set(key, value);
56
+ }
57
+ const change = {
58
+ preferenceName: key,
59
+ newValue: value,
60
+ oldValue,
61
+ scope: preference_scope_1.PreferenceScope.Session
62
+ };
63
+ await this.emitPreferencesChangedEvent([change]);
64
+ return true;
65
+ }
66
+ };
67
+ exports.SessionPreferenceProvider = SessionPreferenceProvider;
68
+ tslib_1.__decorate([
69
+ (0, inversify_1.postConstruct)(),
70
+ tslib_1.__metadata("design:type", Function),
71
+ tslib_1.__metadata("design:paramtypes", []),
72
+ tslib_1.__metadata("design:returntype", void 0)
73
+ ], SessionPreferenceProvider.prototype, "init", null);
74
+ exports.SessionPreferenceProvider = SessionPreferenceProvider = tslib_1.__decorate([
75
+ (0, inversify_1.injectable)()
76
+ ], SessionPreferenceProvider);
77
+ //# sourceMappingURL=session-preference-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.js","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,yCAAsD;AAEtD,yEAAoE;AACpE,yDAAqD;AAErD;;;;GAIG;AAEI,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,iDAAsB;IAA9D;;QAEgB,gBAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;IAsClE,CAAC;IAnCa,IAAI;QACV,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEQ,cAAc,CAAC,KAAsB;QAC1C,OAAO,KAAK,KAAK,kCAAe,CAAC,OAAO,CAAC;IAC7C,CAAC;IAED,cAAc;QACV,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,KAA4B;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,MAAM,GAAiC;YACzC,cAAc,EAAE,GAAG;YACnB,QAAQ,EAAE,KAAK;YACf,QAAQ;YACR,KAAK,EAAE,kCAAe,CAAC,OAAO;SACjC,CAAC;QACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAxCY,8DAAyB;AAKxB;IADT,IAAA,yBAAa,GAAE;;;;qDAGf;oCAPQ,yBAAyB;IADrC,IAAA,sBAAU,GAAE;GACA,yBAAyB,CAwCrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-preference-provider.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.spec.d.ts","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const session_preference_provider_1 = require("./session-preference-provider");
20
+ const preference_scope_1 = require("./preference-scope");
21
+ describe('SessionPreferenceProvider', () => {
22
+ let provider;
23
+ beforeEach(() => {
24
+ provider = new session_preference_provider_1.SessionPreferenceProvider();
25
+ // PostConstruct emulation
26
+ provider.init();
27
+ });
28
+ it('claims only the Session scope', () => {
29
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Session)).to.be.true;
30
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.User)).to.be.false;
31
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Workspace)).to.be.false;
32
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Folder)).to.be.false;
33
+ (0, chai_1.expect)(provider.canHandleScope(preference_scope_1.PreferenceScope.Default)).to.be.false;
34
+ });
35
+ it('starts empty', () => {
36
+ (0, chai_1.expect)(provider.getPreferences()).to.deep.equal({});
37
+ });
38
+ it('stores set values in memory and exposes them via get/resolve', async () => {
39
+ const ok = await provider.setPreference('editor.fontSize', 18);
40
+ (0, chai_1.expect)(ok).to.be.true;
41
+ (0, chai_1.expect)(provider.get('editor.fontSize')).to.equal(18);
42
+ (0, chai_1.expect)(provider.resolve('editor.fontSize').value).to.equal(18);
43
+ (0, chai_1.expect)(provider.getPreferences()).to.deep.equal({ 'editor.fontSize': 18 });
44
+ });
45
+ it('emits a change event on set', async () => {
46
+ let received;
47
+ provider.onDidPreferencesChanged(changes => {
48
+ const key = Object.keys(changes)[0];
49
+ received = {
50
+ name: changes[key].preferenceName,
51
+ newValue: changes[key].newValue,
52
+ oldValue: changes[key].oldValue,
53
+ scope: changes[key].scope
54
+ };
55
+ });
56
+ await provider.setPreference('foo', 'bar');
57
+ (0, chai_1.expect)(received).to.deep.equal({ name: 'foo', newValue: 'bar', oldValue: undefined, scope: preference_scope_1.PreferenceScope.Session });
58
+ });
59
+ it('removes a value when set to undefined', async () => {
60
+ await provider.setPreference('foo', 'bar');
61
+ const removed = await provider.setPreference('foo', undefined);
62
+ (0, chai_1.expect)(removed).to.be.true;
63
+ (0, chai_1.expect)(provider.get('foo')).to.equal(undefined);
64
+ (0, chai_1.expect)(provider.getPreferences()).to.deep.equal({});
65
+ });
66
+ it('returns false when removing a key that was never set', async () => {
67
+ const removed = await provider.setPreference('missing', undefined);
68
+ (0, chai_1.expect)(removed).to.be.false;
69
+ });
70
+ });
71
+ //# sourceMappingURL=session-preference-provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-preference-provider.spec.js","sourceRoot":"","sources":["../../../src/common/preferences/session-preference-provider.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+BAA8B;AAC9B,+EAA0E;AAC1E,yDAAqD;AAErD,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IAEvC,IAAI,QAAmC,CAAC;IAExC,UAAU,CAAC,GAAG,EAAE;QACZ,QAAQ,GAAG,IAAI,uDAAyB,EAAE,CAAC;QAC3C,0BAA0B;QACzB,QAAwC,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,kCAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACpE,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,kCAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAClE,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACvE,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,kCAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACpE,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,CAAC,kCAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QACpB,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAA,aAAM,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACtB,IAAA,aAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QACzC,IAAI,QAAoG,CAAC;QACzG,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,QAAQ,GAAG;gBACP,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc;gBACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;gBAC/B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK;aAC5B,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,kCAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,SAAkB,CAAC,CAAC;QACxE,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3B,IAAA,aAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,IAAA,aAAM,EAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,SAAkB,CAAC,CAAC;QAC5E,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.74.0-next.0+72573426f",
3
+ "version": "1.74.0-next.15+28d45f428",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -17,8 +17,8 @@
17
17
  "@lumino/virtualdom": "^2.0.4",
18
18
  "@lumino/widgets": "2.7.5",
19
19
  "@parcel/watcher": "^2.5.6",
20
- "@theia/application-package": "1.74.0-next.0+72573426f",
21
- "@theia/request": "1.74.0-next.0+72573426f",
20
+ "@theia/application-package": "1.74.0-next.15+28d45f428",
21
+ "@theia/request": "1.74.0-next.15+28d45f428",
22
22
  "@types/body-parser": "^1.19.6",
23
23
  "@types/express": "^4.17.25",
24
24
  "@types/fs-extra": "^4.0.15",
@@ -230,5 +230,5 @@
230
230
  "nyc": {
231
231
  "extends": "../../configs/nyc.json"
232
232
  },
233
- "gitHead": "72573426f320fefc89a96ba55ce05c752d182123"
233
+ "gitHead": "28d45f4284702e106aa784d69bc3d3418243a05a"
234
234
  }
@@ -92,6 +92,34 @@ describe('keyboard layout service', function (): void {
92
92
  chai.expect(service.getKeyboardCharacter(indentLine.key!)).to.equal(')');
93
93
  });
94
94
 
95
+ it('does not let a dead key hijack a keybinding on Mac (#17677)', async () => {
96
+ // On macOS US Extended, Option+P is the "combining comma below" dead key whose display glyph
97
+ // is reported as ',' by native-keymap. Since KeyP is reported before Comma, without honoring the
98
+ // dead-key flags it would claim the ',' slot and resolve ctrlcmd+, to Cmd+Ctrl+Option+P.
99
+ const macUSExtended: NativeKeyboardLayout = {
100
+ info: { id: 'com.apple.keylayout.USExtended', lang: 'en' },
101
+ mapping: {
102
+ KeyP: {
103
+ value: 'p', valueIsDeadKey: false,
104
+ withShift: 'P', withShiftIsDeadKey: false,
105
+ withAltGr: ',', withAltGrIsDeadKey: true,
106
+ withShiftAltGr: '̦', withShiftAltGrIsDeadKey: true
107
+ },
108
+ Comma: {
109
+ value: ',', valueIsDeadKey: false,
110
+ withShift: '<', withShiftIsDeadKey: false,
111
+ withAltGr: '≤', withAltGrIsDeadKey: false,
112
+ withShiftAltGr: '¯', withShiftAltGrIsDeadKey: false
113
+ }
114
+ }
115
+ };
116
+ const service = await setup(macUSExtended, 'mac');
117
+
118
+ const openSettings = service.resolveKeyCode(KeyCode.createKeyCode('Comma+M1'));
119
+ chai.expect(openSettings.toString()).to.equal('meta+,');
120
+ chai.expect(service.getKeyboardCharacter(openSettings.key!)).to.equal(',');
121
+ });
122
+
95
123
  it('resolves correct key bindings with German Windows layout', async () => {
96
124
  const winGerman = require('../../../src/common/keyboard/layouts/de-German-pc.json');
97
125
  const service = await setup(winGerman, 'win');
@@ -15,8 +15,8 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable, inject, optional } from 'inversify';
18
- import type { IWindowsKeyMapping } from 'native-keymap';
19
- import { isWindows } from '../../common/os';
18
+ import type { ILinuxKeyMapping, IMacKeyMapping, IWindowsKeyMapping } from 'native-keymap';
19
+ import { isOSX, isWindows } from '../../common/os';
20
20
  import {
21
21
  NativeKeyboardLayout, KeyboardLayoutProvider, KeyboardLayoutChangeNotifier, KeyValidator
22
22
  } from '../../common/keyboard/keyboard-layout-provider';
@@ -159,19 +159,10 @@ export class KeyboardLayoutService {
159
159
  if (mappedKey && this.shouldIncludeKey(code)) {
160
160
  if (isWindows) {
161
161
  this.addWindowsKeyMapping(key2KeyCode, mappedKey, (keyMapping as IWindowsKeyMapping).vkey, keyMapping.value);
162
+ } else if (isOSX) {
163
+ this.addMacKeyMappings(key2KeyCode, mappedKey, keyMapping as IMacKeyMapping);
162
164
  } else {
163
- if (keyMapping.value) {
164
- this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.value, false, false);
165
- }
166
- if (keyMapping.withShift) {
167
- this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withShift, true, false);
168
- }
169
- if (keyMapping.withAltGr) {
170
- this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withAltGr, false, true);
171
- }
172
- if (keyMapping.withShiftAltGr) {
173
- this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withShiftAltGr, true, true);
174
- }
165
+ this.addKeyMappings(key2KeyCode, mappedKey, keyMapping);
175
166
  }
176
167
  }
177
168
  if (keyMapping.value) {
@@ -190,6 +181,39 @@ export class KeyboardLayoutService {
190
181
  return !code.startsWith('Numpad');
191
182
  }
192
183
 
184
+ private addKeyMappings(key2KeyCode: KeyCode[], mappedKey: Key, keyMapping: ILinuxKeyMapping): void {
185
+ if (keyMapping.value) {
186
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.value, false, false);
187
+ }
188
+ if (keyMapping.withShift) {
189
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withShift, true, false);
190
+ }
191
+ if (keyMapping.withAltGr) {
192
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withAltGr, false, true);
193
+ }
194
+ if (keyMapping.withShiftAltGr) {
195
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withShiftAltGr, true, true);
196
+ }
197
+ }
198
+
199
+ private addMacKeyMappings(key2KeyCode: KeyCode[], mappedKey: Key, keyMapping: IMacKeyMapping): void {
200
+ // Dead keys (e.g. the combining-accent layer of Option+E on macOS US) await a following keystroke to
201
+ // compose a glyph and so never produce a committed character. They must not be registered as if they
202
+ // produced their display glyph, which would otherwise collide with the real key for that glyph.
203
+ if (keyMapping.value && !keyMapping.valueIsDeadKey) {
204
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.value, false, false);
205
+ }
206
+ if (keyMapping.withShift && !keyMapping.withShiftIsDeadKey) {
207
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withShift, true, false);
208
+ }
209
+ if (keyMapping.withAltGr && !keyMapping.withAltGrIsDeadKey) {
210
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withAltGr, false, true);
211
+ }
212
+ if (keyMapping.withShiftAltGr && !keyMapping.withShiftAltGrIsDeadKey) {
213
+ this.addKeyMapping(key2KeyCode, mappedKey, keyMapping.withShiftAltGr, true, true);
214
+ }
215
+ }
216
+
193
217
  private addKeyMapping(key2KeyCode: KeyCode[], mappedKey: Key, value: string, shift: boolean, alt: boolean): void {
194
218
  const key = VALUE_TO_KEY[value];
195
219
  if (key) {
@@ -22,16 +22,24 @@ import { isObject } from '../../common/types';
22
22
  import { PreferenceSchemaServiceImpl } from '../../common/preferences/preference-schema-service';
23
23
  import { PreferenceContribution, PreferenceSchemaService } from '../../common/preferences/preference-schema';
24
24
  import { DefaultsPreferenceProvider } from '../../common/preferences/defaults-preference-provider';
25
+ import { SessionPreferenceProvider } from '../../common/preferences/session-preference-provider';
25
26
  import { PreferenceLanguageOverrideService } from '../../common/preferences/preference-language-override-service';
26
27
  import { FrontendConfigPreferenceContribution } from './frontend-config-preference-contributions';
27
28
  import { bindPreferenceConfigurations } from '../../common/preferences/preference-configurations';
28
29
 
29
30
  export function bindPreferenceSchemaProvider(bind: interfaces.Bind): void {
30
31
  bindPreferenceConfigurations(bind);
31
- bind(ValidPreferenceScopes).toConstantValue([PreferenceScope.Default, PreferenceScope.User, PreferenceScope.Workspace, PreferenceScope.Folder]);
32
+ bind(ValidPreferenceScopes).toConstantValue([
33
+ PreferenceScope.Default,
34
+ PreferenceScope.User,
35
+ PreferenceScope.Workspace,
36
+ PreferenceScope.Folder,
37
+ PreferenceScope.Session
38
+ ]);
32
39
  bind(PreferenceSchemaServiceImpl).toSelf().inSingletonScope();
33
40
  bind(PreferenceSchemaService).toService(PreferenceSchemaServiceImpl);
34
41
  bind(PreferenceProvider).to(DefaultsPreferenceProvider).inSingletonScope().whenTargetNamed(PreferenceScope.Default);
42
+ bind(PreferenceProvider).to(SessionPreferenceProvider).inSingletonScope().whenTargetNamed(PreferenceScope.Session);
35
43
  bind(PreferenceLanguageOverrideService).toSelf().inSingletonScope();
36
44
  bindRootContributionProvider(bind, PreferenceContribution);
37
45
  bind(PreferenceContribution).to(FrontendConfigPreferenceContribution).inSingletonScope();
@@ -262,6 +262,7 @@ describe('Preference Service', () => {
262
262
  globalValue,
263
263
  workspaceValue,
264
264
  workspaceFolderValue,
265
+ sessionValue: undefined,
265
266
  value,
266
267
  };
267
268
  const inspection = preferences.inspect(TAB_SIZE, DUMMY_URI);
@@ -374,6 +375,7 @@ describe('Preference Service', () => {
374
375
  globalValue: undefined,
375
376
  workspaceValue: undefined,
376
377
  workspaceFolderValue: undefined,
378
+ sessionValue: undefined,
377
379
  value: 4,
378
380
  };
379
381
  assert.deepStrictEqual(expected, preferences.inspect('editor.tabSize'));
@@ -397,6 +399,7 @@ describe('Preference Service', () => {
397
399
  globalValue: 2,
398
400
  workspaceValue: undefined,
399
401
  workspaceFolderValue: undefined,
402
+ sessionValue: undefined,
400
403
  value: 2
401
404
  };
402
405
  preferences.set('editor.tabSize', 2, PreferenceScope.User);
@@ -422,6 +425,7 @@ describe('Preference Service', () => {
422
425
  globalValue: undefined,
423
426
  workspaceValue: undefined,
424
427
  workspaceFolderValue: undefined,
428
+ sessionValue: undefined,
425
429
  value: 4
426
430
  };
427
431
  assert.deepStrictEqual(expected, preferences.inspect('editor.tabSize'));
@@ -537,4 +541,72 @@ describe('Preference Service', () => {
537
541
  });
538
542
  });
539
543
 
544
+ describe('session-scope overrides', () => {
545
+ function getSessionProvider(): PreferenceProvider {
546
+ return testContainer.getNamed<PreferenceProvider>(PreferenceProvider, PreferenceScope.Session);
547
+ }
548
+
549
+ beforeEach(() => {
550
+ prefSchema.addSchema({
551
+ scope: PreferenceScope.Folder,
552
+ properties: {
553
+ 'test.session': { type: 'number' }
554
+ }
555
+ });
556
+ });
557
+
558
+ it('takes precedence over the user scope', async () => {
559
+ getProvider(PreferenceScope.User).setPreference('test.session', 1);
560
+ await prefService.set('test.session', 99, PreferenceScope.Session);
561
+ expect(prefService.get('test.session')).equals(99);
562
+ });
563
+
564
+ it('is dropped when the same key is written to a persistent scope', async () => {
565
+ const sessionProvider = getSessionProvider();
566
+ getProvider(PreferenceScope.User).setPreference('test.session', 1);
567
+ await prefService.set('test.session', 99, PreferenceScope.Session);
568
+ expect(prefService.get('test.session')).equals(99);
569
+
570
+ // An explicit user edit must win over the session override and clear it.
571
+ await prefService.set('test.session', 2, PreferenceScope.User);
572
+ expect(sessionProvider.get('test.session')).to.equal(undefined);
573
+ expect(prefService.get('test.session')).equals(2);
574
+ });
575
+
576
+ it('is reported via inspect().sessionValue', async () => {
577
+ await prefService.set('test.session', 42, PreferenceScope.Session);
578
+ expect(prefService.inspect('test.session')?.sessionValue).equals(42);
579
+ });
580
+
581
+ it('emits a Session-scope change event when evicted by a persistent write', async () => {
582
+ // Status bar listeners rely on this: an eviction must surface as an
583
+ // onPreferenceChanged event whose `scope` is Session, otherwise the
584
+ // status bar would never clear after the override is dropped.
585
+ await prefService.set('test.session', 99, PreferenceScope.Session);
586
+
587
+ const sessionScopeEvents: PreferenceScope[] = [];
588
+ const listener = prefService.onPreferenceChanged(e => {
589
+ if (e.preferenceName === 'test.session') {
590
+ sessionScopeEvents.push(e.scope);
591
+ }
592
+ });
593
+ try {
594
+ await prefService.set('test.session', 2, PreferenceScope.User);
595
+ } finally {
596
+ listener.dispose();
597
+ }
598
+
599
+ expect(sessionScopeEvents).to.include(PreferenceScope.Session);
600
+ });
601
+
602
+ it('is left alone when writing to the Session scope itself', async () => {
603
+ const sessionProvider = getSessionProvider();
604
+ await prefService.set('test.session', 7, PreferenceScope.Session);
605
+ expect(sessionProvider.get('test.session')).to.equal(7);
606
+ // A second write to Session must not trigger eviction of itself.
607
+ await prefService.set('test.session', 8, PreferenceScope.Session);
608
+ expect(sessionProvider.get('test.session')).to.equal(8);
609
+ });
610
+ });
611
+
540
612
  });
@@ -63,7 +63,7 @@ body.theia-no-open-workspace #theia-statusBar {
63
63
  padding-inline: var(--theia-ui-padding);
64
64
  }
65
65
 
66
- #theia-statusBar .area.left .element.has-background {
66
+ #theia-statusBar .area.left .element.has-background:not(#session-preference-status) {
67
67
  margin-left: calc(-1 * var(--theia-ui-padding));
68
68
  }
69
69