@theia/core 1.77.0-next.25 → 1.77.0-next.29

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.
@@ -1220,6 +1220,12 @@
1220
1220
  "fileMatch": ["fly.toml"],
1221
1221
  "url": "https://www.schemastore.org/fly.json"
1222
1222
  },
1223
+ {
1224
+ "name": "Format config",
1225
+ "description": "Configuration file for Format, for making PDFs with web technologies. Documentation: https://format.dev/docs/studio/configuration",
1226
+ "fileMatch": ["format.config.json", "format.config.*.json"],
1227
+ "url": "https://format.dev/schema/format-config.json"
1228
+ },
1223
1229
  {
1224
1230
  "name": "Freifunk.de Community API",
1225
1231
  "description": "Freifunk.de Community API. Documentation: https://github.com/freifunk/directory.api.freifunk.net",
@@ -19,6 +19,12 @@ export declare class ColorApplicationContribution implements FrontendApplication
19
19
  protected readonly secondaryWindowHandler: SecondaryWindowHandler;
20
20
  onStart(): void;
21
21
  registerWindow(win: Window): void;
22
+ /**
23
+ * The CSS variables currently applied to the document element of a window. Used to only remove
24
+ * those that the current theme does not provide anymore, instead of removing and re-applying all
25
+ * of them on every update.
26
+ */
27
+ protected readonly appliedCssVariables: WeakMap<Window, ReadonlySet<string>>;
22
28
  protected readonly toUpdate: DisposableCollection;
23
29
  protected update(): void;
24
30
  protected updateWindow(win: Window): void;
@@ -1 +1 @@
1
- {"version":3,"file":"color-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/color-application-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAc,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAC7D,MAAM,WAAW,iBAAiB;IAC9B,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC/C;AAED,qBACa,4BAA6B,YAAW,+BAA+B;IAEhF,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,wCAAiC;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAGlD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAGzC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAElE,OAAO,IAAI,IAAI;IAoBf,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMjC,SAAS,CAAC,QAAQ,CAAC,QAAQ,uBAA8B;IACzD,SAAS,CAAC,MAAM,IAAI,IAAI;IAMxB,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAmBzC,SAAS,CAAC,qBAAqB,IAAI,IAAI;CAQ1C"}
1
+ {"version":3,"file":"color-application-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/color-application-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAc,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAC7D,MAAM,WAAW,iBAAiB;IAC9B,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC/C;AAED,qBACa,4BAA6B,YAAW,+BAA+B;IAEhF,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,wCAAiC;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAGlD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAGzC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAElE,OAAO,IAAI,IAAI;IAoBf,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMjC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,mBAAmB,uCAA8C;IAEpF,SAAS,CAAC,QAAQ,CAAC,QAAQ,uBAA8B;IACzD,SAAS,CAAC,MAAM,IAAI,IAAI;IAMxB,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAwBzC,SAAS,CAAC,qBAAqB,IAAI,IAAI;CAQ1C"}
@@ -31,6 +31,12 @@ let ColorApplicationContribution = class ColorApplicationContribution {
31
31
  this.onDidChangeEmitter = new event_1.Emitter();
32
32
  this.onDidChange = this.onDidChangeEmitter.event;
33
33
  this.windows = new Set();
34
+ /**
35
+ * The CSS variables currently applied to the document element of a window. Used to only remove
36
+ * those that the current theme does not provide anymore, instead of removing and re-applying all
37
+ * of them on every update.
38
+ */
39
+ this.appliedCssVariables = new WeakMap();
34
40
  this.toUpdate = new disposable_1.DisposableCollection();
35
41
  }
36
42
  onStart() {
@@ -67,14 +73,19 @@ let ColorApplicationContribution = class ColorApplicationContribution {
67
73
  this.toUpdate.push(disposable_1.Disposable.create(() => win.document.body.classList.remove(theme)));
68
74
  const documentElement = win.document.documentElement;
69
75
  if (documentElement) {
76
+ const applied = new Set();
70
77
  for (const id of this.colors.getColors()) {
71
- const variable = this.colors.getCurrentCssVariable(id);
72
- if (variable) {
73
- const { name, value } = variable;
78
+ for (const { name, value } of this.colors.getCurrentCssVariables(id)) {
74
79
  documentElement.style.setProperty(name, value);
75
- this.toUpdate.push(disposable_1.Disposable.create(() => documentElement.style.removeProperty(name)));
80
+ applied.add(name);
76
81
  }
77
82
  }
83
+ for (const name of this.appliedCssVariables.get(win) ?? []) {
84
+ if (!applied.has(name)) {
85
+ documentElement.style.removeProperty(name);
86
+ }
87
+ }
88
+ this.appliedCssVariables.set(win, applied);
78
89
  }
79
90
  }
80
91
  updateThemeBackground() {
@@ -1 +1 @@
1
- {"version":3,"file":"color-application-contribution.js","sourceRoot":"","sources":["../../src/browser/color-application-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color-application-contribution.js","sourceRoot":"","sources":["../../src/browser/color-application-contribution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import './shell/application-shell';
2
+ //# sourceMappingURL=color-application-contribution.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-application-contribution.spec.d.ts","sourceRoot":"","sources":["../../src/browser/color-application-contribution.spec.ts"],"names":[],"mappings":"AAoBA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
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 jsdom_1 = require("./test/jsdom");
19
+ let disableJSDOM = (0, jsdom_1.enableJSDOM)();
20
+ const chai_1 = require("chai");
21
+ require("./shell/application-shell"); // load first to avoid a circular import failure via `SecondaryWindowHandler`
22
+ const color_application_contribution_1 = require("./color-application-contribution");
23
+ const color_registry_1 = require("./color-registry");
24
+ disableJSDOM();
25
+ class TestColorRegistry extends color_registry_1.ColorRegistry {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.values = new Map();
29
+ }
30
+ *getColors() {
31
+ yield* this.values.keys();
32
+ }
33
+ getCurrentColor(id) {
34
+ return this.values.get(id);
35
+ }
36
+ }
37
+ class TestColorApplicationContribution extends color_application_contribution_1.ColorApplicationContribution {
38
+ constructor(colors) {
39
+ super();
40
+ this.colors = colors;
41
+ this.themeService = { getCurrentTheme: () => ({ type: 'dark' }) };
42
+ }
43
+ updateWindowForTest(win) {
44
+ this.updateWindow(win);
45
+ }
46
+ }
47
+ describe('ColorApplicationContribution', () => {
48
+ let colors;
49
+ let contribution;
50
+ beforeEach(() => {
51
+ disableJSDOM = (0, jsdom_1.enableJSDOM)();
52
+ colors = new TestColorRegistry();
53
+ colors.values.set('editor.background', '#1e1e1e');
54
+ colors.values.set('scmGraph.historyItemHoverAdditionsForeground', '#487e02');
55
+ colors.values.set('unresolved.color', '');
56
+ contribution = new TestColorApplicationContribution(colors);
57
+ });
58
+ afterEach(() => {
59
+ disableJSDOM();
60
+ });
61
+ it('sets a --theia- and a --vscode- prefixed variable for every resolved color', () => {
62
+ contribution.updateWindowForTest(window);
63
+ const style = document.documentElement.style;
64
+ (0, chai_1.expect)(style.getPropertyValue('--theia-editor-background')).to.equal('#1e1e1e');
65
+ (0, chai_1.expect)(style.getPropertyValue('--vscode-editor-background')).to.equal('#1e1e1e');
66
+ (0, chai_1.expect)(style.getPropertyValue('--theia-scmGraph-historyItemHoverAdditionsForeground')).to.equal('#487e02');
67
+ (0, chai_1.expect)(style.getPropertyValue('--vscode-scmGraph-historyItemHoverAdditionsForeground')).to.equal('#487e02');
68
+ (0, chai_1.expect)(style.length).to.equal(4);
69
+ });
70
+ it('does not set variables for colors without a value', () => {
71
+ contribution.updateWindowForTest(window);
72
+ const style = document.documentElement.style;
73
+ (0, chai_1.expect)(style.getPropertyValue('--theia-unresolved-color')).to.equal('');
74
+ (0, chai_1.expect)(style.getPropertyValue('--vscode-unresolved-color')).to.equal('');
75
+ });
76
+ it('overwrites the variables in place on a subsequent update', () => {
77
+ contribution.updateWindowForTest(window);
78
+ colors.values.set('editor.background', '#ffffff');
79
+ contribution.updateWindowForTest(window);
80
+ const style = document.documentElement.style;
81
+ (0, chai_1.expect)(style.getPropertyValue('--theia-editor-background')).to.equal('#ffffff');
82
+ (0, chai_1.expect)(style.getPropertyValue('--vscode-editor-background')).to.equal('#ffffff');
83
+ (0, chai_1.expect)(style.length).to.equal(4);
84
+ });
85
+ it('removes both variables of a color that the current theme does not provide anymore', () => {
86
+ contribution.updateWindowForTest(window);
87
+ colors.values.delete('scmGraph.historyItemHoverAdditionsForeground');
88
+ contribution.updateWindowForTest(window);
89
+ const style = document.documentElement.style;
90
+ (0, chai_1.expect)(style.getPropertyValue('--theia-scmGraph-historyItemHoverAdditionsForeground')).to.equal('');
91
+ (0, chai_1.expect)(style.getPropertyValue('--vscode-scmGraph-historyItemHoverAdditionsForeground')).to.equal('');
92
+ (0, chai_1.expect)(style.getPropertyValue('--theia-editor-background')).to.equal('#1e1e1e');
93
+ (0, chai_1.expect)(style.length).to.equal(2);
94
+ });
95
+ });
96
+ //# sourceMappingURL=color-application-contribution.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-application-contribution.spec.js","sourceRoot":"","sources":["../../src/browser/color-application-contribution.spec.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@ export declare class ColorRegistry {
7
7
  protected fireDidChange(): void;
8
8
  getColors(): IterableIterator<string>;
9
9
  getCurrentCssVariable(id: string): ColorCssVariable | undefined;
10
+ /**
11
+ * All CSS variables to set for the given color: the primary one from {@link getCurrentCssVariable} and the
12
+ * `--vscode-` prefixed alias. VS Code extensions reference colors with the `--vscode-` prefix, e.g. in the
13
+ * inline styles of the HTML they render, and Monaco only defines those variables within its own containers.
14
+ */
15
+ getCurrentCssVariables(id: string): ColorCssVariable[];
10
16
  toCssVariableName(id: string, prefix?: string): string;
11
17
  getCurrentColor(id: string): string | undefined;
12
18
  register(...definitions: ColorDefinition[]): Disposable;
@@ -1 +1 @@
1
- {"version":3,"file":"color-registry.d.ts","sourceRoot":"","sources":["../../src/browser/color-registry.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,qBACa,aAAa;IAEtB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,wCAAiC;IACrD,SAAS,CAAC,aAAa,IAAI,IAAI;IAI9B,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAEtC,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAS/D,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,SAAU,GAAG,MAAM;IAIvD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C,QAAQ,CAAC,GAAG,WAAW,EAAE,eAAe,EAAE,GAAG,UAAU;IAMvD,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,UAAU;CAIhE"}
1
+ {"version":3,"file":"color-registry.d.ts","sourceRoot":"","sources":["../../src/browser/color-registry.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,qBACa,aAAa;IAEtB,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,wCAAiC;IACrD,SAAS,CAAC,aAAa,IAAI,IAAI;IAI9B,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAEtC,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAS/D;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAQtD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,SAAU,GAAG,MAAM;IAIvD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C,QAAQ,CAAC,GAAG,WAAW,EAAE,eAAe,EAAE,GAAG,UAAU;IAMvD,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,UAAU;CAIhE"}
@@ -37,6 +37,18 @@ let ColorRegistry = class ColorRegistry {
37
37
  const name = this.toCssVariableName(id);
38
38
  return { name, value };
39
39
  }
40
+ /**
41
+ * All CSS variables to set for the given color: the primary one from {@link getCurrentCssVariable} and the
42
+ * `--vscode-` prefixed alias. VS Code extensions reference colors with the `--vscode-` prefix, e.g. in the
43
+ * inline styles of the HTML they render, and Monaco only defines those variables within its own containers.
44
+ */
45
+ getCurrentCssVariables(id) {
46
+ const variable = this.getCurrentCssVariable(id);
47
+ if (!variable) {
48
+ return [];
49
+ }
50
+ return [variable, { name: this.toCssVariableName(id, 'vscode'), value: variable.value }];
51
+ }
40
52
  toCssVariableName(id, prefix = 'theia') {
41
53
  return `--${prefix}-${id.replace(/\./g, '-')}`;
42
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"color-registry.js","sourceRoot":"","sources":["../../src/browser/color-registry.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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,yCAAuC;AACvC,qDAAwE;AACxE,2CAA0C;AAInC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAAnB;QAEgB,uBAAkB,GAAG,IAAI,eAAO,EAAQ,CAAC;QACnD,gBAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAkCzD,CAAC;IAjCa,aAAa;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,CAAC,SAAS,KAA+B,CAAC;IAE1C,qBAAqB,CAAC,EAAU;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB,CAAC,EAAU,EAAE,MAAM,GAAG,OAAO;QAC1C,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,GAAG,WAA8B;QACtC,MAAM,MAAM,GAAG,IAAI,iCAAoB,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,UAAU,CAAC,UAA2B;QAC5C,OAAO,uBAAU,CAAC,IAAI,CAAC;IAC3B,CAAC;CAEJ,CAAA;AArCY,sCAAa;wBAAb,aAAa;IADzB,IAAA,sBAAU,GAAE;GACA,aAAa,CAqCzB"}
1
+ {"version":3,"file":"color-registry.js","sourceRoot":"","sources":["../../src/browser/color-registry.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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,yCAAuC;AACvC,qDAAwE;AACxE,2CAA0C;AAInC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAAnB;QAEgB,uBAAkB,GAAG,IAAI,eAAO,EAAQ,CAAC;QACnD,gBAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IA+CzD,CAAC;IA9Ca,aAAa;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,CAAC,SAAS,KAA+B,CAAC;IAE1C,qBAAqB,CAAC,EAAU;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,EAAU;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,iBAAiB,CAAC,EAAU,EAAE,MAAM,GAAG,OAAO;QAC1C,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,GAAG,WAA8B;QACtC,MAAM,MAAM,GAAG,IAAI,iCAAoB,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,UAAU,CAAC,UAA2B;QAC5C,OAAO,uBAAU,CAAC,IAAI,CAAC;IAC3B,CAAC;CAEJ,CAAA;AAlDY,sCAAa;wBAAb,aAAa;IADzB,IAAA,sBAAU,GAAE;GACA,aAAa,CAkDzB"}
@@ -26,8 +26,30 @@ export declare namespace FocusableTreeSelection {
26
26
  */
27
27
  export declare class TreeSelectionState {
28
28
  protected readonly tree: Tree;
29
- readonly selectionStack: ReadonlyArray<FocusableTreeSelection>;
29
+ /**
30
+ * The stack of selections, by the id of the nodes they refer to.
31
+ *
32
+ * Everything this state does with a selection resolves the node through the tree anyway, so keeping the nodes
33
+ * themselves would only pin a subtree that a refresh has since replaced, along with whatever its elements refer
34
+ * to. Keeping the ids also lets a selection outlive its nodes briefly leaving the tree, as happens when a tree
35
+ * updates itself by clearing its contents before filling them in again.
36
+ */
37
+ protected readonly ids: ReadonlyArray<{
38
+ readonly node: string;
39
+ readonly focus?: string;
40
+ readonly type?: TreeSelection.SelectionType;
41
+ }>;
30
42
  constructor(tree: Tree, selectionStack?: ReadonlyArray<FocusableTreeSelection>);
43
+ /**
44
+ * The selections of this state that refer to a node the tree currently has. Selections of nodes that are not in
45
+ * the tree are left out, but are kept by this state, so that they apply again if their nodes come back.
46
+ */
47
+ get selectionStack(): ReadonlyArray<FocusableTreeSelection>;
48
+ /**
49
+ * Resolves a node id against the tree. Unlike {@link toSelectableTreeNode} this does not report an id that does
50
+ * not resolve, because the stack is expected to outlive the nodes it refers to.
51
+ */
52
+ protected findSelectableTreeNode(id: string | undefined): SelectableTreeNode | undefined;
31
53
  nextState(selection: FocusableTreeSelection): TreeSelectionState;
32
54
  selection(): ReadonlyArray<SelectableTreeNode>;
33
55
  get focus(): SelectableTreeNode | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"tree-selection-state.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/tree-selection-state.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAEzD;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAEvC;AAED,yBAAiB,sBAAsB,CAAC;IAEpC;;OAEG;IACH,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,sBAAsB,CAE9D;IAED;;;OAGG;IACH,SAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAEpF;CACJ;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAGvB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI;IAC7B,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,sBAAsB,CAAC;gBAD3C,IAAI,EAAE,IAAI,EACpB,cAAc,GAAE,aAAa,CAAC,sBAAsB,CAAM;IAGvE,SAAS,CAAC,SAAS,EAAE,sBAAsB,GAAG,kBAAkB;IAahE,SAAS,IAAI,aAAa,CAAC,kBAAkB,CAAC;IAqB9C,IAAI,KAAK,IAAI,kBAAkB,GAAG,SAAS,CAI1C;IAED,IAAI,IAAI,IAAI,kBAAkB,GAAG,SAAS,CAGzC;IAED,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAS1G,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IA0BzG,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAyBxG;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,sBAAsB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,EAAE;IAgD3F,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAgB1F;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAO7G"}
1
+ {"version":3,"file":"tree-selection-state.d.ts","sourceRoot":"","sources":["../../../src/browser/tree/tree-selection-state.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAEzD;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAEvC;AAED,yBAAiB,sBAAsB,CAAC;IAEpC;;OAEG;IACH,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,sBAAsB,CAE9D;IAED;;;OAGG;IACH,SAAgB,KAAK,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAEpF;CACJ;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAiBvB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI;IAfjC;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;QAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,aAAa,CAAA;KAC9C,CAAC,CAAC;gBAGoB,IAAI,EAAE,IAAI,EAC7B,cAAc,GAAE,aAAa,CAAC,sBAAsB,CAAM;IAI9D;;;OAGG;IACH,IAAI,cAAc,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAS1D;IAED;;;OAGG;IACH,SAAS,CAAC,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAKxF,SAAS,CAAC,SAAS,EAAE,sBAAsB,GAAG,kBAAkB;IAahE,SAAS,IAAI,aAAa,CAAC,kBAAkB,CAAC;IAqB9C,IAAI,KAAK,IAAI,kBAAkB,GAAG,SAAS,CAI1C;IAED,IAAI,IAAI,IAAI,kBAAkB,GAAG,SAAS,CAGzC;IAED,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAS1G,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IA0BzG,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB;IAyBxG;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,sBAAsB,GAAG,QAAQ,CAAC,kBAAkB,CAAC,EAAE;IAgD3F,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS;IAgB1F;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAO7G"}
@@ -42,7 +42,29 @@ var FocusableTreeSelection;
42
42
  class TreeSelectionState {
43
43
  constructor(tree, selectionStack = []) {
44
44
  this.tree = tree;
45
- this.selectionStack = selectionStack;
45
+ this.ids = selectionStack.map(({ node, focus, type }) => ({ node: node.id, focus: focus?.id, type }));
46
+ }
47
+ /**
48
+ * The selections of this state that refer to a node the tree currently has. Selections of nodes that are not in
49
+ * the tree are left out, but are kept by this state, so that they apply again if their nodes come back.
50
+ */
51
+ get selectionStack() {
52
+ const stack = [];
53
+ for (const { node, focus, type } of this.ids) {
54
+ const selected = this.findSelectableTreeNode(node);
55
+ if (selected) {
56
+ stack.push({ node: selected, focus: this.findSelectableTreeNode(focus), type });
57
+ }
58
+ }
59
+ return stack;
60
+ }
61
+ /**
62
+ * Resolves a node id against the tree. Unlike {@link toSelectableTreeNode} this does not report an id that does
63
+ * not resolve, because the stack is expected to outlive the nodes it refers to.
64
+ */
65
+ findSelectableTreeNode(id) {
66
+ const candidate = id === undefined ? undefined : this.tree.getNode(id);
67
+ return tree_selection_1.SelectableTreeNode.is(candidate) ? candidate : undefined;
46
68
  }
47
69
  nextState(selection) {
48
70
  const { node, type } = {
@@ -1 +1 @@
1
- {"version":3,"file":"tree-selection-state.js","sourceRoot":"","sources":["../../../src/browser/tree/tree-selection-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-selection-state.js","sourceRoot":"","sources":["../../../src/browser/tree/tree-selection-state.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.77.0-next.25+73f0462af51",
3
+ "version": "1.77.0-next.29+b5e3a3281",
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.5",
18
18
  "@lumino/widgets": "2.7.5",
19
19
  "@parcel/watcher": "^2.6.0",
20
- "@theia/application-package": "1.77.0-next.25+73f0462af51",
21
- "@theia/request": "1.77.0-next.25+73f0462af51",
20
+ "@theia/application-package": "1.77.0-next.29+b5e3a3281",
21
+ "@theia/request": "1.77.0-next.29+b5e3a3281",
22
22
  "@types/body-parser": "^1.19.6",
23
23
  "@types/express": "^4.17.25",
24
24
  "@types/fs-extra": "^4.0.15",
@@ -233,5 +233,5 @@
233
233
  "nyc": {
234
234
  "extends": "../../configs/nyc.json"
235
235
  },
236
- "gitHead": "73f0462af513c55e6120fe0d759ff777160fafb2"
236
+ "gitHead": "b5e3a3281ee084a2b7aa65c146caa7313e58d719"
237
237
  }
@@ -0,0 +1,108 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { enableJSDOM } from './test/jsdom';
18
+ let disableJSDOM = enableJSDOM();
19
+
20
+ import { expect } from 'chai';
21
+ import './shell/application-shell'; // load first to avoid a circular import failure via `SecondaryWindowHandler`
22
+ import { ColorApplicationContribution } from './color-application-contribution';
23
+ import { ColorRegistry } from './color-registry';
24
+ import { ThemeService } from './theming';
25
+ disableJSDOM();
26
+
27
+ class TestColorRegistry extends ColorRegistry {
28
+
29
+ readonly values = new Map<string, string>();
30
+
31
+ override *getColors(): IterableIterator<string> {
32
+ yield* this.values.keys();
33
+ }
34
+
35
+ override getCurrentColor(id: string): string | undefined {
36
+ return this.values.get(id);
37
+ }
38
+ }
39
+
40
+ class TestColorApplicationContribution extends ColorApplicationContribution {
41
+
42
+ protected override readonly themeService = { getCurrentTheme: () => ({ type: 'dark' }) } as unknown as ThemeService;
43
+
44
+ constructor(protected override readonly colors: ColorRegistry) {
45
+ super();
46
+ }
47
+
48
+ updateWindowForTest(win: Window): void {
49
+ this.updateWindow(win);
50
+ }
51
+ }
52
+
53
+ describe('ColorApplicationContribution', () => {
54
+
55
+ let colors: TestColorRegistry;
56
+ let contribution: TestColorApplicationContribution;
57
+
58
+ beforeEach(() => {
59
+ disableJSDOM = enableJSDOM();
60
+ colors = new TestColorRegistry();
61
+ colors.values.set('editor.background', '#1e1e1e');
62
+ colors.values.set('scmGraph.historyItemHoverAdditionsForeground', '#487e02');
63
+ colors.values.set('unresolved.color', '');
64
+ contribution = new TestColorApplicationContribution(colors);
65
+ });
66
+
67
+ afterEach(() => {
68
+ disableJSDOM();
69
+ });
70
+
71
+ it('sets a --theia- and a --vscode- prefixed variable for every resolved color', () => {
72
+ contribution.updateWindowForTest(window);
73
+ const style = document.documentElement.style;
74
+ expect(style.getPropertyValue('--theia-editor-background')).to.equal('#1e1e1e');
75
+ expect(style.getPropertyValue('--vscode-editor-background')).to.equal('#1e1e1e');
76
+ expect(style.getPropertyValue('--theia-scmGraph-historyItemHoverAdditionsForeground')).to.equal('#487e02');
77
+ expect(style.getPropertyValue('--vscode-scmGraph-historyItemHoverAdditionsForeground')).to.equal('#487e02');
78
+ expect(style.length).to.equal(4);
79
+ });
80
+
81
+ it('does not set variables for colors without a value', () => {
82
+ contribution.updateWindowForTest(window);
83
+ const style = document.documentElement.style;
84
+ expect(style.getPropertyValue('--theia-unresolved-color')).to.equal('');
85
+ expect(style.getPropertyValue('--vscode-unresolved-color')).to.equal('');
86
+ });
87
+
88
+ it('overwrites the variables in place on a subsequent update', () => {
89
+ contribution.updateWindowForTest(window);
90
+ colors.values.set('editor.background', '#ffffff');
91
+ contribution.updateWindowForTest(window);
92
+ const style = document.documentElement.style;
93
+ expect(style.getPropertyValue('--theia-editor-background')).to.equal('#ffffff');
94
+ expect(style.getPropertyValue('--vscode-editor-background')).to.equal('#ffffff');
95
+ expect(style.length).to.equal(4);
96
+ });
97
+
98
+ it('removes both variables of a color that the current theme does not provide anymore', () => {
99
+ contribution.updateWindowForTest(window);
100
+ colors.values.delete('scmGraph.historyItemHoverAdditionsForeground');
101
+ contribution.updateWindowForTest(window);
102
+ const style = document.documentElement.style;
103
+ expect(style.getPropertyValue('--theia-scmGraph-historyItemHoverAdditionsForeground')).to.equal('');
104
+ expect(style.getPropertyValue('--vscode-scmGraph-historyItemHoverAdditionsForeground')).to.equal('');
105
+ expect(style.getPropertyValue('--theia-editor-background')).to.equal('#1e1e1e');
106
+ expect(style.length).to.equal(2);
107
+ });
108
+ });
@@ -73,6 +73,13 @@ export class ColorApplicationContribution implements FrontendApplicationContribu
73
73
  this.onDidChangeEmitter.fire();
74
74
  }
75
75
 
76
+ /**
77
+ * The CSS variables currently applied to the document element of a window. Used to only remove
78
+ * those that the current theme does not provide anymore, instead of removing and re-applying all
79
+ * of them on every update.
80
+ */
81
+ protected readonly appliedCssVariables = new WeakMap<Window, ReadonlySet<string>>();
82
+
76
83
  protected readonly toUpdate = new DisposableCollection();
77
84
  protected update(): void {
78
85
  this.toUpdate.dispose();
@@ -88,14 +95,19 @@ export class ColorApplicationContribution implements FrontendApplicationContribu
88
95
 
89
96
  const documentElement = win.document.documentElement;
90
97
  if (documentElement) {
98
+ const applied = new Set<string>();
91
99
  for (const id of this.colors.getColors()) {
92
- const variable = this.colors.getCurrentCssVariable(id);
93
- if (variable) {
94
- const { name, value } = variable;
100
+ for (const { name, value } of this.colors.getCurrentCssVariables(id)) {
95
101
  documentElement.style.setProperty(name, value);
96
- this.toUpdate.push(Disposable.create(() => documentElement.style.removeProperty(name)));
102
+ applied.add(name);
103
+ }
104
+ }
105
+ for (const name of this.appliedCssVariables.get(win) ?? []) {
106
+ if (!applied.has(name)) {
107
+ documentElement.style.removeProperty(name);
97
108
  }
98
109
  }
110
+ this.appliedCssVariables.set(win, applied);
99
111
  }
100
112
  }
101
113
 
@@ -39,6 +39,19 @@ export class ColorRegistry {
39
39
  return { name, value };
40
40
  }
41
41
 
42
+ /**
43
+ * All CSS variables to set for the given color: the primary one from {@link getCurrentCssVariable} and the
44
+ * `--vscode-` prefixed alias. VS Code extensions reference colors with the `--vscode-` prefix, e.g. in the
45
+ * inline styles of the HTML they render, and Monaco only defines those variables within its own containers.
46
+ */
47
+ getCurrentCssVariables(id: string): ColorCssVariable[] {
48
+ const variable = this.getCurrentCssVariable(id);
49
+ if (!variable) {
50
+ return [];
51
+ }
52
+ return [variable, { name: this.toCssVariableName(id, 'vscode'), value: variable.value }];
53
+ }
54
+
42
55
  toCssVariableName(id: string, prefix = 'theia'): string {
43
56
  return `--${prefix}-${id.replace(/\./g, '-')}`;
44
57
  }
@@ -31,8 +31,6 @@
31
31
  max-width: var(--theia-hover-max-width);
32
32
  overflow-wrap: break-word;
33
33
  user-select: text;
34
- --vscode-scmGraph-historyItemHoverAdditionsForeground: var(--theia-scmGraph-historyItemHoverAdditionsForeground);
35
- --vscode-scmGraph-historyItemHoverDeletionsForeground: var(--theia-scmGraph-historyItemHoverDeletionsForeground);
36
34
  }
37
35
 
38
36
  /* overwrite potentially different default user agent styles */
@@ -54,9 +54,48 @@ export namespace FocusableTreeSelection {
54
54
  */
55
55
  export class TreeSelectionState {
56
56
 
57
+ /**
58
+ * The stack of selections, by the id of the nodes they refer to.
59
+ *
60
+ * Everything this state does with a selection resolves the node through the tree anyway, so keeping the nodes
61
+ * themselves would only pin a subtree that a refresh has since replaced, along with whatever its elements refer
62
+ * to. Keeping the ids also lets a selection outlive its nodes briefly leaving the tree, as happens when a tree
63
+ * updates itself by clearing its contents before filling them in again.
64
+ */
65
+ protected readonly ids: ReadonlyArray<{
66
+ readonly node: string,
67
+ readonly focus?: string,
68
+ readonly type?: TreeSelection.SelectionType
69
+ }>;
70
+
57
71
  constructor(
58
72
  protected readonly tree: Tree,
59
- readonly selectionStack: ReadonlyArray<FocusableTreeSelection> = []) {
73
+ selectionStack: ReadonlyArray<FocusableTreeSelection> = []) {
74
+ this.ids = selectionStack.map(({ node, focus, type }) => ({ node: node.id, focus: focus?.id, type }));
75
+ }
76
+
77
+ /**
78
+ * The selections of this state that refer to a node the tree currently has. Selections of nodes that are not in
79
+ * the tree are left out, but are kept by this state, so that they apply again if their nodes come back.
80
+ */
81
+ get selectionStack(): ReadonlyArray<FocusableTreeSelection> {
82
+ const stack: FocusableTreeSelection[] = [];
83
+ for (const { node, focus, type } of this.ids) {
84
+ const selected = this.findSelectableTreeNode(node);
85
+ if (selected) {
86
+ stack.push({ node: selected, focus: this.findSelectableTreeNode(focus), type });
87
+ }
88
+ }
89
+ return stack;
90
+ }
91
+
92
+ /**
93
+ * Resolves a node id against the tree. Unlike {@link toSelectableTreeNode} this does not report an id that does
94
+ * not resolve, because the stack is expected to outlive the nodes it refers to.
95
+ */
96
+ protected findSelectableTreeNode(id: string | undefined): SelectableTreeNode | undefined {
97
+ const candidate = id === undefined ? undefined : this.tree.getNode(id);
98
+ return SelectableTreeNode.is(candidate) ? candidate : undefined;
60
99
  }
61
100
 
62
101
  nextState(selection: FocusableTreeSelection): TreeSelectionState {