@theia/core 1.75.0-next.19 → 1.75.0-next.25

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.
package/README.md CHANGED
@@ -72,7 +72,7 @@ export class SomeClass {
72
72
 
73
73
  - `@theia/core/electron-shared/...`
74
74
  - `native-keymap` (from [`native-keymap@^2.5.0`](https://www.npmjs.com/package/native-keymap))
75
- - `electron` (from [`electron@42.3.0`](https://www.npmjs.com/package/electron/v/42.3.0))
75
+ - `electron` (from [`electron@42.8.1`](https://www.npmjs.com/package/electron/v/42.8.1))
76
76
  - `electron-store` (from [`electron-store@^8.2.0`](https://www.npmjs.com/package/electron-store))
77
77
  - `@theia/core/shared/...`
78
78
  - `@lumino/algorithm` (from [`@lumino/algorithm@^2.0.5`](https://www.npmjs.com/package/@lumino/algorithm))
@@ -267,7 +267,7 @@
267
267
  "name": "ABCInventoryModuleData",
268
268
  "description": "ABCInventoryModuleData defining the structure of ABCInventoryModuleData including Principal Data, inventory, and transaction data in ABC-Plan's Inventory Management Module",
269
269
  "fileMatch": ["abc-inventory-module-data-*.json"],
270
- "url": "https://www.schemastore.org/abc-inventory-module-data-5.3.0.json",
270
+ "url": "https://www.schemastore.org/abc-inventory-module-data-5.4.0.json",
271
271
  "versions": {
272
272
  "1.0.0": "https://www.schemastore.org/abc-inventory-module-data-1.0.0.json",
273
273
  "2.0.0": "https://www.schemastore.org/abc-inventory-module-data-2.0.0.json",
@@ -275,27 +275,29 @@
275
275
  "4.0.0": "https://www.schemastore.org/abc-inventory-module-data-4.0.0.json",
276
276
  "5.1.0": "https://www.schemastore.org/abc-inventory-module-data-5.1.0.json",
277
277
  "5.2.0": "https://www.schemastore.org/abc-inventory-module-data-5.2.0.json",
278
- "5.3.0": "https://www.schemastore.org/abc-inventory-module-data-5.3.0.json"
278
+ "5.3.0": "https://www.schemastore.org/abc-inventory-module-data-5.3.0.json",
279
+ "5.4.0": "https://www.schemastore.org/abc-inventory-module-data-5.4.0.json"
279
280
  }
280
281
  },
281
282
  {
282
283
  "name": "ABCClinicalDemandForecast",
283
284
  "description": "ABCClinicalDemandForecast defining the structure of clinical trial demand forecasting data in ABC-Plan",
284
285
  "fileMatch": ["abc-clinical-demand-forecast-*.json"],
285
- "url": "https://www.schemastore.org/abc-clinical-demand-forecast-5.0.0.json",
286
+ "url": "https://www.schemastore.org/abc-clinical-demand-forecast-5.1.0.json",
286
287
  "versions": {
287
288
  "1.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-1.0.0.json",
288
289
  "2.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-2.0.0.json",
289
290
  "3.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-3.0.0.json",
290
291
  "4.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-4.0.0.json",
291
- "5.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-5.0.0.json"
292
+ "5.0.0": "https://www.schemastore.org/abc-clinical-demand-forecast-5.0.0.json",
293
+ "5.1.0": "https://www.schemastore.org/abc-clinical-demand-forecast-5.1.0.json"
292
294
  }
293
295
  },
294
296
  {
295
297
  "name": "ABCSupplyPlan",
296
298
  "description": "ABCSupplyPlan representing all the state for performing inventory optimization and expiry analysis in ABC-Plan MasterPlanner",
297
299
  "fileMatch": ["abc-supply-plan-*.json"],
298
- "url": "https://www.schemastore.org/abc-supply-plan-14.0.0.json",
300
+ "url": "https://www.schemastore.org/abc-supply-plan-14.1.0.json",
299
301
  "versions": {
300
302
  "1.0.0": "https://www.schemastore.org/abc-supply-plan-1.0.0.json",
301
303
  "2.0.0": "https://www.schemastore.org/abc-supply-plan-2.0.0.json",
@@ -315,7 +317,8 @@
315
317
  "11.4.0": "https://www.schemastore.org/abc-supply-plan-11.4.0.json",
316
318
  "12.0.0": "https://www.schemastore.org/abc-supply-plan-12.0.0.json",
317
319
  "13.0.0": "https://www.schemastore.org/abc-supply-plan-13.0.0.json",
318
- "14.0.0": "https://www.schemastore.org/abc-supply-plan-14.0.0.json"
320
+ "14.0.0": "https://www.schemastore.org/abc-supply-plan-14.0.0.json",
321
+ "14.1.0": "https://www.schemastore.org/abc-supply-plan-14.1.0.json"
319
322
  }
320
323
  },
321
324
  {
@@ -1992,6 +1995,12 @@
1992
1995
  "fileMatch": ["devbox-plugin.json"],
1993
1996
  "url": "https://raw.githubusercontent.com/jetify-com/devbox/main/.schema/devbox-plugin.schema.json"
1994
1997
  },
1998
+ {
1999
+ "name": "devconcurrent",
2000
+ "description": "Easily manage multiple, isolated development environments",
2001
+ "fileMatch": ["**/devconcurrent/config.toml"],
2002
+ "url": "https://devconcurrent.paholg.com/devconcurrent.schema.json"
2003
+ },
1995
2004
  {
1996
2005
  "name": "Drupal Breakpoints",
1997
2006
  "description": "Drupal configuration for breakpoints",
@@ -6430,12 +6439,8 @@
6430
6439
  {
6431
6440
  "name": "Rancher Fleet",
6432
6441
  "description": "Rancher Fleet fleet.yaml configuration file",
6433
- "fileMatch": ["fleet.yaml"],
6434
- "url": "https://www.schemastore.org/rancher-fleet-0.8.json",
6435
- "versions": {
6436
- "0.5": "https://www.schemastore.org/rancher-fleet-0.5.json",
6437
- "0.8": "https://www.schemastore.org/rancher-fleet-0.8.json"
6438
- }
6442
+ "fileMatch": ["**/fleet.yaml"],
6443
+ "url": "https://raw.githubusercontent.com/rancher/fleet/main/schemas/fleet.yaml.json"
6439
6444
  },
6440
6445
  {
6441
6446
  "name": "config.yaml",
@@ -11006,6 +11011,12 @@
11006
11011
  "versions": {
11007
11012
  "0.3.0": "https://ayeshlk.github.io/archsmith/schema/0.3.0/diagram-schema.json"
11008
11013
  }
11014
+ },
11015
+ {
11016
+ "name": "yaml-workflow",
11017
+ "description": "Workflow definition for the yaml-workflow engine — params, tasks, steps, imports, and flows",
11018
+ "fileMatch": ["**/*.yaml-workflow.yaml", "**/*.yaml-workflow.yml"],
11019
+ "url": "https://raw.githubusercontent.com/orieg/yaml-workflow/main/schema/workflow-schema.json"
11009
11020
  }
11010
11021
  ]
11011
11022
  }
@@ -127,6 +127,17 @@ export declare class CommandRegistry implements CommandService {
127
127
  };
128
128
  protected readonly toUnregisterCommands: Map<string, Disposable>;
129
129
  protected _recent: string[];
130
+ /**
131
+ * Unidirectional alias map from a target command id to the alias command ids registered for it.
132
+ * When the target (for instance a native Theia command) is executed, events also fire for its
133
+ * aliases (for instance the VS Code command ids).
134
+ */
135
+ protected readonly _aliases: Map<string, Set<string>>;
136
+ /**
137
+ * How often each command is currently executing, so that an alias event can be skipped while the
138
+ * alias command itself is on the stack.
139
+ */
140
+ protected readonly executionDepth: Map<string, number>;
130
141
  protected readonly onWillExecuteCommandEmitter: Emitter<WillExecuteCommandEvent>;
131
142
  readonly onWillExecuteCommand: Event<WillExecuteCommandEvent>;
132
143
  protected readonly onDidExecuteCommandEmitter: Emitter<CommandEvent>;
@@ -157,6 +168,27 @@ export declare class CommandRegistry implements CommandService {
157
168
  * @param id
158
169
  */
159
170
  unregisterCommand(id: string): void;
171
+ /**
172
+ * Register a unidirectional alias from a target command to an alias command.
173
+ * When the target command is executed, {@link onDidExecuteCommand} and {@link onWillExecuteCommand}
174
+ * fire for the alias id as well.
175
+ *
176
+ * This does not affect command handlers, enablement or visibility, only event emission. A target may
177
+ * carry several aliases.
178
+ *
179
+ * No event is fired for an alias while that alias is executing, which keeps an alias command that
180
+ * delegates to its target from reporting itself twice. The check is by command id rather than by call
181
+ * stack, so an unrelated execution of the alias that happens to overlap suppresses the event as well.
182
+ *
183
+ * @param aliasId the alias command id, for instance a VS Code command id
184
+ * @param targetId the target command id, for instance the native Theia command id
185
+ * @returns a `Disposable` that removes this alias again
186
+ */
187
+ registerAlias(aliasId: string, targetId: string): Disposable;
188
+ /**
189
+ * Returns the alias ids registered for the given command id.
190
+ */
191
+ getAliases(commandId: string): readonly string[];
160
192
  /**
161
193
  * Register the given handler for the given command identifier.
162
194
  *
@@ -186,6 +218,11 @@ export declare class CommandRegistry implements CommandService {
186
218
  */
187
219
  executeCommand<T>(commandId: string, ...args: any[]): Promise<T | undefined>;
188
220
  protected fireWillExecuteCommand(commandId: string, args?: any[]): Promise<void>;
221
+ /**
222
+ * The aliases of the given command that are not executing themselves, and for which events are
223
+ * therefore still owed.
224
+ */
225
+ protected getPendingAliases(commandId: string): readonly string[];
189
226
  /**
190
227
  * Get a visible handler for the given command or `undefined`.
191
228
  */
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,17 @@ let CommandRegistry = class CommandRegistry {
93
93
  this.toUnregisterCommands = new Map();
94
94
  // List of recently used commands.
95
95
  this._recent = [];
96
+ /**
97
+ * Unidirectional alias map from a target command id to the alias command ids registered for it.
98
+ * When the target (for instance a native Theia command) is executed, events also fire for its
99
+ * aliases (for instance the VS Code command ids).
100
+ */
101
+ this._aliases = new Map();
102
+ /**
103
+ * How often each command is currently executing, so that an alias event can be skipped while the
104
+ * alias command itself is on the stack.
105
+ */
106
+ this.executionDepth = new Map();
96
107
  this.onWillExecuteCommandEmitter = new event_1.Emitter();
97
108
  this.onWillExecuteCommand = this.onWillExecuteCommandEmitter.event;
98
109
  this.onDidExecuteCommandEmitter = new event_1.Emitter();
@@ -145,6 +156,40 @@ let CommandRegistry = class CommandRegistry {
145
156
  toUnregister.dispose();
146
157
  }
147
158
  }
159
+ /**
160
+ * Register a unidirectional alias from a target command to an alias command.
161
+ * When the target command is executed, {@link onDidExecuteCommand} and {@link onWillExecuteCommand}
162
+ * fire for the alias id as well.
163
+ *
164
+ * This does not affect command handlers, enablement or visibility, only event emission. A target may
165
+ * carry several aliases.
166
+ *
167
+ * No event is fired for an alias while that alias is executing, which keeps an alias command that
168
+ * delegates to its target from reporting itself twice. The check is by command id rather than by call
169
+ * stack, so an unrelated execution of the alias that happens to overlap suppresses the event as well.
170
+ *
171
+ * @param aliasId the alias command id, for instance a VS Code command id
172
+ * @param targetId the target command id, for instance the native Theia command id
173
+ * @returns a `Disposable` that removes this alias again
174
+ */
175
+ registerAlias(aliasId, targetId) {
176
+ const aliases = this._aliases.get(targetId) ?? new Set();
177
+ aliases.add(aliasId);
178
+ this._aliases.set(targetId, aliases);
179
+ return disposable_1.Disposable.create(() => {
180
+ const registered = this._aliases.get(targetId);
181
+ if (registered?.delete(aliasId) && registered.size === 0) {
182
+ this._aliases.delete(targetId);
183
+ }
184
+ });
185
+ }
186
+ /**
187
+ * Returns the alias ids registered for the given command id.
188
+ */
189
+ getAliases(commandId) {
190
+ const aliases = this._aliases.get(commandId);
191
+ return aliases ? Array.from(aliases) : [];
192
+ }
148
193
  /**
149
194
  * Register the given handler for the given command identifier.
150
195
  *
@@ -202,16 +247,41 @@ let CommandRegistry = class CommandRegistry {
202
247
  async executeCommand(commandId, ...args) {
203
248
  const handler = this.getActiveHandler(commandId, ...args);
204
249
  if (handler) {
205
- await this.fireWillExecuteCommand(commandId, args);
206
- const result = await handler.execute(...args);
207
- this.onDidExecuteCommandEmitter.fire({ commandId, args });
208
- return result;
250
+ this.executionDepth.set(commandId, (this.executionDepth.get(commandId) ?? 0) + 1);
251
+ try {
252
+ await this.fireWillExecuteCommand(commandId, args);
253
+ const result = await handler.execute(...args);
254
+ this.onDidExecuteCommandEmitter.fire({ commandId, args });
255
+ for (const alias of this.getPendingAliases(commandId)) {
256
+ this.onDidExecuteCommandEmitter.fire({ commandId: alias, args });
257
+ }
258
+ return result;
259
+ }
260
+ finally {
261
+ const depth = this.executionDepth.get(commandId) ?? 1;
262
+ if (depth > 1) {
263
+ this.executionDepth.set(commandId, depth - 1);
264
+ }
265
+ else {
266
+ this.executionDepth.delete(commandId);
267
+ }
268
+ }
209
269
  }
210
270
  throw Object.assign(new Error(`The command '${commandId}' cannot be executed. There are no active handlers available for the command.`), { code: 'NO_ACTIVE_HANDLER' });
211
271
  }
212
272
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
213
273
  async fireWillExecuteCommand(commandId, args = []) {
214
274
  await event_1.WaitUntilEvent.fire(this.onWillExecuteCommandEmitter, { commandId, args }, 30000);
275
+ for (const alias of this.getPendingAliases(commandId)) {
276
+ await event_1.WaitUntilEvent.fire(this.onWillExecuteCommandEmitter, { commandId: alias, args }, 30000);
277
+ }
278
+ }
279
+ /**
280
+ * The aliases of the given command that are not executing themselves, and for which events are
281
+ * therefore still owed.
282
+ */
283
+ getPendingAliases(commandId) {
284
+ return this.getAliases(commandId).filter(alias => !this.executionDepth.has(alias));
215
285
  }
216
286
  /**
217
287
  * Get a visible handler for the given command or `undefined`.
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/common/command.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,115 @@ describe('Commands', () => {
116
116
  commandRegistry.registerHandler('id', new NeverActiveStubCommandHandler());
117
117
  expect(commandRegistry.getAllHandlers('id').length).to.be.equal(2);
118
118
  });
119
+ describe('registerAlias', () => {
120
+ it('onDidExecuteCommand fires for alias when target is executed', async () => {
121
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
122
+ commandRegistry.registerAlias('alias', 'target');
123
+ const events = [];
124
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
125
+ await commandRegistry.executeCommand('target');
126
+ expect(events).to.deep.equal(['target', 'alias']);
127
+ });
128
+ it('onDidExecuteCommand fires only for alias when alias is executed (no reverse)', async () => {
129
+ commandRegistry.registerCommand({ id: 'alias' }, new StubCommandHandler());
130
+ commandRegistry.registerAlias('alias', 'target');
131
+ const events = [];
132
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
133
+ await commandRegistry.executeCommand('alias');
134
+ // Unidirectional: an alias fires for its target, but not the other way round
135
+ expect(events).to.deep.equal(['alias']);
136
+ });
137
+ it('onWillExecuteCommand fires for alias when target is executed', async () => {
138
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
139
+ commandRegistry.registerAlias('alias', 'target');
140
+ const events = [];
141
+ commandRegistry.onWillExecuteCommand(e => events.push(e.commandId));
142
+ await commandRegistry.executeCommand('target');
143
+ expect(events).to.deep.equal(['target', 'alias']);
144
+ });
145
+ it('disposing the alias removes the event link', async () => {
146
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
147
+ const disposable = commandRegistry.registerAlias('alias', 'target');
148
+ disposable.dispose();
149
+ const events = [];
150
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
151
+ await commandRegistry.executeCommand('target');
152
+ expect(events).to.deep.equal(['target']);
153
+ });
154
+ it('getAliases returns the aliases registered for a target', () => {
155
+ commandRegistry.registerAlias('a', 'b');
156
+ expect(commandRegistry.getAliases('b')).to.deep.equal(['a']);
157
+ });
158
+ it('getAliases returns nothing for the alias direction (unidirectional)', () => {
159
+ commandRegistry.registerAlias('a', 'b');
160
+ expect(commandRegistry.getAliases('a')).to.be.empty;
161
+ });
162
+ it('getAliases returns nothing for unaliased commands', () => {
163
+ expect(commandRegistry.getAliases('nonexistent')).to.be.empty;
164
+ });
165
+ it('a target can carry several aliases', async () => {
166
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
167
+ commandRegistry.registerAlias('alias1', 'target');
168
+ commandRegistry.registerAlias('alias2', 'target');
169
+ const events = [];
170
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
171
+ await commandRegistry.executeCommand('target');
172
+ expect(events).to.deep.equal(['target', 'alias1', 'alias2']);
173
+ });
174
+ it('disposing one alias keeps the others', async () => {
175
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
176
+ const first = commandRegistry.registerAlias('alias1', 'target');
177
+ commandRegistry.registerAlias('alias2', 'target');
178
+ first.dispose();
179
+ expect(commandRegistry.getAliases('target')).to.deep.equal(['alias2']);
180
+ });
181
+ it('alias events include correct args', async () => {
182
+ commandRegistry.registerCommand({ id: 'target' }, new ConcatCommandHandler());
183
+ commandRegistry.registerAlias('alias', 'target');
184
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
185
+ const capturedArgs = [];
186
+ commandRegistry.onDidExecuteCommand(e => capturedArgs.push(e.args));
187
+ await commandRegistry.executeCommand('target', 'x', 'y');
188
+ expect(capturedArgs.length).to.equal(2);
189
+ expect(capturedArgs[0]).to.deep.equal(['x', 'y']);
190
+ expect(capturedArgs[1]).to.deep.equal(['x', 'y']);
191
+ });
192
+ it('nested execution: alias handler delegating to target fires target and alias events', async () => {
193
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
194
+ commandRegistry.registerCommand({ id: 'alias' }, {
195
+ execute: () => commandRegistry.executeCommand('target')
196
+ });
197
+ commandRegistry.registerAlias('alias', 'target');
198
+ const events = [];
199
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
200
+ await commandRegistry.executeCommand('alias');
201
+ // The alias is on the stack while the target runs, so its event is only reported once.
202
+ expect(events).to.deep.equal(['target', 'alias']);
203
+ });
204
+ it('reports the alias once for the will execute event as well', async () => {
205
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
206
+ commandRegistry.registerCommand({ id: 'alias' }, {
207
+ execute: () => commandRegistry.executeCommand('target')
208
+ });
209
+ commandRegistry.registerAlias('alias', 'target');
210
+ const events = [];
211
+ commandRegistry.onWillExecuteCommand(e => events.push(e.commandId));
212
+ await commandRegistry.executeCommand('alias');
213
+ expect(events).to.deep.equal(['alias', 'target']);
214
+ });
215
+ it('reports the alias again once the delegating execution finished', async () => {
216
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
217
+ commandRegistry.registerCommand({ id: 'alias' }, {
218
+ execute: () => commandRegistry.executeCommand('target')
219
+ });
220
+ commandRegistry.registerAlias('alias', 'target');
221
+ await commandRegistry.executeCommand('alias');
222
+ const events = [];
223
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
224
+ await commandRegistry.executeCommand('target');
225
+ expect(events).to.deep.equal(['target', 'alias']);
226
+ });
227
+ });
119
228
  describe('compareCommands', () => {
120
229
  it('should sort command \'a\' before command \'b\' with categories', () => {
121
230
  const a = { id: 'a', category: 'a', label: 'a' };
@@ -1 +1 @@
1
- {"version":3,"file":"command.spec.js","sourceRoot":"","sources":["../../src/common/command.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.spec.js","sourceRoot":"","sources":["../../src/common/command.spec.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.75.0-next.19+713634fd5",
3
+ "version": "1.75.0-next.25+6226ed5b7",
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.75.0-next.19+713634fd5",
21
- "@theia/request": "1.75.0-next.19+713634fd5",
20
+ "@theia/application-package": "1.75.0-next.25+6226ed5b7",
21
+ "@theia/request": "1.75.0-next.25+6226ed5b7",
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": "713634fd5885ff8abde8cfd50bc3493d535772a5"
233
+ "gitHead": "6226ed5b7443f45eddf4a95aac59a586070c682b"
234
234
  }
@@ -139,6 +139,131 @@ describe('Commands', () => {
139
139
  expect(commandRegistry.getAllHandlers('id').length).to.be.equal(2);
140
140
  });
141
141
 
142
+ describe('registerAlias', () => {
143
+
144
+ it('onDidExecuteCommand fires for alias when target is executed', async () => {
145
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
146
+ commandRegistry.registerAlias('alias', 'target');
147
+ const events: string[] = [];
148
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
149
+ await commandRegistry.executeCommand('target');
150
+ expect(events).to.deep.equal(['target', 'alias']);
151
+ });
152
+
153
+ it('onDidExecuteCommand fires only for alias when alias is executed (no reverse)', async () => {
154
+ commandRegistry.registerCommand({ id: 'alias' }, new StubCommandHandler());
155
+ commandRegistry.registerAlias('alias', 'target');
156
+ const events: string[] = [];
157
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
158
+ await commandRegistry.executeCommand('alias');
159
+ // Unidirectional: an alias fires for its target, but not the other way round
160
+ expect(events).to.deep.equal(['alias']);
161
+ });
162
+
163
+ it('onWillExecuteCommand fires for alias when target is executed', async () => {
164
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
165
+ commandRegistry.registerAlias('alias', 'target');
166
+ const events: string[] = [];
167
+ commandRegistry.onWillExecuteCommand(e => events.push(e.commandId));
168
+ await commandRegistry.executeCommand('target');
169
+ expect(events).to.deep.equal(['target', 'alias']);
170
+ });
171
+
172
+ it('disposing the alias removes the event link', async () => {
173
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
174
+ const disposable = commandRegistry.registerAlias('alias', 'target');
175
+ disposable.dispose();
176
+ const events: string[] = [];
177
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
178
+ await commandRegistry.executeCommand('target');
179
+ expect(events).to.deep.equal(['target']);
180
+ });
181
+
182
+ it('getAliases returns the aliases registered for a target', () => {
183
+ commandRegistry.registerAlias('a', 'b');
184
+ expect(commandRegistry.getAliases('b')).to.deep.equal(['a']);
185
+ });
186
+
187
+ it('getAliases returns nothing for the alias direction (unidirectional)', () => {
188
+ commandRegistry.registerAlias('a', 'b');
189
+ expect(commandRegistry.getAliases('a')).to.be.empty;
190
+ });
191
+
192
+ it('getAliases returns nothing for unaliased commands', () => {
193
+ expect(commandRegistry.getAliases('nonexistent')).to.be.empty;
194
+ });
195
+
196
+ it('a target can carry several aliases', async () => {
197
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
198
+ commandRegistry.registerAlias('alias1', 'target');
199
+ commandRegistry.registerAlias('alias2', 'target');
200
+ const events: string[] = [];
201
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
202
+ await commandRegistry.executeCommand('target');
203
+ expect(events).to.deep.equal(['target', 'alias1', 'alias2']);
204
+ });
205
+
206
+ it('disposing one alias keeps the others', async () => {
207
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
208
+ const first = commandRegistry.registerAlias('alias1', 'target');
209
+ commandRegistry.registerAlias('alias2', 'target');
210
+ first.dispose();
211
+ expect(commandRegistry.getAliases('target')).to.deep.equal(['alias2']);
212
+ });
213
+
214
+ it('alias events include correct args', async () => {
215
+ commandRegistry.registerCommand({ id: 'target' }, new ConcatCommandHandler());
216
+ commandRegistry.registerAlias('alias', 'target');
217
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
218
+ const capturedArgs: any[][] = [];
219
+ commandRegistry.onDidExecuteCommand(e => capturedArgs.push(e.args));
220
+ await commandRegistry.executeCommand('target', 'x', 'y');
221
+ expect(capturedArgs.length).to.equal(2);
222
+ expect(capturedArgs[0]).to.deep.equal(['x', 'y']);
223
+ expect(capturedArgs[1]).to.deep.equal(['x', 'y']);
224
+ });
225
+
226
+ it('nested execution: alias handler delegating to target fires target and alias events', async () => {
227
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
228
+ commandRegistry.registerCommand({ id: 'alias' }, {
229
+ execute: () => commandRegistry.executeCommand('target')
230
+ });
231
+ commandRegistry.registerAlias('alias', 'target');
232
+ const events: string[] = [];
233
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
234
+ await commandRegistry.executeCommand('alias');
235
+ // The alias is on the stack while the target runs, so its event is only reported once.
236
+ expect(events).to.deep.equal(['target', 'alias']);
237
+ });
238
+
239
+ it('reports the alias once for the will execute event as well', async () => {
240
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
241
+ commandRegistry.registerCommand({ id: 'alias' }, {
242
+ execute: () => commandRegistry.executeCommand('target')
243
+ });
244
+ commandRegistry.registerAlias('alias', 'target');
245
+ const events: string[] = [];
246
+ commandRegistry.onWillExecuteCommand(e => events.push(e.commandId));
247
+ await commandRegistry.executeCommand('alias');
248
+ expect(events).to.deep.equal(['alias', 'target']);
249
+ });
250
+
251
+ it('reports the alias again once the delegating execution finished', async () => {
252
+ commandRegistry.registerCommand({ id: 'target' }, new StubCommandHandler());
253
+ commandRegistry.registerCommand({ id: 'alias' }, {
254
+ execute: () => commandRegistry.executeCommand('target')
255
+ });
256
+ commandRegistry.registerAlias('alias', 'target');
257
+ await commandRegistry.executeCommand('alias');
258
+
259
+ const events: string[] = [];
260
+ commandRegistry.onDidExecuteCommand(e => events.push(e.commandId));
261
+ await commandRegistry.executeCommand('target');
262
+ expect(events).to.deep.equal(['target', 'alias']);
263
+ });
264
+
265
+ });
266
+
142
267
  describe('compareCommands', () => {
143
268
 
144
269
  it('should sort command \'a\' before command \'b\' with categories', () => {
@@ -202,6 +202,19 @@ export class CommandRegistry implements CommandService {
202
202
  // List of recently used commands.
203
203
  protected _recent: string[] = [];
204
204
 
205
+ /**
206
+ * Unidirectional alias map from a target command id to the alias command ids registered for it.
207
+ * When the target (for instance a native Theia command) is executed, events also fire for its
208
+ * aliases (for instance the VS Code command ids).
209
+ */
210
+ protected readonly _aliases = new Map<string, Set<string>>();
211
+
212
+ /**
213
+ * How often each command is currently executing, so that an alias event can be skipped while the
214
+ * alias command itself is on the stack.
215
+ */
216
+ protected readonly executionDepth = new Map<string, number>();
217
+
205
218
  protected readonly onWillExecuteCommandEmitter = new Emitter<WillExecuteCommandEvent>();
206
219
  readonly onWillExecuteCommand = this.onWillExecuteCommandEmitter.event;
207
220
 
@@ -277,6 +290,42 @@ export class CommandRegistry implements CommandService {
277
290
  }
278
291
  }
279
292
 
293
+ /**
294
+ * Register a unidirectional alias from a target command to an alias command.
295
+ * When the target command is executed, {@link onDidExecuteCommand} and {@link onWillExecuteCommand}
296
+ * fire for the alias id as well.
297
+ *
298
+ * This does not affect command handlers, enablement or visibility, only event emission. A target may
299
+ * carry several aliases.
300
+ *
301
+ * No event is fired for an alias while that alias is executing, which keeps an alias command that
302
+ * delegates to its target from reporting itself twice. The check is by command id rather than by call
303
+ * stack, so an unrelated execution of the alias that happens to overlap suppresses the event as well.
304
+ *
305
+ * @param aliasId the alias command id, for instance a VS Code command id
306
+ * @param targetId the target command id, for instance the native Theia command id
307
+ * @returns a `Disposable` that removes this alias again
308
+ */
309
+ registerAlias(aliasId: string, targetId: string): Disposable {
310
+ const aliases = this._aliases.get(targetId) ?? new Set<string>();
311
+ aliases.add(aliasId);
312
+ this._aliases.set(targetId, aliases);
313
+ return Disposable.create(() => {
314
+ const registered = this._aliases.get(targetId);
315
+ if (registered?.delete(aliasId) && registered.size === 0) {
316
+ this._aliases.delete(targetId);
317
+ }
318
+ });
319
+ }
320
+
321
+ /**
322
+ * Returns the alias ids registered for the given command id.
323
+ */
324
+ getAliases(commandId: string): readonly string[] {
325
+ const aliases = this._aliases.get(commandId);
326
+ return aliases ? Array.from(aliases) : [];
327
+ }
328
+
280
329
  /**
281
330
  * Register the given handler for the given command identifier.
282
331
  *
@@ -341,10 +390,23 @@ export class CommandRegistry implements CommandService {
341
390
  async executeCommand<T>(commandId: string, ...args: any[]): Promise<T | undefined> {
342
391
  const handler = this.getActiveHandler(commandId, ...args);
343
392
  if (handler) {
344
- await this.fireWillExecuteCommand(commandId, args);
345
- const result = await handler.execute(...args);
346
- this.onDidExecuteCommandEmitter.fire({ commandId, args });
347
- return result;
393
+ this.executionDepth.set(commandId, (this.executionDepth.get(commandId) ?? 0) + 1);
394
+ try {
395
+ await this.fireWillExecuteCommand(commandId, args);
396
+ const result = await handler.execute(...args);
397
+ this.onDidExecuteCommandEmitter.fire({ commandId, args });
398
+ for (const alias of this.getPendingAliases(commandId)) {
399
+ this.onDidExecuteCommandEmitter.fire({ commandId: alias, args });
400
+ }
401
+ return result;
402
+ } finally {
403
+ const depth = this.executionDepth.get(commandId) ?? 1;
404
+ if (depth > 1) {
405
+ this.executionDepth.set(commandId, depth - 1);
406
+ } else {
407
+ this.executionDepth.delete(commandId);
408
+ }
409
+ }
348
410
  }
349
411
  throw Object.assign(new Error(`The command '${commandId}' cannot be executed. There are no active handlers available for the command.`), { code: 'NO_ACTIVE_HANDLER' });
350
412
  }
@@ -352,6 +414,17 @@ export class CommandRegistry implements CommandService {
352
414
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
353
415
  protected async fireWillExecuteCommand(commandId: string, args: any[] = []): Promise<void> {
354
416
  await WaitUntilEvent.fire(this.onWillExecuteCommandEmitter, { commandId, args }, 30000);
417
+ for (const alias of this.getPendingAliases(commandId)) {
418
+ await WaitUntilEvent.fire(this.onWillExecuteCommandEmitter, { commandId: alias, args }, 30000);
419
+ }
420
+ }
421
+
422
+ /**
423
+ * The aliases of the given command that are not executing themselves, and for which events are
424
+ * therefore still owed.
425
+ */
426
+ protected getPendingAliases(commandId: string): readonly string[] {
427
+ return this.getAliases(commandId).filter(alias => !this.executionDepth.has(alias));
355
428
  }
356
429
 
357
430
  /**