@theia/terminal-manager 1.73.0-next.51 → 1.73.0-next.60

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 (41) hide show
  1. package/lib/browser/terminal-manager-creation-handler.d.ts +25 -0
  2. package/lib/browser/terminal-manager-creation-handler.d.ts.map +1 -0
  3. package/lib/browser/terminal-manager-creation-handler.js +77 -0
  4. package/lib/browser/terminal-manager-creation-handler.js.map +1 -0
  5. package/lib/browser/terminal-manager-frontend-contribution.d.ts +0 -20
  6. package/lib/browser/terminal-manager-frontend-contribution.d.ts.map +1 -1
  7. package/lib/browser/terminal-manager-frontend-contribution.js +2 -57
  8. package/lib/browser/terminal-manager-frontend-contribution.js.map +1 -1
  9. package/lib/browser/terminal-manager-frontend-module.d.ts.map +1 -1
  10. package/lib/browser/terminal-manager-frontend-module.js +4 -0
  11. package/lib/browser/terminal-manager-frontend-module.js.map +1 -1
  12. package/lib/browser/terminal-manager-tree-model.d.ts +21 -4
  13. package/lib/browser/terminal-manager-tree-model.d.ts.map +1 -1
  14. package/lib/browser/terminal-manager-tree-model.js +65 -46
  15. package/lib/browser/terminal-manager-tree-model.js.map +1 -1
  16. package/lib/browser/terminal-manager-tree-model.spec.js +111 -18
  17. package/lib/browser/terminal-manager-tree-model.spec.js.map +1 -1
  18. package/lib/browser/terminal-manager-tree-widget.d.ts +1 -0
  19. package/lib/browser/terminal-manager-tree-widget.d.ts.map +1 -1
  20. package/lib/browser/terminal-manager-tree-widget.js +19 -2
  21. package/lib/browser/terminal-manager-tree-widget.js.map +1 -1
  22. package/lib/browser/terminal-manager-types.d.ts +7 -6
  23. package/lib/browser/terminal-manager-types.d.ts.map +1 -1
  24. package/lib/browser/terminal-manager-types.js +1 -10
  25. package/lib/browser/terminal-manager-types.js.map +1 -1
  26. package/lib/browser/terminal-manager-types.spec.js +20 -33
  27. package/lib/browser/terminal-manager-types.spec.js.map +1 -1
  28. package/lib/browser/terminal-manager-widget.d.ts +6 -10
  29. package/lib/browser/terminal-manager-widget.d.ts.map +1 -1
  30. package/lib/browser/terminal-manager-widget.js +30 -46
  31. package/lib/browser/terminal-manager-widget.js.map +1 -1
  32. package/package.json +5 -5
  33. package/src/browser/terminal-manager-creation-handler.ts +76 -0
  34. package/src/browser/terminal-manager-frontend-contribution.ts +2 -60
  35. package/src/browser/terminal-manager-frontend-module.ts +5 -1
  36. package/src/browser/terminal-manager-tree-model.spec.ts +131 -19
  37. package/src/browser/terminal-manager-tree-model.ts +72 -51
  38. package/src/browser/terminal-manager-tree-widget.tsx +24 -4
  39. package/src/browser/terminal-manager-types.spec.ts +21 -35
  40. package/src/browser/terminal-manager-types.ts +7 -8
  41. package/src/browser/terminal-manager-widget.ts +32 -50
@@ -0,0 +1,25 @@
1
+ import { WidgetManager, WidgetOpenerOptions } from '@theia/core/lib/browser';
2
+ import { TerminalWidget } from '@theia/terminal/lib/browser/base/terminal-widget';
3
+ import { TerminalCreationHandler } from '@theia/terminal/lib/browser/terminal-creation-handler';
4
+ import { TerminalManagerFrontendViewContribution } from './terminal-manager-frontend-view-contribution';
5
+ import { TerminalManagerPreferences } from './terminal-manager-preferences';
6
+ /**
7
+ * A {@link TerminalCreationHandler} that routes terminals into the terminal
8
+ * manager widget when tree grouping mode is active.
9
+ *
10
+ * This hooks into {@link TerminalFrontendContribution.open} so that terminals
11
+ * created by any caller (plugins, tasks, debug, etc.) are routed into
12
+ * the manager at the point of placement, rather than being intercepted
13
+ * after the fact via `onDidCreateTerminal` events.
14
+ *
15
+ * Task and debug terminals are routed to dedicated pages in the tree;
16
+ * regular user terminals get their own numbered pages.
17
+ */
18
+ export declare class TerminalManagerCreationHandler implements TerminalCreationHandler {
19
+ get priority(): number;
20
+ protected readonly terminalManagerViewContribution: TerminalManagerFrontendViewContribution;
21
+ protected readonly widgetManager: WidgetManager;
22
+ protected readonly preferences: TerminalManagerPreferences;
23
+ onWillOpenTerminal(terminal: TerminalWidget, _options?: WidgetOpenerOptions): Promise<boolean | undefined>;
24
+ }
25
+ //# sourceMappingURL=terminal-manager-creation-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-manager-creation-handler.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-creation-handler.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAEhG,OAAO,EAAE,uCAAuC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E;;;;;;;;;;;GAWG;AACH,qBACa,8BAA+B,YAAW,uBAAuB;IAE1E,IAAI,QAAQ,IAAI,MAAM,CAErB;IAGD,SAAS,CAAC,QAAQ,CAAC,+BAA+B,EAAE,uCAAuC,CAAC;IAG5F,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IAErD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;CAuBnH"}
@@ -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.TerminalManagerCreationHandler = void 0;
19
+ const tslib_1 = require("tslib");
20
+ const inversify_1 = require("@theia/core/shared/inversify");
21
+ const browser_1 = require("@theia/core/lib/browser");
22
+ const terminal_manager_widget_1 = require("./terminal-manager-widget");
23
+ const terminal_manager_frontend_view_contribution_1 = require("./terminal-manager-frontend-view-contribution");
24
+ const terminal_manager_preferences_1 = require("./terminal-manager-preferences");
25
+ /**
26
+ * A {@link TerminalCreationHandler} that routes terminals into the terminal
27
+ * manager widget when tree grouping mode is active.
28
+ *
29
+ * This hooks into {@link TerminalFrontendContribution.open} so that terminals
30
+ * created by any caller (plugins, tasks, debug, etc.) are routed into
31
+ * the manager at the point of placement, rather than being intercepted
32
+ * after the fact via `onDidCreateTerminal` events.
33
+ *
34
+ * Task and debug terminals are routed to dedicated pages in the tree;
35
+ * regular user terminals get their own numbered pages.
36
+ */
37
+ let TerminalManagerCreationHandler = class TerminalManagerCreationHandler {
38
+ get priority() {
39
+ return this.preferences.get('terminal.grouping.mode') === 'tree' ? 100 : -200;
40
+ }
41
+ async onWillOpenTerminal(terminal, _options) {
42
+ if (this.preferences.get('terminal.grouping.mode') !== 'tree') {
43
+ return false;
44
+ }
45
+ if (terminal.hiddenFromUser) {
46
+ return false;
47
+ }
48
+ const resolvedWidget = this.terminalManagerViewContribution.tryGetWidget()
49
+ ?? await this.widgetManager.getOrCreateWidget(terminal_manager_widget_1.TerminalManagerWidget.ID);
50
+ if (!(resolvedWidget instanceof terminal_manager_widget_1.TerminalManagerWidget)) {
51
+ return false;
52
+ }
53
+ if (!resolvedWidget.terminalWidgetIdsToNodeIds.has(terminal.id)) {
54
+ const specialConfig = resolvedWidget.treeWidget.model.getSpecialPageConfig(terminal.kind);
55
+ resolvedWidget.addTerminalPage(terminal, specialConfig?.pageId);
56
+ await this.terminalManagerViewContribution.openView({ reveal: true });
57
+ }
58
+ return true;
59
+ }
60
+ };
61
+ exports.TerminalManagerCreationHandler = TerminalManagerCreationHandler;
62
+ tslib_1.__decorate([
63
+ (0, inversify_1.inject)(terminal_manager_frontend_view_contribution_1.TerminalManagerFrontendViewContribution),
64
+ tslib_1.__metadata("design:type", terminal_manager_frontend_view_contribution_1.TerminalManagerFrontendViewContribution)
65
+ ], TerminalManagerCreationHandler.prototype, "terminalManagerViewContribution", void 0);
66
+ tslib_1.__decorate([
67
+ (0, inversify_1.inject)(browser_1.WidgetManager),
68
+ tslib_1.__metadata("design:type", browser_1.WidgetManager)
69
+ ], TerminalManagerCreationHandler.prototype, "widgetManager", void 0);
70
+ tslib_1.__decorate([
71
+ (0, inversify_1.inject)(terminal_manager_preferences_1.TerminalManagerPreferences),
72
+ tslib_1.__metadata("design:type", Object)
73
+ ], TerminalManagerCreationHandler.prototype, "preferences", void 0);
74
+ exports.TerminalManagerCreationHandler = TerminalManagerCreationHandler = tslib_1.__decorate([
75
+ (0, inversify_1.injectable)()
76
+ ], TerminalManagerCreationHandler);
77
+ //# sourceMappingURL=terminal-manager-creation-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-manager-creation-handler.js","sourceRoot":"","sources":["../../src/browser/terminal-manager-creation-handler.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,4DAAkE;AAClE,qDAA6E;AAG7E,uEAAkE;AAClE,+GAAwG;AACxG,iFAA4E;AAE5E;;;;;;;;;;;GAWG;AAEI,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAEvC,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAClF,CAAC;IAWD,KAAK,CAAC,kBAAkB,CAAC,QAAwB,EAAE,QAA8B;QAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,MAAM,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,+BAA+B,CAAC,YAAY,EAAE;eACnE,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAwB,+CAAqB,CAAC,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,CAAC,cAAc,YAAY,+CAAqB,CAAC,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1F,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAtCY,wEAA8B;AAOpB;IADlB,IAAA,kBAAM,EAAC,qFAAuC,CAAC;sCACI,qFAAuC;uFAAC;AAGzE;IADlB,IAAA,kBAAM,EAAC,uBAAa,CAAC;sCACY,uBAAa;qEAAC;AAG7B;IADlB,IAAA,kBAAM,EAAC,yDAA0B,CAAC;;mEACwB;yCAblD,8BAA8B;IAD1C,IAAA,sBAAU,GAAE;GACA,8BAA8B,CAsC1C"}
@@ -1,8 +1,6 @@
1
1
  import { CommandRegistry, PreferenceService, DisposableCollection } from '@theia/core/lib/common';
2
- import { TerminalWidget } from '@theia/terminal/lib/browser/base/terminal-widget';
3
2
  import { TerminalFrontendContribution } from '@theia/terminal/lib/browser/terminal-frontend-contribution';
4
3
  import { ApplicationShell, WidgetManager, FrontendApplicationContribution, FrontendApplication } from '@theia/core/lib/browser';
5
- import { FrontendApplicationStateService } from '@theia/core/lib/browser/frontend-application-state';
6
4
  import { TerminalManagerFrontendViewContribution } from './terminal-manager-frontend-view-contribution';
7
5
  import { TerminalManagerPreferences } from './terminal-manager-preferences';
8
6
  import { ILogger } from '@theia/core';
@@ -19,20 +17,7 @@ export declare class TerminalManagerFrontendContribution implements FrontendAppl
19
17
  protected readonly preferences: TerminalManagerPreferences;
20
18
  protected readonly commandRegistry: CommandRegistry;
21
19
  protected readonly logger: ILogger;
22
- protected readonly stateService: FrontendApplicationStateService;
23
20
  protected commandHandlerDisposables: DisposableCollection;
24
- /**
25
- * Check if a terminal is a task terminal.
26
- * Task terminals have a 'kind' property set to 'task'.
27
- */
28
- protected isTaskTerminal(terminal: TerminalWidget): boolean;
29
- /**
30
- * Register a listener to route externally created terminals (e.g. from plugins)
31
- * into the terminal manager when tree mode is active.
32
- * Terminals created internally via {@link TerminalManagerWidget.createTerminalWidget}
33
- * are skipped because the command handlers handle their placement.
34
- */
35
- protected registerTerminalListener(): void;
36
21
  onStart(app: FrontendApplication): void;
37
22
  initializeLayout(): Promise<void>;
38
23
  protected handleTabsDisplayChange(newValue: string): Promise<void>;
@@ -46,11 +31,6 @@ export declare class TerminalManagerFrontendContribution implements FrontendAppl
46
31
  protected migrateTerminalsToTabs(): Promise<void>;
47
32
  protected unregisterHandlers(): void;
48
33
  protected registerHandlers(): void;
49
- /**
50
- * Defers the terminal creation listener until layout restoration is complete,
51
- * preventing restored terminals from being mistaken for externally created ones.
52
- */
53
- protected deferTerminalListenerUntilLayoutReady(): void;
54
34
  protected registerCommands(): void;
55
35
  }
56
36
  //# sourceMappingURL=terminal-manager-frontend-contribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-manager-frontend-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-contribution.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAoB,MAAM,4DAA4D,CAAC;AAC5H,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAChI,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAErG,OAAO,EAAE,uCAAuC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC;;;GAGG;AACH,qBACa,mCAAoC,YAAW,+BAA+B;IAEvF,SAAS,CAAC,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B,CAAC;IAG9E,SAAS,CAAC,QAAQ,CAAC,+BAA+B,EAAE,uCAAuC,CAAC;IAG5F,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAGnC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC;IAEjE,SAAS,CAAC,yBAAyB,uBAA8B;IAEjE;;;OAGG;IACH,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;IAI3D;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAwB1C,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAgBjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cAQvB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxE;;OAEG;cACa,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B1D;;OAEG;cACa,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBvD,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAKpC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAMlC;;;OAGG;IACH,SAAS,CAAC,qCAAqC,IAAI,IAAI;IAQvD,SAAS,CAAC,gBAAgB,IAAI,IAAI;CAkFrC"}
1
+ {"version":3,"file":"terminal-manager-frontend-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-contribution.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAElG,OAAO,EAAE,4BAA4B,EAAoB,MAAM,4DAA4D,CAAC;AAC5H,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEhI,OAAO,EAAE,uCAAuC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC;;;GAGG;AACH,qBACa,mCAAoC,YAAW,+BAA+B;IAEvF,SAAS,CAAC,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B,CAAC;IAG9E,SAAS,CAAC,QAAQ,CAAC,+BAA+B,EAAE,uCAAuC,CAAC;IAG5F,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAG3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAGpD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnC,SAAS,CAAC,yBAAyB,uBAA8B;IAEjE,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAgBjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cAQvB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxE;;OAEG;cACa,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB1D;;OAEG;cACa,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBvD,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAKpC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAKlC,SAAS,CAAC,gBAAgB,IAAI,IAAI;CAkFrC"}
@@ -16,7 +16,6 @@ const common_1 = require("@theia/core/lib/common");
16
16
  const terminal_widget_1 = require("@theia/terminal/lib/browser/base/terminal-widget");
17
17
  const terminal_frontend_contribution_1 = require("@theia/terminal/lib/browser/terminal-frontend-contribution");
18
18
  const browser_1 = require("@theia/core/lib/browser");
19
- const frontend_application_state_1 = require("@theia/core/lib/browser/frontend-application-state");
20
19
  const terminal_manager_widget_1 = require("./terminal-manager-widget");
21
20
  const terminal_manager_frontend_view_contribution_1 = require("./terminal-manager-frontend-view-contribution");
22
21
  const terminal_manager_preferences_1 = require("./terminal-manager-preferences");
@@ -29,40 +28,6 @@ let TerminalManagerFrontendContribution = class TerminalManagerFrontendContribut
29
28
  constructor() {
30
29
  this.commandHandlerDisposables = new common_1.DisposableCollection();
31
30
  }
32
- /**
33
- * Check if a terminal is a task terminal.
34
- * Task terminals have a 'kind' property set to 'task'.
35
- */
36
- isTaskTerminal(terminal) {
37
- return terminal.kind === 'task';
38
- }
39
- /**
40
- * Register a listener to route externally created terminals (e.g. from plugins)
41
- * into the terminal manager when tree mode is active.
42
- * Terminals created internally via {@link TerminalManagerWidget.createTerminalWidget}
43
- * are skipped because the command handlers handle their placement.
44
- */
45
- registerTerminalListener() {
46
- this.commandHandlerDisposables.push(this.terminalFrontendContribution.onDidCreateTerminal(async (terminal) => {
47
- if (this.isTaskTerminal(terminal) || terminal.hiddenFromUser) {
48
- return;
49
- }
50
- // Check the flag synchronously (before any await) to correctly
51
- // identify terminals created by the manager's command handlers.
52
- const managerWidget = this.terminalManagerViewContribution.tryGetWidget();
53
- if (managerWidget instanceof terminal_manager_widget_1.TerminalManagerWidget && managerWidget.creatingTerminalInternally) {
54
- return;
55
- }
56
- const resolvedWidget = managerWidget ?? await this.widgetManager.getOrCreateWidget(terminal_manager_widget_1.TerminalManagerWidget.ID);
57
- if (!(resolvedWidget instanceof terminal_manager_widget_1.TerminalManagerWidget)) {
58
- return;
59
- }
60
- if (!resolvedWidget.terminalWidgetIdsToNodeIds.has(terminal.id)) {
61
- resolvedWidget.addTerminalPage(terminal);
62
- await this.terminalManagerViewContribution.openView({ reveal: true });
63
- }
64
- }));
65
- }
66
31
  onStart(app) {
67
32
  this.preferenceService.ready.then(() => {
68
33
  this.preferenceService.onPreferenceChanged(change => {
@@ -110,12 +75,8 @@ let TerminalManagerFrontendContribution = class TerminalManagerFrontendContribut
110
75
  }
111
76
  // Before terminal manager attachment to precede creation of default widget.
112
77
  for (const terminal of bottomTerminals) {
113
- if (this.isTaskTerminal(terminal)) {
114
- managerWidget.addTerminalToTasksPage(terminal);
115
- }
116
- else {
117
- managerWidget.addTerminalPage(terminal);
118
- }
78
+ const specialConfig = managerWidget.treeWidget.model.getSpecialPageConfig(terminal.kind);
79
+ managerWidget.addTerminalPage(terminal, specialConfig?.pageId);
119
80
  terminal.show(); // Clear hidden flag that may have been set by dock panel on removal.
120
81
  }
121
82
  await this.terminalManagerViewContribution.openView({ reveal: true });
@@ -146,18 +107,6 @@ let TerminalManagerFrontendContribution = class TerminalManagerFrontendContribut
146
107
  registerHandlers() {
147
108
  this.unregisterHandlers();
148
109
  this.registerCommands();
149
- this.deferTerminalListenerUntilLayoutReady();
150
- }
151
- /**
152
- * Defers the terminal creation listener until layout restoration is complete,
153
- * preventing restored terminals from being mistaken for externally created ones.
154
- */
155
- deferTerminalListenerUntilLayoutReady() {
156
- this.stateService.reachedState('initialized_layout').then(() => {
157
- if (!this.commandHandlerDisposables.disposed) {
158
- this.registerTerminalListener();
159
- }
160
- });
161
110
  }
162
111
  registerCommands() {
163
112
  this.commandHandlerDisposables.push(this.commandRegistry.registerHandler(terminal_frontend_contribution_1.TerminalCommands.NEW.id, {
@@ -272,10 +221,6 @@ tslib_1.__decorate([
272
221
  (0, inversify_1.named)('terminal-manager:TerminalManagerFrontendContribution'),
273
222
  tslib_1.__metadata("design:type", Object)
274
223
  ], TerminalManagerFrontendContribution.prototype, "logger", void 0);
275
- tslib_1.__decorate([
276
- (0, inversify_1.inject)(frontend_application_state_1.FrontendApplicationStateService),
277
- tslib_1.__metadata("design:type", frontend_application_state_1.FrontendApplicationStateService)
278
- ], TerminalManagerFrontendContribution.prototype, "stateService", void 0);
279
224
  exports.TerminalManagerFrontendContribution = TerminalManagerFrontendContribution = tslib_1.__decorate([
280
225
  (0, inversify_1.injectable)()
281
226
  ], TerminalManagerFrontendContribution);
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-manager-frontend-contribution.js","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-manager-frontend-contribution.js","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-contribution.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-manager-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;AAa3E,OAAO,wCAAwC,CAAC;;AAGhD,wBA8BG"}
1
+ {"version":3,"file":"terminal-manager-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;AAe3E,OAAO,wCAAwC,CAAC;;AAGhD,wBAiCG"}
@@ -23,6 +23,8 @@ const terminal_manager_frontend_view_contribution_1 = require("./terminal-manage
23
23
  const terminal_manager_frontend_contribution_1 = require("./terminal-manager-frontend-contribution");
24
24
  const terminal_manager_preferences_1 = require("./terminal-manager-preferences");
25
25
  const terminal_manager_tree_widget_1 = require("./terminal-manager-tree-widget");
26
+ const terminal_manager_creation_handler_1 = require("./terminal-manager-creation-handler");
27
+ const terminal_creation_handler_1 = require("@theia/terminal/lib/browser/terminal-creation-handler");
26
28
  require("../../src/browser/terminal-manager.css");
27
29
  const core_1 = require("@theia/core");
28
30
  exports.default = new inversify_1.ContainerModule((bind) => {
@@ -31,6 +33,8 @@ exports.default = new inversify_1.ContainerModule((bind) => {
31
33
  // Bind the contribution for overridden terminal commands
32
34
  bind(terminal_manager_frontend_contribution_1.TerminalManagerFrontendContribution).toSelf().inSingletonScope();
33
35
  bind(browser_1.FrontendApplicationContribution).toService(terminal_manager_frontend_contribution_1.TerminalManagerFrontendContribution);
36
+ bind(terminal_manager_creation_handler_1.TerminalManagerCreationHandler).toSelf().inSingletonScope();
37
+ bind(terminal_creation_handler_1.TerminalCreationHandler).toService(terminal_manager_creation_handler_1.TerminalManagerCreationHandler);
34
38
  bind(browser_1.WidgetFactory).toDynamicValue(({ container }) => ({
35
39
  id: terminal_manager_tree_widget_1.TerminalManagerTreeWidget.ID,
36
40
  createWidget: () => terminal_manager_tree_widget_1.TerminalManagerTreeWidget.createWidget(container),
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-manager-frontend-module.js","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,4DAA2E;AAC3E,qDAKiC;AACjC,mFAA0F;AAC1F,uEAAkE;AAClE,+GAAwG;AACxG,qGAA+F;AAC/F,iFAAoJ;AACpJ,iFAA2E;AAC3E,kDAAgD;AAChD,sCAA6E;AAE7E,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAqB,EAAE,EAAE;IACzD,IAAA,8BAAoB,EAAC,IAAI,EAAE,qFAAuC,CAAC,CAAC;IACpE,IAAI,CAAC,2CAAyB,CAAC,CAAC,SAAS,CAAC,qFAAuC,CAAC,CAAC;IAEnF,yDAAyD;IACzD,IAAI,CAAC,4EAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,4EAAmC,CAAC,CAAC;IAErF,IAAI,CAAC,uBAAa,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,EAAE,EAAE,wDAAyB,CAAC,EAAE;QAChC,YAAY,EAAE,GAAG,EAAE,CAAC,wDAAyB,CAAC,YAAY,CAAC,SAAS,CAAC;KACxE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEvB,IAAI,CAAC,uBAAa,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,EAAE,EAAE,+CAAqB,CAAC,EAAE;QAC5B,YAAY,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,uBAAa,CAAC,CAAC;YACnD,MAAM,yBAAyB,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAA4B,wDAAyB,CAAC,EAAE,CAAC,CAAC;YACjI,KAAK,CAAC,IAAI,CAAC,wDAAyB,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;YACjF,OAAO,+CAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC,yDAA0B,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAyB,6BAAsB,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,8DAA+B,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,oEAAqC,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,8DAA+B,EAAE,CAAC,CAAC;IACzG,IAAI,CAAC,6BAAsB,CAAC,CAAC,SAAS,CAAC,oEAAqC,CAAC,CAAC;AAClF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"terminal-manager-frontend-module.js","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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,4DAA2E;AAC3E,qDAKiC;AACjC,mFAA0F;AAC1F,uEAAkE;AAClE,+GAAwG;AACxG,qGAA+F;AAC/F,iFAAoJ;AACpJ,iFAA2E;AAC3E,2FAAqF;AACrF,qGAAgG;AAChG,kDAAgD;AAChD,sCAA6E;AAE7E,kBAAe,IAAI,2BAAe,CAAC,CAAC,IAAqB,EAAE,EAAE;IACzD,IAAA,8BAAoB,EAAC,IAAI,EAAE,qFAAuC,CAAC,CAAC;IACpE,IAAI,CAAC,2CAAyB,CAAC,CAAC,SAAS,CAAC,qFAAuC,CAAC,CAAC;IAEnF,yDAAyD;IACzD,IAAI,CAAC,4EAAmC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACtE,IAAI,CAAC,yCAA+B,CAAC,CAAC,SAAS,CAAC,4EAAmC,CAAC,CAAC;IAErF,IAAI,CAAC,kEAA8B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACjE,IAAI,CAAC,mDAAuB,CAAC,CAAC,SAAS,CAAC,kEAA8B,CAAC,CAAC;IAExE,IAAI,CAAC,uBAAa,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,EAAE,EAAE,wDAAyB,CAAC,EAAE;QAChC,YAAY,EAAE,GAAG,EAAE,CAAC,wDAAyB,CAAC,YAAY,CAAC,SAAS,CAAC;KACxE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEvB,IAAI,CAAC,uBAAa,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,EAAE,EAAE,+CAAqB,CAAC,EAAE;QAC5B,YAAY,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,uBAAa,CAAC,CAAC;YACnD,MAAM,yBAAyB,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAA4B,wDAAyB,CAAC,EAAE,CAAC,CAAC;YACjI,KAAK,CAAC,IAAI,CAAC,wDAAyB,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;YACjF,OAAO,+CAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC,yDAA0B,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAyB,6BAAsB,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,8DAA+B,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,oEAAqC,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,8DAA+B,EAAE,CAAC,CAAC;IACzG,IAAI,CAAC,6BAAsB,CAAC,CAAC,SAAS,CAAC,oEAAqC,CAAC,CAAC;AAClF,CAAC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { TreeModelImpl, CompositeTreeNode, SelectableTreeNode, TreeNode } from '@theia/core/lib/browser';
2
2
  import { Emitter } from '@theia/core';
3
- import { TerminalManagerTreeTypes } from './terminal-manager-types';
3
+ import { TerminalManagerTreeTypes, SpecialPageConfig } from './terminal-manager-types';
4
4
  export declare class TerminalManagerTreeModel extends TreeModelImpl {
5
5
  activePageNode: TerminalManagerTreeTypes.PageNode | undefined;
6
6
  activeGroupNode: TerminalManagerTreeTypes.TerminalGroupNode | undefined;
@@ -47,7 +47,16 @@ export declare class TerminalManagerTreeModel extends TreeModelImpl {
47
47
  terminalId: TerminalManagerTreeTypes.TerminalKey;
48
48
  groupId: TerminalManagerTreeTypes.GroupId;
49
49
  }>;
50
+ protected readonly specialPageConfigs: Map<string, SpecialPageConfig>;
50
51
  protected init(): void;
52
+ /**
53
+ * Register the default special pages. Subclasses can override this to
54
+ * add, remove, or replace entries before the model is used.
55
+ */
56
+ protected configureSpecialPages(): void;
57
+ registerSpecialPage(kind: string, config: SpecialPageConfig): void;
58
+ getSpecialPageConfig(kind: string): SpecialPageConfig | undefined;
59
+ getSpecialPageConfigs(): ReadonlyMap<string, SpecialPageConfig>;
51
60
  addTerminalPage(terminalKey: TerminalManagerTreeTypes.TerminalKey, groupId: TerminalManagerTreeTypes.GroupId, pageId: TerminalManagerTreeTypes.PageId, label?: string): void;
52
61
  protected createPageNode(pageId: TerminalManagerTreeTypes.PageId): TerminalManagerTreeTypes.PageNode;
53
62
  protected getNextPageCounter(): number;
@@ -68,12 +77,20 @@ export declare class TerminalManagerTreeModel extends TreeModelImpl {
68
77
  getPageIdForTerminal(terminalKey: TerminalManagerTreeTypes.TerminalKey): TerminalManagerTreeTypes.PageId | undefined;
69
78
  selectTerminalNode(terminalKey: TerminalManagerTreeTypes.TerminalKey): void;
70
79
  updateTerminalLabel(terminalKey: TerminalManagerTreeTypes.TerminalKey, newLabel: string): void;
71
- protected refreshWithSelection(refreshTarget?: CompositeTreeNode, selectionTarget?: SelectableTreeNode, selectionReferent?: TreeNode): Promise<void>;
80
+ protected refreshWithSelection(refreshTarget?: CompositeTreeNode, selectionTarget?: SelectableTreeNode): Promise<void>;
72
81
  protected findSelection(start?: TreeNode): SelectableTreeNode | undefined;
73
- getOrCreateTasksPage(): {
82
+ /**
83
+ * Get or create a page by ID. If a special page config exists for this ID,
84
+ * its label is used; otherwise an auto-numbered label is generated.
85
+ *
86
+ * An existing page is only reused if it is currently attached to the root
87
+ * of the tree. A page that has been detached (e.g., because its last
88
+ * terminal was removed) is treated as missing and recreated.
89
+ */
90
+ protected getOrCreatePage(pageId: TerminalManagerTreeTypes.PageId): {
74
91
  page: TerminalManagerTreeTypes.PageNode;
75
92
  isNewlyCreated: boolean;
76
93
  };
77
- addTerminalToTasksPage(terminalKey: TerminalManagerTreeTypes.TerminalKey, groupId: TerminalManagerTreeTypes.GroupId, label?: string): void;
94
+ protected createSpecialPageNode(pageId: TerminalManagerTreeTypes.PageId, label: string): TerminalManagerTreeTypes.PageNode;
78
95
  }
79
96
  //# sourceMappingURL=terminal-manager-tree-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-manager-tree-model.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-tree-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-manager-tree-model.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-tree-model.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
40
40
  this.onDidAddTerminalToGroup = this.onDidAddTerminalToGroupEmitter.event;
41
41
  this.onDidDeleteTerminalFromGroupEmitter = new core_1.Emitter();
42
42
  this.onDidDeleteTerminalFromGroup = this.onDidDeleteTerminalFromGroupEmitter.event;
43
+ this.specialPageConfigs = new Map();
43
44
  }
44
45
  init() {
45
46
  super.init();
@@ -50,20 +51,39 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
50
51
  }
51
52
  }));
52
53
  this.root = { id: 'root', parent: undefined, children: [], visible: false };
54
+ this.configureSpecialPages();
55
+ }
56
+ /**
57
+ * Register the default special pages. Subclasses can override this to
58
+ * add, remove, or replace entries before the model is used.
59
+ */
60
+ configureSpecialPages() {
61
+ this.registerSpecialPage('task', { pageId: 'page-tasks', label: core_1.nls.localizeByDefault('Tasks'), icon: 'tasklist' });
62
+ this.registerSpecialPage('debug', { pageId: 'page-debug', label: core_1.nls.localizeByDefault('Debug'), icon: 'debug-alt' });
63
+ }
64
+ registerSpecialPage(kind, config) {
65
+ this.specialPageConfigs.set(kind, config);
66
+ }
67
+ getSpecialPageConfig(kind) {
68
+ return this.specialPageConfigs.get(kind);
69
+ }
70
+ getSpecialPageConfigs() {
71
+ return this.specialPageConfigs;
53
72
  }
54
73
  addTerminalPage(terminalKey, groupId, pageId, label) {
55
- const pageNode = this.createPageNode(pageId);
74
+ const { page: pageNode, isNewlyCreated } = this.getOrCreatePage(pageId);
56
75
  const groupNode = this.createGroupNode(groupId, pageId);
57
76
  const terminalNode = this.createTerminalNode(terminalKey, groupId, label);
58
77
  if (this.root && browser_1.CompositeTreeNode.is(this.root)) {
59
78
  this.activePageNode = pageNode;
60
79
  browser_1.CompositeTreeNode.addChild(groupNode, terminalNode);
61
80
  browser_1.CompositeTreeNode.addChild(pageNode, groupNode);
62
- this.root = browser_1.CompositeTreeNode.addChild(this.root, pageNode);
63
- this.onDidAddPageEmitter.fire({ pageId: pageNode.id, terminalKey });
64
- setTimeout(() => {
65
- this.selectionService.addSelection(terminalNode);
66
- });
81
+ if (isNewlyCreated) {
82
+ this.root = browser_1.CompositeTreeNode.addChild(this.root, pageNode);
83
+ this.onDidAddPageEmitter.fire({ pageId: pageNode.id, terminalKey });
84
+ }
85
+ this.onDidAddTerminalGroupEmitter.fire({ groupId: groupNode.id, pageId: pageNode.id, terminalKey });
86
+ this.refreshWithSelection(pageNode, terminalNode);
67
87
  }
68
88
  }
69
89
  createPageNode(pageId) {
@@ -87,9 +107,12 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
87
107
  const pageNode = this.getNode(pageId);
88
108
  if (terminal_manager_types_1.TerminalManagerTreeTypes.isPageNode(pageNode) && browser_1.CompositeTreeNode.is(this.root)) {
89
109
  const isActive = this.activePageNode === pageNode;
110
+ const fallback = isActive
111
+ ? this.findSelection(pageNode.previousSibling) ?? this.findSelection(pageNode.nextSibling)
112
+ : undefined;
90
113
  this.onDidDeletePageEmitter.fire(pageNode.id);
91
- browser_1.CompositeTreeNode.removeChild(this.root, pageNode);
92
- this.refreshWithSelection(this.root, undefined, isActive ? pageNode : undefined);
114
+ browser_1.CompositeTreeNode.removeChild(this.root, pageNode, this.tree);
115
+ this.refreshWithSelection(this.root, fallback);
93
116
  }
94
117
  }
95
118
  addTerminalGroup(terminalKey, groupId, pageId, label) {
@@ -134,14 +157,17 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
134
157
  }
135
158
  else {
136
159
  const isActive = this.activeGroupNode === groupNode;
160
+ const fallback = isActive
161
+ ? this.findSelection(groupNode.previousSibling) ?? this.findSelection(groupNode.nextSibling)
162
+ : undefined;
137
163
  this.doDeleteTerminalGroup(groupNode, parentPageNode);
138
- this.refreshWithSelection(parentPageNode, undefined, isActive ? groupNode : undefined);
164
+ this.refreshWithSelection(parentPageNode, fallback);
139
165
  }
140
166
  }
141
167
  }
142
168
  doDeleteTerminalGroup(group, page) {
143
169
  this.onDidDeleteTerminalGroupEmitter.fire(group.id);
144
- browser_1.CompositeTreeNode.removeChild(page, group);
170
+ browser_1.CompositeTreeNode.removeChild(page, group, this.tree);
145
171
  }
146
172
  addTerminal(newTerminalId, groupId, label) {
147
173
  const groupNode = this.getNode(groupId);
@@ -173,8 +199,11 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
173
199
  }
174
200
  else {
175
201
  const isActive = this.activeTerminalNode === terminalNode;
202
+ const fallback = isActive
203
+ ? this.findSelection(terminalNode.previousSibling) ?? this.findSelection(terminalNode.nextSibling)
204
+ : undefined;
176
205
  this.doDeleteTerminalNode(terminalNode, parentGroupNode);
177
- this.refreshWithSelection(parentGroupNode, undefined, isActive ? terminalNode : undefined);
206
+ this.refreshWithSelection(parentGroupNode, fallback);
178
207
  }
179
208
  }
180
209
  }
@@ -183,7 +212,7 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
183
212
  terminalId: node.id,
184
213
  groupId: parent.id,
185
214
  });
186
- browser_1.CompositeTreeNode.removeChild(parent, node);
215
+ browser_1.CompositeTreeNode.removeChild(parent, node, this.tree);
187
216
  }
188
217
  toggleRenameTerminal(entityId) {
189
218
  const node = this.getNode(entityId);
@@ -276,18 +305,11 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
276
305
  this.fireChanged();
277
306
  }
278
307
  }
279
- async refreshWithSelection(refreshTarget, selectionTarget, selectionReferent) {
308
+ async refreshWithSelection(refreshTarget, selectionTarget) {
280
309
  await this.refresh(refreshTarget);
281
310
  if (selectionTarget) {
282
311
  return this.selectNode(selectionTarget);
283
312
  }
284
- if (selectionReferent) {
285
- const { previousSibling, nextSibling } = selectionReferent;
286
- const toSelect = this.findSelection(previousSibling) ?? this.findSelection(nextSibling);
287
- if (toSelect) {
288
- this.selectNode(toSelect);
289
- }
290
- }
291
313
  }
292
314
  findSelection(start) {
293
315
  if (!start) {
@@ -303,14 +325,30 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
303
325
  return start.children.at(0)?.children.at(0);
304
326
  }
305
327
  }
306
- getOrCreateTasksPage() {
307
- const existingTasksPage = this.getNode(terminal_manager_types_1.TASKS_PAGE_ID);
308
- if (terminal_manager_types_1.TerminalManagerTreeTypes.isPageNode(existingTasksPage)) {
309
- return { page: existingTasksPage, isNewlyCreated: false };
328
+ /**
329
+ * Get or create a page by ID. If a special page config exists for this ID,
330
+ * its label is used; otherwise an auto-numbered label is generated.
331
+ *
332
+ * An existing page is only reused if it is currently attached to the root
333
+ * of the tree. A page that has been detached (e.g., because its last
334
+ * terminal was removed) is treated as missing and recreated.
335
+ */
336
+ getOrCreatePage(pageId) {
337
+ const existing = this.getNode(pageId);
338
+ if (terminal_manager_types_1.TerminalManagerTreeTypes.isPageNode(existing) && existing.parent === this.root) {
339
+ return { page: existing, isNewlyCreated: false };
310
340
  }
311
- const tasksPageNode = {
312
- id: terminal_manager_types_1.TASKS_PAGE_ID,
313
- label: core_1.nls.localizeByDefault('Tasks'),
341
+ // Check if this is a special page with a configured label
342
+ const specialConfig = [...this.specialPageConfigs.values()].find(c => c.pageId === pageId);
343
+ const pageNode = specialConfig
344
+ ? this.createSpecialPageNode(pageId, specialConfig.label)
345
+ : this.createPageNode(pageId);
346
+ return { page: pageNode, isNewlyCreated: true };
347
+ }
348
+ createSpecialPageNode(pageId, label) {
349
+ return {
350
+ id: pageId,
351
+ label,
314
352
  parent: undefined,
315
353
  selected: false,
316
354
  children: [],
@@ -319,25 +357,6 @@ let TerminalManagerTreeModel = class TerminalManagerTreeModel extends browser_1.
319
357
  expanded: true,
320
358
  counter: 0,
321
359
  };
322
- if (this.root && browser_1.CompositeTreeNode.is(this.root)) {
323
- this.root = browser_1.CompositeTreeNode.addChild(this.root, tasksPageNode);
324
- }
325
- return { page: tasksPageNode, isNewlyCreated: true };
326
- }
327
- addTerminalToTasksPage(terminalKey, groupId, label) {
328
- const { page: tasksPage, isNewlyCreated } = this.getOrCreateTasksPage();
329
- const groupNode = this.createGroupNode(groupId, tasksPage.id);
330
- const terminalNode = this.createTerminalNode(terminalKey, groupId, label);
331
- if (this.root && browser_1.CompositeTreeNode.is(this.root)) {
332
- this.activePageNode = tasksPage;
333
- browser_1.CompositeTreeNode.addChild(groupNode, terminalNode);
334
- browser_1.CompositeTreeNode.addChild(tasksPage, groupNode);
335
- if (isNewlyCreated) {
336
- this.onDidAddPageEmitter.fire({ pageId: tasksPage.id, terminalKey });
337
- }
338
- this.onDidAddTerminalGroupEmitter.fire({ groupId: groupNode.id, pageId: tasksPage.id, terminalKey });
339
- this.refreshWithSelection(tasksPage, terminalNode);
340
- }
341
360
  }
342
361
  };
343
362
  exports.TerminalManagerTreeModel = TerminalManagerTreeModel;