@theia/terminal-manager 1.67.0-next.86
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 +31 -0
- package/lib/browser/terminal-manager-frontend-contribution.d.ts +25 -0
- package/lib/browser/terminal-manager-frontend-contribution.d.ts.map +1 -0
- package/lib/browser/terminal-manager-frontend-contribution.js +173 -0
- package/lib/browser/terminal-manager-frontend-contribution.js.map +1 -0
- package/lib/browser/terminal-manager-frontend-module.d.ts +5 -0
- package/lib/browser/terminal-manager-frontend-module.d.ts.map +1 -0
- package/lib/browser/terminal-manager-frontend-module.js +55 -0
- package/lib/browser/terminal-manager-frontend-module.js.map +1 -0
- package/lib/browser/terminal-manager-frontend-view-contribution.d.ts +27 -0
- package/lib/browser/terminal-manager-frontend-view-contribution.d.ts.map +1 -0
- package/lib/browser/terminal-manager-frontend-view-contribution.js +278 -0
- package/lib/browser/terminal-manager-frontend-view-contribution.js.map +1 -0
- package/lib/browser/terminal-manager-preferences.d.ts +12 -0
- package/lib/browser/terminal-manager-preferences.d.ts.map +1 -0
- package/lib/browser/terminal-manager-preferences.js +42 -0
- package/lib/browser/terminal-manager-preferences.js.map +1 -0
- package/lib/browser/terminal-manager-tree-model.d.ts +71 -0
- package/lib/browser/terminal-manager-tree-model.d.ts.map +1 -0
- package/lib/browser/terminal-manager-tree-model.js +299 -0
- package/lib/browser/terminal-manager-tree-model.js.map +1 -0
- package/lib/browser/terminal-manager-tree-widget.d.ts +40 -0
- package/lib/browser/terminal-manager-tree-widget.d.ts.map +1 -0
- package/lib/browser/terminal-manager-tree-widget.js +276 -0
- package/lib/browser/terminal-manager-tree-widget.js.map +1 -0
- package/lib/browser/terminal-manager-types.d.ts +77 -0
- package/lib/browser/terminal-manager-types.d.ts.map +1 -0
- package/lib/browser/terminal-manager-types.js +117 -0
- package/lib/browser/terminal-manager-types.js.map +1 -0
- package/lib/browser/terminal-manager-widget.d.ts +108 -0
- package/lib/browser/terminal-manager-widget.d.ts.map +1 -0
- package/lib/browser/terminal-manager-widget.js +616 -0
- package/lib/browser/terminal-manager-widget.js.map +1 -0
- package/lib/package.spec.d.ts +1 -0
- package/lib/package.spec.d.ts.map +1 -0
- package/lib/package.spec.js +26 -0
- package/lib/package.spec.js.map +1 -0
- package/package.json +40 -0
- package/src/browser/terminal-manager-frontend-contribution.ts +164 -0
- package/src/browser/terminal-manager-frontend-module.ts +64 -0
- package/src/browser/terminal-manager-frontend-view-contribution.ts +309 -0
- package/src/browser/terminal-manager-preferences.ts +52 -0
- package/src/browser/terminal-manager-tree-model.ts +336 -0
- package/src/browser/terminal-manager-tree-widget.tsx +305 -0
- package/src/browser/terminal-manager-types.ts +173 -0
- package/src/browser/terminal-manager-widget.ts +686 -0
- package/src/browser/terminal-manager.css +51 -0
- package/src/package.spec.ts +27 -0
package/README.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<div align='center'>
|
|
2
|
+
|
|
3
|
+
<br />
|
|
4
|
+
|
|
5
|
+
<img src='https://raw.githubusercontent.com/eclipse-theia/theia/master/logo/theia.svg?sanitize=true' alt='theia-ext-logo' width='100px' />
|
|
6
|
+
|
|
7
|
+
<h2>ECLIPSE THEIA - TERMINAL MANAGER EXTENSION</h2>
|
|
8
|
+
|
|
9
|
+
<hr />
|
|
10
|
+
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
## Description
|
|
14
|
+
|
|
15
|
+
The `@theia/terminal-manager` extension contributes a terminal manager widget to use several terminal widgets within one view.
|
|
16
|
+
The extension provides setting `terminal.grouping.mode` to toggle using this instead of separate terminal views.
|
|
17
|
+
|
|
18
|
+
## Additional Information
|
|
19
|
+
|
|
20
|
+
- [Theia - GitHub](https://github.com/eclipse-theia/theia)
|
|
21
|
+
- [Theia - Website](https://theia-ide.org/)
|
|
22
|
+
|
|
23
|
+
## License
|
|
24
|
+
|
|
25
|
+
- [Eclipse Public License 2.0](http://www.eclipse.org/legal/epl-2.0/)
|
|
26
|
+
- [一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception](https://projects.eclipse.org/license/secondary-gpl-2.0-cp)
|
|
27
|
+
|
|
28
|
+
## Trademark
|
|
29
|
+
|
|
30
|
+
"Theia" is a trademark of the Eclipse Foundation
|
|
31
|
+
<https://www.eclipse.org/theia>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CommandRegistry, PreferenceService, DisposableCollection } from '@theia/core/lib/common';
|
|
2
|
+
import { TerminalFrontendContribution } from '@theia/terminal/lib/browser/terminal-frontend-contribution';
|
|
3
|
+
import { ApplicationShell, WidgetManager, FrontendApplicationContribution, FrontendApplication } from '@theia/core/lib/browser';
|
|
4
|
+
import { TerminalManagerFrontendViewContribution } from './terminal-manager-frontend-view-contribution';
|
|
5
|
+
import { TerminalManagerPreferences } from './terminal-manager-preferences';
|
|
6
|
+
/**
|
|
7
|
+
* Re-registers terminal commands (e.g. new terminal) to execute them via the terminal manager
|
|
8
|
+
* instead of creating new, separate terminals.
|
|
9
|
+
*/
|
|
10
|
+
export declare class TerminalManagerFrontendContribution implements FrontendApplicationContribution {
|
|
11
|
+
protected readonly terminalFrontendContribution: TerminalFrontendContribution;
|
|
12
|
+
protected readonly terminalManagerViewContribution: TerminalManagerFrontendViewContribution;
|
|
13
|
+
protected readonly widgetManager: WidgetManager;
|
|
14
|
+
protected readonly shell: ApplicationShell;
|
|
15
|
+
protected readonly preferenceService: PreferenceService;
|
|
16
|
+
protected readonly preferences: TerminalManagerPreferences;
|
|
17
|
+
protected readonly commandRegistry: CommandRegistry;
|
|
18
|
+
protected commandHandlerDisposables: DisposableCollection;
|
|
19
|
+
onStart(app: FrontendApplication): void;
|
|
20
|
+
protected handleTabsDisplayChange(newValue: string): void;
|
|
21
|
+
protected unregisterHandlers(): void;
|
|
22
|
+
protected registerHandlers(): void;
|
|
23
|
+
protected registerCommands(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=terminal-manager-frontend-contribution.d.ts.map
|
|
@@ -0,0 +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;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;;;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;IAEpD,SAAS,CAAC,yBAAyB,uBAA8B;IAEjE,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;IAgBvC,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQzD,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAKpC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAKlC,SAAS,CAAC,gBAAgB,IAAI,IAAI;CAkFrC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 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
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
10
|
+
// *****************************************************************************
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TerminalManagerFrontendContribution = void 0;
|
|
13
|
+
const tslib_1 = require("tslib");
|
|
14
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
15
|
+
const common_1 = require("@theia/core/lib/common");
|
|
16
|
+
const terminal_widget_1 = require("@theia/terminal/lib/browser/base/terminal-widget");
|
|
17
|
+
const terminal_frontend_contribution_1 = require("@theia/terminal/lib/browser/terminal-frontend-contribution");
|
|
18
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
19
|
+
const terminal_manager_widget_1 = require("./terminal-manager-widget");
|
|
20
|
+
const terminal_manager_frontend_view_contribution_1 = require("./terminal-manager-frontend-view-contribution");
|
|
21
|
+
const terminal_manager_preferences_1 = require("./terminal-manager-preferences");
|
|
22
|
+
/**
|
|
23
|
+
* Re-registers terminal commands (e.g. new terminal) to execute them via the terminal manager
|
|
24
|
+
* instead of creating new, separate terminals.
|
|
25
|
+
*/
|
|
26
|
+
let TerminalManagerFrontendContribution = class TerminalManagerFrontendContribution {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.commandHandlerDisposables = new common_1.DisposableCollection();
|
|
29
|
+
}
|
|
30
|
+
onStart(app) {
|
|
31
|
+
this.preferenceService.ready.then(() => {
|
|
32
|
+
this.preferenceService.onPreferenceChanged(change => {
|
|
33
|
+
if (change.preferenceName === 'terminal.grouping.mode') {
|
|
34
|
+
this.handleTabsDisplayChange(change.newValue);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
if (this.preferences.get('terminal.grouping.mode') !== 'tree') {
|
|
38
|
+
console.debug('Terminal tab style is not tree. Use separate terminal views.');
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.debug('Terminal tab style is tree. Override command handlers accordingly.');
|
|
42
|
+
this.registerHandlers();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
handleTabsDisplayChange(newValue) {
|
|
46
|
+
if (newValue === 'tree') {
|
|
47
|
+
this.registerHandlers();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.unregisterHandlers();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
unregisterHandlers() {
|
|
54
|
+
this.commandHandlerDisposables.dispose();
|
|
55
|
+
this.commandHandlerDisposables = new common_1.DisposableCollection();
|
|
56
|
+
}
|
|
57
|
+
registerHandlers() {
|
|
58
|
+
this.unregisterHandlers();
|
|
59
|
+
this.registerCommands();
|
|
60
|
+
}
|
|
61
|
+
registerCommands() {
|
|
62
|
+
this.commandHandlerDisposables.push(this.commandRegistry.registerHandler(terminal_frontend_contribution_1.TerminalCommands.NEW.id, {
|
|
63
|
+
execute: async () => {
|
|
64
|
+
// Only create a new terminal if the view was existing as opening it automatically create a terminal
|
|
65
|
+
const existing = this.terminalManagerViewContribution.tryGetWidget();
|
|
66
|
+
const managerWidget = await this.terminalManagerViewContribution.openView({ reveal: true });
|
|
67
|
+
if (managerWidget instanceof terminal_manager_widget_1.TerminalManagerWidget && existing) {
|
|
68
|
+
const terminalWidget = await managerWidget.createTerminalWidget();
|
|
69
|
+
managerWidget.addTerminalPage(terminalWidget);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
73
|
+
this.commandHandlerDisposables.push(this.commandRegistry.registerHandler(terminal_frontend_contribution_1.TerminalCommands.NEW_ACTIVE_WORKSPACE.id, {
|
|
74
|
+
execute: async () => {
|
|
75
|
+
// Only create a new terminal if the view was existing as opening it automatically create a terminal
|
|
76
|
+
const existing = this.terminalManagerViewContribution.tryGetWidget();
|
|
77
|
+
const managerWidget = await this.terminalManagerViewContribution.openView({ reveal: true });
|
|
78
|
+
if (managerWidget instanceof terminal_manager_widget_1.TerminalManagerWidget && existing) {
|
|
79
|
+
const terminalWidget = await managerWidget.createTerminalWidget();
|
|
80
|
+
managerWidget.addTerminalPage(terminalWidget);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
this.commandHandlerDisposables.push(this.commandRegistry.registerHandler(terminal_frontend_contribution_1.TerminalCommands.SPLIT.id, {
|
|
85
|
+
execute: async () => {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
const managerWidget = await this.terminalManagerViewContribution.openView({ reveal: true });
|
|
88
|
+
if (managerWidget instanceof terminal_manager_widget_1.TerminalManagerWidget) {
|
|
89
|
+
const terminalWidget = await managerWidget.createTerminalWidget();
|
|
90
|
+
const { model } = managerWidget.treeWidget;
|
|
91
|
+
const activeGroupId = (_a = model.activeGroupNode) === null || _a === void 0 ? void 0 : _a.id;
|
|
92
|
+
const activePageId = (_b = model.activePageNode) === null || _b === void 0 ? void 0 : _b.id;
|
|
93
|
+
if (activeGroupId) {
|
|
94
|
+
managerWidget.addWidgetToTerminalGroup(terminalWidget, activeGroupId);
|
|
95
|
+
}
|
|
96
|
+
else if (activePageId) {
|
|
97
|
+
managerWidget.addTerminalGroupToPage(terminalWidget, activePageId);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
managerWidget.addTerminalPage(terminalWidget);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
isEnabled: w => w instanceof terminal_widget_1.TerminalWidget || w instanceof terminal_manager_widget_1.TerminalManagerWidget,
|
|
105
|
+
isVisible: w => w instanceof terminal_widget_1.TerminalWidget || w instanceof terminal_manager_widget_1.TerminalManagerWidget,
|
|
106
|
+
}));
|
|
107
|
+
this.commandHandlerDisposables.push(this.commandRegistry.registerHandler(terminal_frontend_contribution_1.TerminalCommands.TOGGLE_TERMINAL.id, {
|
|
108
|
+
execute: async () => {
|
|
109
|
+
const existing = this.terminalManagerViewContribution.tryGetWidget();
|
|
110
|
+
if (!existing || !(existing instanceof terminal_manager_widget_1.TerminalManagerWidget)) {
|
|
111
|
+
const managerWidget = await this.terminalManagerViewContribution.openView({ activate: true });
|
|
112
|
+
if (managerWidget instanceof terminal_manager_widget_1.TerminalManagerWidget && !this.shell.isExpanded('bottom')) {
|
|
113
|
+
this.shell.expandPanel('bottom');
|
|
114
|
+
}
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (!existing.isAttached) {
|
|
118
|
+
await this.terminalManagerViewContribution.openView({ activate: true });
|
|
119
|
+
if (!this.shell.isExpanded('bottom')) {
|
|
120
|
+
this.shell.expandPanel('bottom');
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (!this.shell.isExpanded('bottom')) {
|
|
125
|
+
this.shell.expandPanel('bottom');
|
|
126
|
+
this.shell.bottomPanel.activateWidget(existing);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const active = this.shell.activeWidget;
|
|
130
|
+
const isManagerOrChildActive = active === existing || Array.from(existing.terminalWidgets.values()).some(widget => widget === active);
|
|
131
|
+
if (isManagerOrChildActive) {
|
|
132
|
+
this.shell.collapsePanel('bottom');
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.shell.bottomPanel.activateWidget(existing);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
exports.TerminalManagerFrontendContribution = TerminalManagerFrontendContribution;
|
|
142
|
+
tslib_1.__decorate([
|
|
143
|
+
(0, inversify_1.inject)(terminal_frontend_contribution_1.TerminalFrontendContribution),
|
|
144
|
+
tslib_1.__metadata("design:type", terminal_frontend_contribution_1.TerminalFrontendContribution)
|
|
145
|
+
], TerminalManagerFrontendContribution.prototype, "terminalFrontendContribution", void 0);
|
|
146
|
+
tslib_1.__decorate([
|
|
147
|
+
(0, inversify_1.inject)(terminal_manager_frontend_view_contribution_1.TerminalManagerFrontendViewContribution),
|
|
148
|
+
tslib_1.__metadata("design:type", terminal_manager_frontend_view_contribution_1.TerminalManagerFrontendViewContribution)
|
|
149
|
+
], TerminalManagerFrontendContribution.prototype, "terminalManagerViewContribution", void 0);
|
|
150
|
+
tslib_1.__decorate([
|
|
151
|
+
(0, inversify_1.inject)(browser_1.WidgetManager),
|
|
152
|
+
tslib_1.__metadata("design:type", browser_1.WidgetManager)
|
|
153
|
+
], TerminalManagerFrontendContribution.prototype, "widgetManager", void 0);
|
|
154
|
+
tslib_1.__decorate([
|
|
155
|
+
(0, inversify_1.inject)(browser_1.ApplicationShell),
|
|
156
|
+
tslib_1.__metadata("design:type", browser_1.ApplicationShell)
|
|
157
|
+
], TerminalManagerFrontendContribution.prototype, "shell", void 0);
|
|
158
|
+
tslib_1.__decorate([
|
|
159
|
+
(0, inversify_1.inject)(common_1.PreferenceService),
|
|
160
|
+
tslib_1.__metadata("design:type", Object)
|
|
161
|
+
], TerminalManagerFrontendContribution.prototype, "preferenceService", void 0);
|
|
162
|
+
tslib_1.__decorate([
|
|
163
|
+
(0, inversify_1.inject)(terminal_manager_preferences_1.TerminalManagerPreferences),
|
|
164
|
+
tslib_1.__metadata("design:type", Object)
|
|
165
|
+
], TerminalManagerFrontendContribution.prototype, "preferences", void 0);
|
|
166
|
+
tslib_1.__decorate([
|
|
167
|
+
(0, inversify_1.inject)(common_1.CommandRegistry),
|
|
168
|
+
tslib_1.__metadata("design:type", common_1.CommandRegistry)
|
|
169
|
+
], TerminalManagerFrontendContribution.prototype, "commandRegistry", void 0);
|
|
170
|
+
exports.TerminalManagerFrontendContribution = TerminalManagerFrontendContribution = tslib_1.__decorate([
|
|
171
|
+
(0, inversify_1.injectable)()
|
|
172
|
+
], TerminalManagerFrontendContribution);
|
|
173
|
+
//# sourceMappingURL=terminal-manager-frontend-contribution.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 Ericsson and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
19
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
20
|
+
const tab_bar_toolbar_1 = require("@theia/core/lib/browser/shell/tab-bar-toolbar");
|
|
21
|
+
const terminal_manager_widget_1 = require("./terminal-manager-widget");
|
|
22
|
+
const terminal_manager_frontend_view_contribution_1 = require("./terminal-manager-frontend-view-contribution");
|
|
23
|
+
const terminal_manager_frontend_contribution_1 = require("./terminal-manager-frontend-contribution");
|
|
24
|
+
const terminal_manager_preferences_1 = require("./terminal-manager-preferences");
|
|
25
|
+
const terminal_manager_tree_widget_1 = require("./terminal-manager-tree-widget");
|
|
26
|
+
require("../../src/browser/terminal-manager.css");
|
|
27
|
+
const core_1 = require("@theia/core");
|
|
28
|
+
exports.default = new inversify_1.ContainerModule((bind) => {
|
|
29
|
+
(0, browser_1.bindViewContribution)(bind, terminal_manager_frontend_view_contribution_1.TerminalManagerFrontendViewContribution);
|
|
30
|
+
bind(tab_bar_toolbar_1.TabBarToolbarContribution).toService(terminal_manager_frontend_view_contribution_1.TerminalManagerFrontendViewContribution);
|
|
31
|
+
// Bind the contribution for overridden terminal commands
|
|
32
|
+
bind(terminal_manager_frontend_contribution_1.TerminalManagerFrontendContribution).toSelf().inSingletonScope();
|
|
33
|
+
bind(browser_1.FrontendApplicationContribution).toService(terminal_manager_frontend_contribution_1.TerminalManagerFrontendContribution);
|
|
34
|
+
bind(browser_1.WidgetFactory).toDynamicValue(({ container }) => ({
|
|
35
|
+
id: terminal_manager_tree_widget_1.TerminalManagerTreeWidget.ID,
|
|
36
|
+
createWidget: () => terminal_manager_tree_widget_1.TerminalManagerTreeWidget.createWidget(container),
|
|
37
|
+
})).inSingletonScope();
|
|
38
|
+
bind(browser_1.WidgetFactory).toDynamicValue(({ container }) => ({
|
|
39
|
+
id: terminal_manager_widget_1.TerminalManagerWidget.ID,
|
|
40
|
+
createWidget: async () => {
|
|
41
|
+
const child = container.createChild();
|
|
42
|
+
const widgetManager = container.get(browser_1.WidgetManager);
|
|
43
|
+
const terminalManagerTreeWidget = await widgetManager.getOrCreateWidget(terminal_manager_tree_widget_1.TerminalManagerTreeWidget.ID);
|
|
44
|
+
child.bind(terminal_manager_tree_widget_1.TerminalManagerTreeWidget).toConstantValue(terminalManagerTreeWidget);
|
|
45
|
+
return terminal_manager_widget_1.TerminalManagerWidget.createWidget(child);
|
|
46
|
+
},
|
|
47
|
+
}));
|
|
48
|
+
bind(terminal_manager_preferences_1.TerminalManagerPreferences).toDynamicValue(ctx => {
|
|
49
|
+
const factory = ctx.container.get(core_1.PreferenceProxyFactory);
|
|
50
|
+
return factory(terminal_manager_preferences_1.TerminalManagerPreferenceSchema);
|
|
51
|
+
}).inSingletonScope();
|
|
52
|
+
bind(terminal_manager_preferences_1.TerminalManagerPreferenceContribution).toConstantValue({ schema: terminal_manager_preferences_1.TerminalManagerPreferenceSchema });
|
|
53
|
+
bind(core_1.PreferenceContribution).toService(terminal_manager_preferences_1.TerminalManagerPreferenceContribution);
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=terminal-manager-frontend-module.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AbstractViewContribution, KeybindingContribution, KeybindingRegistry } from '@theia/core/lib/browser';
|
|
2
|
+
import { CommandRegistry, MenuModelRegistry } from '@theia/core';
|
|
3
|
+
import { TabBarToolbarContribution, TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
|
|
4
|
+
import { TerminalManagerTreeTypes } from './terminal-manager-types';
|
|
5
|
+
import { TerminalManagerWidget } from './terminal-manager-widget';
|
|
6
|
+
export declare class TerminalManagerFrontendViewContribution extends AbstractViewContribution<TerminalManagerWidget> implements TabBarToolbarContribution, KeybindingContribution {
|
|
7
|
+
constructor();
|
|
8
|
+
registerCommands(commands: CommandRegistry): void;
|
|
9
|
+
protected confirmUserAction(options: {
|
|
10
|
+
title: string;
|
|
11
|
+
message: string;
|
|
12
|
+
primaryButtonText: string;
|
|
13
|
+
}): Promise<string | undefined>;
|
|
14
|
+
protected maximizeBottomPanel(): void;
|
|
15
|
+
protected createNewTerminalPage(): Promise<void>;
|
|
16
|
+
protected createNewTerminalGroup(pageId: TerminalManagerTreeTypes.PageId): Promise<void>;
|
|
17
|
+
protected addTerminalToGroup(groupId: TerminalManagerTreeTypes.GroupId): Promise<void>;
|
|
18
|
+
protected handleToggleTree(): Promise<void>;
|
|
19
|
+
protected deleteTerminalFromManager(terminalId: TerminalManagerTreeTypes.TerminalKey): Promise<void>;
|
|
20
|
+
protected deleteGroupFromManager(groupId: TerminalManagerTreeTypes.GroupId): Promise<void>;
|
|
21
|
+
protected deletePageFromManager(pageId: TerminalManagerTreeTypes.PageId): Promise<void>;
|
|
22
|
+
protected toggleRenameTerminalFromManager(entityId: TerminalManagerTreeTypes.TerminalManagerValidId): Promise<void>;
|
|
23
|
+
registerMenus(menus: MenuModelRegistry): void;
|
|
24
|
+
registerToolbarItems(toolbar: TabBarToolbarRegistry): void;
|
|
25
|
+
registerKeybindings(registry: KeybindingRegistry): void;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=terminal-manager-frontend-view-contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-manager-frontend-view-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/terminal-manager-frontend-view-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,wBAAwB,EAExB,sBAAsB,EACtB,kBAAkB,EAGrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAS,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAEjH,OAAO,EAA2B,wBAAwB,EAAsC,MAAM,0BAA0B,CAAC;AACjI,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIlE,qBACa,uCAAwC,SAAQ,wBAAwB,CAAC,qBAAqB,CACvG,YAAW,yBAAyB,EAAE,sBAAsB;;IAYnD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;cA0H1C,iBAAiB,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAWtI,SAAS,CAAC,mBAAmB,IAAI,IAAI;cAIrB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;cAMtC,sBAAsB,CAAC,MAAM,EAAE,wBAAwB,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAM9E,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;cAM5E,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cAKjC,yBAAyB,CAAC,UAAU,EAAE,wBAAwB,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;cAK1F,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;cAKhF,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAK7E,+BAA+B,CAAC,QAAQ,EAAE,wBAAwB,CAAC,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhH,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IA+CtD,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IA4BjD,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;CAMnE"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2023 Ericsson 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.TerminalManagerFrontendViewContribution = 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 core_1 = require("@theia/core");
|
|
23
|
+
const theia_dock_panel_1 = require("@theia/core/lib/browser/shell/theia-dock-panel");
|
|
24
|
+
const terminal_manager_types_1 = require("./terminal-manager-types");
|
|
25
|
+
const terminal_manager_widget_1 = require("./terminal-manager-widget");
|
|
26
|
+
const terminal_manager_tree_widget_1 = require("./terminal-manager-tree-widget");
|
|
27
|
+
const dialogs_1 = require("@theia/core/lib/browser/dialogs");
|
|
28
|
+
let TerminalManagerFrontendViewContribution = class TerminalManagerFrontendViewContribution extends browser_1.AbstractViewContribution {
|
|
29
|
+
constructor() {
|
|
30
|
+
super({
|
|
31
|
+
widgetId: terminal_manager_widget_1.TerminalManagerWidget.ID,
|
|
32
|
+
widgetName: 'Terminal Manager',
|
|
33
|
+
defaultWidgetOptions: {
|
|
34
|
+
area: 'bottom',
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
registerCommands(commands) {
|
|
39
|
+
super.registerCommands(commands);
|
|
40
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_NEW_TERMINAL_GROUP, {
|
|
41
|
+
execute: (...args) => {
|
|
42
|
+
const nodeId = args[1];
|
|
43
|
+
if (terminal_manager_types_1.TerminalManagerTreeTypes.isPageId(nodeId)) {
|
|
44
|
+
this.createNewTerminalGroup(nodeId);
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
isVisible: (...args) => args[0] instanceof terminal_manager_tree_widget_1.TerminalManagerTreeWidget && terminal_manager_types_1.TerminalManagerTreeTypes.isPageId(args[1]),
|
|
48
|
+
});
|
|
49
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_SHOW_TREE_TOOLBAR, {
|
|
50
|
+
execute: () => this.handleToggleTree(),
|
|
51
|
+
isVisible: widget => widget instanceof terminal_manager_widget_1.TerminalManagerWidget,
|
|
52
|
+
});
|
|
53
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_NEW_PAGE_BOTTOM_TOOLBAR, {
|
|
54
|
+
execute: () => this.createNewTerminalPage(),
|
|
55
|
+
isVisible: (...args) => args[0] instanceof terminal_manager_widget_1.TerminalManagerWidget,
|
|
56
|
+
});
|
|
57
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_TERMINAL, {
|
|
58
|
+
execute: (...args) => terminal_manager_types_1.TerminalManagerTreeTypes.isTerminalKey(args[1]) && this.deleteTerminalFromManager(args[1]),
|
|
59
|
+
isVisible: (...args) => {
|
|
60
|
+
const treeWidget = args[0];
|
|
61
|
+
const nodeId = args[1];
|
|
62
|
+
if (treeWidget instanceof terminal_manager_tree_widget_1.TerminalManagerTreeWidget && terminal_manager_types_1.TerminalManagerTreeTypes.isTerminalKey(nodeId)) {
|
|
63
|
+
const { model } = treeWidget;
|
|
64
|
+
const terminalNode = model.getNode(nodeId);
|
|
65
|
+
return terminal_manager_types_1.TerminalManagerTreeTypes.isTerminalNode(terminalNode);
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_PAGE, {
|
|
71
|
+
execute: (...args) => terminal_manager_types_1.TerminalManagerTreeTypes.isPageId(args[1]) && this.deletePageFromManager(args[1]),
|
|
72
|
+
isVisible: (...args) => {
|
|
73
|
+
const widget = args[0];
|
|
74
|
+
return widget instanceof terminal_manager_tree_widget_1.TerminalManagerTreeWidget && terminal_manager_types_1.TerminalManagerTreeTypes.isPageId(args[1]) && widget.model.pages.size >= 1;
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_RENAME_TERMINAL, {
|
|
78
|
+
execute: (...args) => this.toggleRenameTerminalFromManager(args[1]),
|
|
79
|
+
isVisible: (...args) => args[0] instanceof terminal_manager_tree_widget_1.TerminalManagerTreeWidget,
|
|
80
|
+
});
|
|
81
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_ADD_TERMINAL_TO_GROUP, {
|
|
82
|
+
execute: (...args) => {
|
|
83
|
+
const nodeId = args[1];
|
|
84
|
+
if (terminal_manager_types_1.TerminalManagerTreeTypes.isGroupId(nodeId)) {
|
|
85
|
+
this.addTerminalToGroup(nodeId);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
isVisible: (...args) => args[0] instanceof terminal_manager_tree_widget_1.TerminalManagerTreeWidget && terminal_manager_types_1.TerminalManagerTreeTypes.isGroupId(args[1]),
|
|
89
|
+
});
|
|
90
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_GROUP, {
|
|
91
|
+
execute: (...args) => terminal_manager_types_1.TerminalManagerTreeTypes.isGroupId(args[1]) && this.deleteGroupFromManager(args[1]),
|
|
92
|
+
isVisible: (...args) => {
|
|
93
|
+
const treeWidget = args[0];
|
|
94
|
+
const groupId = args[1];
|
|
95
|
+
if (treeWidget instanceof terminal_manager_tree_widget_1.TerminalManagerTreeWidget && terminal_manager_types_1.TerminalManagerTreeTypes.isGroupId(groupId)) {
|
|
96
|
+
const { model } = treeWidget;
|
|
97
|
+
const groupNode = model.getNode(groupId);
|
|
98
|
+
return terminal_manager_types_1.TerminalManagerTreeTypes.isGroupNode(groupNode);
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_MAXIMIZE_BOTTOM_PANEL_TOOLBAR, {
|
|
104
|
+
execute: () => this.maximizeBottomPanel(),
|
|
105
|
+
isVisible: widget => {
|
|
106
|
+
var _a;
|
|
107
|
+
return widget instanceof browser_1.Widget
|
|
108
|
+
&& ((_a = widget.parent) === null || _a === void 0 ? void 0 : _a.id) === theia_dock_panel_1.BOTTOM_AREA_ID
|
|
109
|
+
&& !this.shell.bottomPanel.hasClass(browser_1.MAXIMIZED_CLASS);
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_MINIMIZE_BOTTOM_PANEL_TOOLBAR, {
|
|
113
|
+
execute: () => this.maximizeBottomPanel(),
|
|
114
|
+
isVisible: widget => {
|
|
115
|
+
var _a;
|
|
116
|
+
return widget instanceof browser_1.Widget
|
|
117
|
+
&& ((_a = widget.parent) === null || _a === void 0 ? void 0 : _a.id) === theia_dock_panel_1.BOTTOM_AREA_ID
|
|
118
|
+
&& this.shell.bottomPanel.hasClass(browser_1.MAXIMIZED_CLASS);
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_CLEAR_ALL, {
|
|
122
|
+
isVisible: widget => widget instanceof terminal_manager_widget_1.TerminalManagerWidget,
|
|
123
|
+
execute: async (widget) => {
|
|
124
|
+
if (widget instanceof terminal_manager_widget_1.TerminalManagerWidget) {
|
|
125
|
+
const PRIMARY_BUTTON = 'Reset Layout';
|
|
126
|
+
const dialogResponse = await this.confirmUserAction({
|
|
127
|
+
title: 'Do you want to reset the terminal manager layout?',
|
|
128
|
+
message: 'Once the layout is reset, it cannot be restored. Are you sure you would like to clear the layout?',
|
|
129
|
+
primaryButtonText: PRIMARY_BUTTON,
|
|
130
|
+
});
|
|
131
|
+
if (dialogResponse === PRIMARY_BUTTON) {
|
|
132
|
+
for (const id of widget.pagePanels.keys()) {
|
|
133
|
+
widget.deletePage(id);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_OPEN_VIEW, {
|
|
140
|
+
execute: () => this.openView({ activate: true }),
|
|
141
|
+
});
|
|
142
|
+
commands.registerCommand(terminal_manager_types_1.TerminalManagerCommands.MANAGER_CLOSE_VIEW, {
|
|
143
|
+
isVisible: () => Boolean(this.tryGetWidget()),
|
|
144
|
+
isEnabled: () => Boolean(this.tryGetWidget()),
|
|
145
|
+
execute: () => this.closeView(),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
async confirmUserAction(options) {
|
|
149
|
+
const dialog = new dialogs_1.ConfirmDialog({
|
|
150
|
+
title: options.title,
|
|
151
|
+
msg: options.message,
|
|
152
|
+
ok: options.primaryButtonText,
|
|
153
|
+
cancel: dialogs_1.Dialog.CANCEL,
|
|
154
|
+
});
|
|
155
|
+
const confirmed = await dialog.open();
|
|
156
|
+
return confirmed ? options.primaryButtonText : undefined;
|
|
157
|
+
}
|
|
158
|
+
maximizeBottomPanel() {
|
|
159
|
+
this.shell.bottomPanel.toggleMaximized();
|
|
160
|
+
}
|
|
161
|
+
async createNewTerminalPage() {
|
|
162
|
+
const terminalManagerWidget = await this.widget;
|
|
163
|
+
const terminalWidget = await terminalManagerWidget.createTerminalWidget();
|
|
164
|
+
terminalManagerWidget.addTerminalPage(terminalWidget);
|
|
165
|
+
}
|
|
166
|
+
async createNewTerminalGroup(pageId) {
|
|
167
|
+
const terminalManagerWidget = await this.widget;
|
|
168
|
+
const terminalWidget = await terminalManagerWidget.createTerminalWidget();
|
|
169
|
+
terminalManagerWidget.addTerminalGroupToPage(terminalWidget, pageId);
|
|
170
|
+
}
|
|
171
|
+
async addTerminalToGroup(groupId) {
|
|
172
|
+
const terminalManagerWidget = await this.widget;
|
|
173
|
+
const terminalWidget = await terminalManagerWidget.createTerminalWidget();
|
|
174
|
+
terminalManagerWidget.addWidgetToTerminalGroup(terminalWidget, groupId);
|
|
175
|
+
}
|
|
176
|
+
async handleToggleTree() {
|
|
177
|
+
const terminalManagerWidget = await this.widget;
|
|
178
|
+
terminalManagerWidget.toggleTreeVisibility();
|
|
179
|
+
}
|
|
180
|
+
async deleteTerminalFromManager(terminalId) {
|
|
181
|
+
const terminalManagerWidget = await this.widget;
|
|
182
|
+
terminalManagerWidget === null || terminalManagerWidget === void 0 ? void 0 : terminalManagerWidget.deleteTerminal(terminalId);
|
|
183
|
+
}
|
|
184
|
+
async deleteGroupFromManager(groupId) {
|
|
185
|
+
const widget = await this.widget;
|
|
186
|
+
widget.deleteGroup(groupId);
|
|
187
|
+
}
|
|
188
|
+
async deletePageFromManager(pageId) {
|
|
189
|
+
const widget = await this.widget;
|
|
190
|
+
widget.deletePage(pageId);
|
|
191
|
+
}
|
|
192
|
+
async toggleRenameTerminalFromManager(entityId) {
|
|
193
|
+
const widget = await this.widget;
|
|
194
|
+
widget.toggleRenameTerminal(entityId);
|
|
195
|
+
}
|
|
196
|
+
registerMenus(menus) {
|
|
197
|
+
super.registerMenus(menus);
|
|
198
|
+
menus.registerMenuAction(terminal_manager_types_1.TERMINAL_MANAGER_TREE_CONTEXT_MENU, {
|
|
199
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_ADD_TERMINAL_TO_GROUP.id,
|
|
200
|
+
order: 'a',
|
|
201
|
+
});
|
|
202
|
+
menus.registerMenuAction(terminal_manager_types_1.TERMINAL_MANAGER_TREE_CONTEXT_MENU, {
|
|
203
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_RENAME_TERMINAL.id,
|
|
204
|
+
order: 'b',
|
|
205
|
+
});
|
|
206
|
+
menus.registerMenuAction(terminal_manager_types_1.TERMINAL_MANAGER_TREE_CONTEXT_MENU, {
|
|
207
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_TERMINAL.id,
|
|
208
|
+
order: 'c',
|
|
209
|
+
});
|
|
210
|
+
menus.registerMenuAction(terminal_manager_types_1.TERMINAL_MANAGER_TREE_CONTEXT_MENU, {
|
|
211
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_PAGE.id,
|
|
212
|
+
order: 'c',
|
|
213
|
+
});
|
|
214
|
+
menus.registerMenuAction(terminal_manager_types_1.TERMINAL_MANAGER_TREE_CONTEXT_MENU, {
|
|
215
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_GROUP.id,
|
|
216
|
+
order: 'c',
|
|
217
|
+
});
|
|
218
|
+
menus.registerMenuAction(terminal_manager_types_1.TerminalManagerTreeTypes.PAGE_NODE_MENU, {
|
|
219
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_NEW_TERMINAL_GROUP.id,
|
|
220
|
+
order: 'a',
|
|
221
|
+
});
|
|
222
|
+
menus.registerMenuAction(terminal_manager_types_1.TerminalManagerTreeTypes.PAGE_NODE_MENU, {
|
|
223
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_PAGE.id,
|
|
224
|
+
order: 'b',
|
|
225
|
+
});
|
|
226
|
+
menus.registerMenuAction(terminal_manager_types_1.TerminalManagerTreeTypes.TERMINAL_NODE_MENU, {
|
|
227
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_TERMINAL.id,
|
|
228
|
+
order: 'c',
|
|
229
|
+
});
|
|
230
|
+
menus.registerMenuAction(terminal_manager_types_1.TerminalManagerTreeTypes.GROUP_NODE_MENU, {
|
|
231
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_ADD_TERMINAL_TO_GROUP.id,
|
|
232
|
+
order: 'a',
|
|
233
|
+
});
|
|
234
|
+
menus.registerMenuAction(terminal_manager_types_1.TerminalManagerTreeTypes.GROUP_NODE_MENU, {
|
|
235
|
+
commandId: terminal_manager_types_1.TerminalManagerCommands.MANAGER_DELETE_GROUP.id,
|
|
236
|
+
order: 'c',
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
registerToolbarItems(toolbar) {
|
|
240
|
+
toolbar.registerItem({
|
|
241
|
+
id: terminal_manager_types_1.TerminalManagerCommands.MANAGER_NEW_PAGE_BOTTOM_TOOLBAR.id,
|
|
242
|
+
command: terminal_manager_types_1.TerminalManagerCommands.MANAGER_NEW_PAGE_BOTTOM_TOOLBAR.id,
|
|
243
|
+
});
|
|
244
|
+
toolbar.registerItem({
|
|
245
|
+
id: terminal_manager_types_1.TerminalManagerCommands.MANAGER_SHOW_TREE_TOOLBAR.id,
|
|
246
|
+
command: terminal_manager_types_1.TerminalManagerCommands.MANAGER_SHOW_TREE_TOOLBAR.id,
|
|
247
|
+
});
|
|
248
|
+
toolbar.registerItem({
|
|
249
|
+
id: terminal_manager_types_1.TerminalManagerCommands.MANAGER_CLEAR_ALL.id,
|
|
250
|
+
command: terminal_manager_types_1.TerminalManagerCommands.MANAGER_CLEAR_ALL.id,
|
|
251
|
+
});
|
|
252
|
+
const bottomPanelMaximizationChanged = core_1.Event.map(core_1.Event.filter(this.shell.onDidToggleMaximized, widget => widget === this.shell.bottomPanel), () => undefined);
|
|
253
|
+
toolbar.registerItem({
|
|
254
|
+
id: terminal_manager_types_1.TerminalManagerCommands.MANAGER_MAXIMIZE_BOTTOM_PANEL_TOOLBAR.id,
|
|
255
|
+
command: terminal_manager_types_1.TerminalManagerCommands.MANAGER_MAXIMIZE_BOTTOM_PANEL_TOOLBAR.id,
|
|
256
|
+
icon: (0, browser_1.codicon)('chevron-up'),
|
|
257
|
+
onDidChange: bottomPanelMaximizationChanged,
|
|
258
|
+
});
|
|
259
|
+
toolbar.registerItem({
|
|
260
|
+
id: terminal_manager_types_1.TerminalManagerCommands.MANAGER_MINIMIZE_BOTTOM_PANEL_TOOLBAR.id,
|
|
261
|
+
command: terminal_manager_types_1.TerminalManagerCommands.MANAGER_MINIMIZE_BOTTOM_PANEL_TOOLBAR.id,
|
|
262
|
+
icon: (0, browser_1.codicon)('chevron-down'),
|
|
263
|
+
onDidChange: bottomPanelMaximizationChanged,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
registerKeybindings(registry) {
|
|
267
|
+
registry.registerKeybinding({
|
|
268
|
+
command: terminal_manager_types_1.TerminalManagerCommands.MANAGER_MINIMIZE_BOTTOM_PANEL_TOOLBAR.id,
|
|
269
|
+
keybinding: 'alt+q',
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
exports.TerminalManagerFrontendViewContribution = TerminalManagerFrontendViewContribution;
|
|
274
|
+
exports.TerminalManagerFrontendViewContribution = TerminalManagerFrontendViewContribution = tslib_1.__decorate([
|
|
275
|
+
(0, inversify_1.injectable)(),
|
|
276
|
+
tslib_1.__metadata("design:paramtypes", [])
|
|
277
|
+
], TerminalManagerFrontendViewContribution);
|
|
278
|
+
//# sourceMappingURL=terminal-manager-frontend-view-contribution.js.map
|