@opensumi/ide-terminal-next 2.12.1-next-079c1930
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 +89 -0
- package/lib/browser/component/resize.delegate.d.ts +14 -0
- package/lib/browser/component/resize.delegate.d.ts.map +1 -0
- package/lib/browser/component/resize.delegate.js +47 -0
- package/lib/browser/component/resize.delegate.js.map +1 -0
- package/lib/browser/component/resize.module.less +55 -0
- package/lib/browser/component/resize.view.d.ts +16 -0
- package/lib/browser/component/resize.view.d.ts.map +1 -0
- package/lib/browser/component/resize.view.js +40 -0
- package/lib/browser/component/resize.view.js.map +1 -0
- package/lib/browser/component/tab.item.d.ts +7 -0
- package/lib/browser/component/tab.item.d.ts.map +1 -0
- package/lib/browser/component/tab.item.js +61 -0
- package/lib/browser/component/tab.item.js.map +1 -0
- package/lib/browser/component/tab.module.less +112 -0
- package/lib/browser/component/tab.view.d.ts +4 -0
- package/lib/browser/component/tab.view.d.ts.map +1 -0
- package/lib/browser/component/tab.view.js +30 -0
- package/lib/browser/component/tab.view.js.map +1 -0
- package/lib/browser/component/terminal.module.less +69 -0
- package/lib/browser/component/terminal.select.d.ts +4 -0
- package/lib/browser/component/terminal.select.d.ts.map +1 -0
- package/lib/browser/component/terminal.select.js +21 -0
- package/lib/browser/component/terminal.select.js.map +1 -0
- package/lib/browser/component/terminal.variable.d.ts +8 -0
- package/lib/browser/component/terminal.variable.d.ts.map +1 -0
- package/lib/browser/component/terminal.variable.js +44 -0
- package/lib/browser/component/terminal.variable.js.map +1 -0
- package/lib/browser/component/terminal.view.d.ts +5 -0
- package/lib/browser/component/terminal.view.d.ts.map +1 -0
- package/lib/browser/component/terminal.view.js +68 -0
- package/lib/browser/component/terminal.view.js.map +1 -0
- package/lib/browser/component/terminal.widget.d.ts +10 -0
- package/lib/browser/component/terminal.widget.d.ts.map +1 -0
- package/lib/browser/component/terminal.widget.js +51 -0
- package/lib/browser/component/terminal.widget.js.map +1 -0
- package/lib/browser/component/variable.module.less +15 -0
- package/lib/browser/contribution/index.d.ts +7 -0
- package/lib/browser/contribution/index.d.ts.map +1 -0
- package/lib/browser/contribution/index.js +10 -0
- package/lib/browser/contribution/index.js.map +1 -0
- package/lib/browser/contribution/terminal.command.d.ts +20 -0
- package/lib/browser/contribution/terminal.command.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.command.js +215 -0
- package/lib/browser/contribution/terminal.command.js.map +1 -0
- package/lib/browser/contribution/terminal.keybinding.d.ts +5 -0
- package/lib/browser/contribution/terminal.keybinding.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.keybinding.js +55 -0
- package/lib/browser/contribution/terminal.keybinding.js.map +1 -0
- package/lib/browser/contribution/terminal.lifecycle.d.ts +15 -0
- package/lib/browser/contribution/terminal.lifecycle.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.lifecycle.js +47 -0
- package/lib/browser/contribution/terminal.lifecycle.js.map +1 -0
- package/lib/browser/contribution/terminal.menu.d.ts +19 -0
- package/lib/browser/contribution/terminal.menu.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.menu.js +144 -0
- package/lib/browser/contribution/terminal.menu.js.map +1 -0
- package/lib/browser/contribution/terminal.network.d.ts +11 -0
- package/lib/browser/contribution/terminal.network.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.network.js +44 -0
- package/lib/browser/contribution/terminal.network.js.map +1 -0
- package/lib/browser/contribution/terminal.view.d.ts +7 -0
- package/lib/browser/contribution/terminal.view.d.ts.map +1 -0
- package/lib/browser/contribution/terminal.view.js +55 -0
- package/lib/browser/contribution/terminal.view.js.map +1 -0
- package/lib/browser/index.d.ts +10 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +105 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/links/base.d.ts +8 -0
- package/lib/browser/links/base.d.ts.map +1 -0
- package/lib/browser/links/base.js +13 -0
- package/lib/browser/links/base.js.map +1 -0
- package/lib/browser/links/external-link-provider-adapter.d.ts +18 -0
- package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -0
- package/lib/browser/links/external-link-provider-adapter.js +56 -0
- package/lib/browser/links/external-link-provider-adapter.js.map +1 -0
- package/lib/browser/links/helpers.d.ts +7 -0
- package/lib/browser/links/helpers.d.ts.map +1 -0
- package/lib/browser/links/helpers.js +129 -0
- package/lib/browser/links/helpers.js.map +1 -0
- package/lib/browser/links/link-manager.d.ts +61 -0
- package/lib/browser/links/link-manager.d.ts.map +1 -0
- package/lib/browser/links/link-manager.js +252 -0
- package/lib/browser/links/link-manager.js.map +1 -0
- package/lib/browser/links/link.d.ts +24 -0
- package/lib/browser/links/link.d.ts.map +1 -0
- package/lib/browser/links/link.js +92 -0
- package/lib/browser/links/link.js.map +1 -0
- package/lib/browser/links/protocol-link-provider.d.ts +11 -0
- package/lib/browser/links/protocol-link-provider.d.ts.map +1 -0
- package/lib/browser/links/protocol-link-provider.js +53 -0
- package/lib/browser/links/protocol-link-provider.js.map +1 -0
- package/lib/browser/links/validated-local-link-provider.d.ts +31 -0
- package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -0
- package/lib/browser/links/validated-local-link-provider.js +137 -0
- package/lib/browser/links/validated-local-link-provider.js.map +1 -0
- package/lib/browser/terminal.addon.d.ts +42 -0
- package/lib/browser/terminal.addon.d.ts.map +1 -0
- package/lib/browser/terminal.addon.js +169 -0
- package/lib/browser/terminal.addon.js.map +1 -0
- package/lib/browser/terminal.api.d.ts +34 -0
- package/lib/browser/terminal.api.d.ts.map +1 -0
- package/lib/browser/terminal.api.js +132 -0
- package/lib/browser/terminal.api.js.map +1 -0
- package/lib/browser/terminal.client.d.ts +114 -0
- package/lib/browser/terminal.client.d.ts.map +1 -0
- package/lib/browser/terminal.client.js +518 -0
- package/lib/browser/terminal.client.js.map +1 -0
- package/lib/browser/terminal.color.d.ts +20 -0
- package/lib/browser/terminal.color.d.ts.map +1 -0
- package/lib/browser/terminal.color.js +172 -0
- package/lib/browser/terminal.color.js.map +1 -0
- package/lib/browser/terminal.context-key.d.ts +10 -0
- package/lib/browser/terminal.context-key.d.ts.map +1 -0
- package/lib/browser/terminal.context-key.js +28 -0
- package/lib/browser/terminal.context-key.js.map +1 -0
- package/lib/browser/terminal.context-menu.d.ts +15 -0
- package/lib/browser/terminal.context-menu.d.ts.map +1 -0
- package/lib/browser/terminal.context-menu.js +75 -0
- package/lib/browser/terminal.context-menu.js.map +1 -0
- package/lib/browser/terminal.controller.d.ts +68 -0
- package/lib/browser/terminal.controller.d.ts.map +1 -0
- package/lib/browser/terminal.controller.js +367 -0
- package/lib/browser/terminal.controller.js.map +1 -0
- package/lib/browser/terminal.environment.service.d.ts +27 -0
- package/lib/browser/terminal.environment.service.d.ts.map +1 -0
- package/lib/browser/terminal.environment.service.js +144 -0
- package/lib/browser/terminal.environment.service.js.map +1 -0
- package/lib/browser/terminal.error.d.ts +10 -0
- package/lib/browser/terminal.error.d.ts.map +1 -0
- package/lib/browser/terminal.error.js +58 -0
- package/lib/browser/terminal.error.js.map +1 -0
- package/lib/browser/terminal.ext.host.proxy.d.ts +58 -0
- package/lib/browser/terminal.ext.host.proxy.d.ts.map +1 -0
- package/lib/browser/terminal.ext.host.proxy.js +104 -0
- package/lib/browser/terminal.ext.host.proxy.js.map +1 -0
- package/lib/browser/terminal.input.d.ts +6 -0
- package/lib/browser/terminal.input.d.ts.map +1 -0
- package/lib/browser/terminal.input.js +32 -0
- package/lib/browser/terminal.input.js.map +1 -0
- package/lib/browser/terminal.network.d.ts +32 -0
- package/lib/browser/terminal.network.d.ts.map +1 -0
- package/lib/browser/terminal.network.js +150 -0
- package/lib/browser/terminal.network.js.map +1 -0
- package/lib/browser/terminal.preference.d.ts +26 -0
- package/lib/browser/terminal.preference.d.ts.map +1 -0
- package/lib/browser/terminal.preference.js +80 -0
- package/lib/browser/terminal.preference.js.map +1 -0
- package/lib/browser/terminal.render.d.ts +13 -0
- package/lib/browser/terminal.render.d.ts.map +1 -0
- package/lib/browser/terminal.render.js +25 -0
- package/lib/browser/terminal.render.js.map +1 -0
- package/lib/browser/terminal.restore.d.ts +10 -0
- package/lib/browser/terminal.restore.d.ts.map +1 -0
- package/lib/browser/terminal.restore.js +41 -0
- package/lib/browser/terminal.restore.js.map +1 -0
- package/lib/browser/terminal.search.d.ts +15 -0
- package/lib/browser/terminal.search.d.ts.map +1 -0
- package/lib/browser/terminal.search.js +53 -0
- package/lib/browser/terminal.search.js.map +1 -0
- package/lib/browser/terminal.service.d.ts +60 -0
- package/lib/browser/terminal.service.d.ts.map +1 -0
- package/lib/browser/terminal.service.js +212 -0
- package/lib/browser/terminal.service.js.map +1 -0
- package/lib/browser/terminal.theme.d.ts +7 -0
- package/lib/browser/terminal.theme.d.ts.map +1 -0
- package/lib/browser/terminal.theme.js +50 -0
- package/lib/browser/terminal.theme.js.map +1 -0
- package/lib/browser/terminal.view.d.ts +99 -0
- package/lib/browser/terminal.view.d.ts.map +1 -0
- package/lib/browser/terminal.view.js +358 -0
- package/lib/browser/terminal.view.js.map +1 -0
- package/lib/common/api.d.ts +20 -0
- package/lib/common/api.d.ts.map +1 -0
- package/lib/common/api.js +5 -0
- package/lib/common/api.js.map +1 -0
- package/lib/common/client.d.ts +163 -0
- package/lib/common/client.d.ts.map +1 -0
- package/lib/common/client.js +5 -0
- package/lib/common/client.js.map +1 -0
- package/lib/common/commands.d.ts +92 -0
- package/lib/common/commands.d.ts.map +1 -0
- package/lib/common/commands.js +97 -0
- package/lib/common/commands.js.map +1 -0
- package/lib/common/controller.d.ts +86 -0
- package/lib/common/controller.d.ts.map +1 -0
- package/lib/common/controller.js +7 -0
- package/lib/common/controller.js.map +1 -0
- package/lib/common/environmentVariable.d.ts +118 -0
- package/lib/common/environmentVariable.d.ts.map +1 -0
- package/lib/common/environmentVariable.js +27 -0
- package/lib/common/environmentVariable.js.map +1 -0
- package/lib/common/environmentVariableCollection.d.ts +10 -0
- package/lib/common/environmentVariableCollection.d.ts.map +1 -0
- package/lib/common/environmentVariableCollection.js +136 -0
- package/lib/common/environmentVariableCollection.js.map +1 -0
- package/lib/common/error.d.ts +30 -0
- package/lib/common/error.d.ts.map +1 -0
- package/lib/common/error.js +5 -0
- package/lib/common/error.js.map +1 -0
- package/lib/common/extension.d.ts +108 -0
- package/lib/common/extension.d.ts.map +1 -0
- package/lib/common/extension.js +52 -0
- package/lib/common/extension.js.map +1 -0
- package/lib/common/index.d.ts +17 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +21 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/link-computer.d.ts +56 -0
- package/lib/common/link-computer.d.ts.map +1 -0
- package/lib/common/link-computer.js +273 -0
- package/lib/common/link-computer.js.map +1 -0
- package/lib/common/menu.d.ts +5 -0
- package/lib/common/menu.d.ts.map +1 -0
- package/lib/common/menu.js +9 -0
- package/lib/common/menu.js.map +1 -0
- package/lib/common/network.d.ts +48 -0
- package/lib/common/network.d.ts.map +1 -0
- package/lib/common/network.js +10 -0
- package/lib/common/network.js.map +1 -0
- package/lib/common/preference.d.ts +33 -0
- package/lib/common/preference.d.ts.map +1 -0
- package/lib/common/preference.js +18 -0
- package/lib/common/preference.js.map +1 -0
- package/lib/common/pty.d.ts +205 -0
- package/lib/common/pty.d.ts.map +1 -0
- package/lib/common/pty.js +8 -0
- package/lib/common/pty.js.map +1 -0
- package/lib/common/render.d.ts +24 -0
- package/lib/common/render.d.ts.map +1 -0
- package/lib/common/render.js +10 -0
- package/lib/common/render.js.map +1 -0
- package/lib/common/resize.d.ts +39 -0
- package/lib/common/resize.d.ts.map +1 -0
- package/lib/common/resize.js +3 -0
- package/lib/common/resize.js.map +1 -0
- package/lib/common/restore.d.ts +6 -0
- package/lib/common/restore.d.ts.map +1 -0
- package/lib/common/restore.js +5 -0
- package/lib/common/restore.js.map +1 -0
- package/lib/common/service.d.ts +88 -0
- package/lib/common/service.d.ts.map +1 -0
- package/lib/common/service.js +6 -0
- package/lib/common/service.js.map +1 -0
- package/lib/common/shell.d.ts +10 -0
- package/lib/common/shell.d.ts.map +1 -0
- package/lib/common/shell.js +14 -0
- package/lib/common/shell.js.map +1 -0
- package/lib/common/theme.d.ts +6 -0
- package/lib/common/theme.d.ts.map +1 -0
- package/lib/common/theme.js +5 -0
- package/lib/common/theme.js.map +1 -0
- package/lib/common/utils.d.ts +4 -0
- package/lib/common/utils.d.ts.map +1 -0
- package/lib/common/utils.js +21 -0
- package/lib/common/utils.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/node/index.d.ts +10 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +35 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/pty.d.ts +11 -0
- package/lib/node/pty.d.ts.map +1 -0
- package/lib/node/pty.js +54 -0
- package/lib/node/pty.js.map +1 -0
- package/lib/node/shell.d.ts +3 -0
- package/lib/node/shell.d.ts.map +1 -0
- package/lib/node/shell.js +28 -0
- package/lib/node/shell.js.map +1 -0
- package/lib/node/terminal.service.client.d.ts +34 -0
- package/lib/node/terminal.service.client.d.ts.map +1 -0
- package/lib/node/terminal.service.client.js +111 -0
- package/lib/node/terminal.service.client.js.map +1 -0
- package/lib/node/terminal.service.d.ts +28 -0
- package/lib/node/terminal.service.d.ts.map +1 -0
- package/lib/node/terminal.service.js +136 -0
- package/lib/node/terminal.service.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TerminalController = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const mobx_1 = require("mobx");
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
+
const ide_main_layout_1 = require("@opensumi/ide-main-layout");
|
|
9
|
+
const ide_theme_1 = require("@opensumi/ide-theme");
|
|
10
|
+
const ide_editor_1 = require("@opensumi/ide-editor");
|
|
11
|
+
const common_1 = require("../common");
|
|
12
|
+
const terminal_view_1 = require("./terminal.view");
|
|
13
|
+
const terminal_context_key_1 = require("./terminal.context-key");
|
|
14
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
15
|
+
let TerminalController = class TerminalController extends ide_core_common_1.WithEventBus {
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this._onDidOpenTerminal = new ide_core_common_1.Emitter();
|
|
19
|
+
this._onDidCloseTerminal = new ide_core_common_1.Emitter();
|
|
20
|
+
this._onDidChangeActiveTerminal = new ide_core_common_1.Emitter();
|
|
21
|
+
this._ready = new ide_core_common_1.Deferred();
|
|
22
|
+
this._linkProviders = new Set();
|
|
23
|
+
this._linkProviderDisposables = new Map();
|
|
24
|
+
this.onDidOpenTerminal = this._onDidOpenTerminal.event;
|
|
25
|
+
this.onDidCloseTerminal = this._onDidCloseTerminal.event;
|
|
26
|
+
this.onDidChangeActiveTerminal = this._onDidChangeActiveTerminal.event;
|
|
27
|
+
this._onInstanceRequestStartExtensionTerminal = new ide_core_common_1.Emitter();
|
|
28
|
+
this.onInstanceRequestStartExtensionTerminal = this._onInstanceRequestStartExtensionTerminal.event;
|
|
29
|
+
this._focus = false;
|
|
30
|
+
this._clients = new Map();
|
|
31
|
+
}
|
|
32
|
+
get clients() {
|
|
33
|
+
return this._clients;
|
|
34
|
+
}
|
|
35
|
+
get focused() {
|
|
36
|
+
return this._focus;
|
|
37
|
+
}
|
|
38
|
+
get ready() {
|
|
39
|
+
return this._ready;
|
|
40
|
+
}
|
|
41
|
+
get activeClient() {
|
|
42
|
+
if (this._activeClientId) {
|
|
43
|
+
return this._clients.get(this._activeClientId);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
get contextKeyService() {
|
|
47
|
+
if (this.terminalContextKey) {
|
|
48
|
+
return this.terminalContextKey.service;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
_createClientOrIgnore(widget, options = {}) {
|
|
52
|
+
if (this._clients.has(widget.id)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
return this._createClient(widget, options);
|
|
56
|
+
}
|
|
57
|
+
_createClient(widget, options = {}) {
|
|
58
|
+
const client = this.clientFactory(widget, options);
|
|
59
|
+
this._clients.set(client.id, client);
|
|
60
|
+
client.addDispose(client.onExit((e) => {
|
|
61
|
+
this._onDidCloseTerminal.fire({ id: client.id, code: e.code });
|
|
62
|
+
}));
|
|
63
|
+
client.addDispose({
|
|
64
|
+
dispose: () => {
|
|
65
|
+
this._clients.delete(client.id);
|
|
66
|
+
this._onDidCloseTerminal.fire({ id: client.id, code: -1 });
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
client.addDispose(client.onLinksReady(() => {
|
|
70
|
+
this._setInstanceLinkProviders(client);
|
|
71
|
+
}));
|
|
72
|
+
this._onDidOpenTerminal.fire({
|
|
73
|
+
id: client.id,
|
|
74
|
+
name: client.name,
|
|
75
|
+
isActive: false,
|
|
76
|
+
});
|
|
77
|
+
this.terminalView.selectWidget(widget.id);
|
|
78
|
+
return client;
|
|
79
|
+
}
|
|
80
|
+
_disposeClient(widget) {
|
|
81
|
+
const client = this.findClientFromWidgetId(widget.id);
|
|
82
|
+
client && client.dispose();
|
|
83
|
+
}
|
|
84
|
+
_createOneGroup() {
|
|
85
|
+
const index = this.terminalView.createGroup();
|
|
86
|
+
const group = this.terminalView.getGroup(index);
|
|
87
|
+
return { group, index };
|
|
88
|
+
}
|
|
89
|
+
_reset() {
|
|
90
|
+
const { group } = this._createOneGroup();
|
|
91
|
+
const widget = this.terminalView.createWidget(group);
|
|
92
|
+
return widget;
|
|
93
|
+
}
|
|
94
|
+
async recovery(history) {
|
|
95
|
+
let currentWidgetId = '';
|
|
96
|
+
const { groups, current } = history;
|
|
97
|
+
const ids = [];
|
|
98
|
+
groups.forEach((widgets) => ids.concat(widgets));
|
|
99
|
+
const checked = await this.service.check(ids.map((id) => typeof id === 'string' ? id : id.clientId));
|
|
100
|
+
if (!checked) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
for (const widgets of groups) {
|
|
104
|
+
const { group } = this._createOneGroup();
|
|
105
|
+
if (!widgets) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
for (const sessionId of widgets) {
|
|
109
|
+
if (!sessionId) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* widget 创建完成后会同时创建 client
|
|
114
|
+
*/
|
|
115
|
+
const widget = this.terminalView.createWidget(group, typeof sessionId === 'string' ? sessionId : sessionId.clientId);
|
|
116
|
+
const client = this.clientFactory(widget, {});
|
|
117
|
+
this._clients.set(client.id, client);
|
|
118
|
+
if (current === client.id) {
|
|
119
|
+
currentWidgetId = widget.id;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 等待预先连接成功
|
|
123
|
+
*/
|
|
124
|
+
client.attached.promise.then(() => {
|
|
125
|
+
widget.name = client.name;
|
|
126
|
+
/**
|
|
127
|
+
* 不成功的时候则认为这个连接已经失效了,去掉这个 widget
|
|
128
|
+
*/
|
|
129
|
+
if (!client.ready) {
|
|
130
|
+
this.terminalView.removeWidget(widget.id);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const selectedIndex = this.terminalView.groups.findIndex((group) => group.widgetsMap.has(currentWidgetId));
|
|
136
|
+
if (selectedIndex > -1 && currentWidgetId) {
|
|
137
|
+
this.terminalView.selectWidget(currentWidgetId);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
initContextKey(dom) {
|
|
141
|
+
if (!this.terminalContextKey) {
|
|
142
|
+
this.terminalContextKey = this.injector.get(terminal_context_key_1.TerminalContextKey, [dom]);
|
|
143
|
+
this.terminalContextKey.isTerminalFocused.set(this._focus);
|
|
144
|
+
this.terminalContextKey.isTerminalViewInitialized.set(true);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
firstInitialize() {
|
|
148
|
+
this._tabbarHandler = this.layoutService.getTabbarHandler(common_1.TerminalContainerId);
|
|
149
|
+
this.themeBackground = this.terminalTheme.terminalTheme.background || '';
|
|
150
|
+
this.addDispose(this.terminalView.onWidgetCreated((widget) => {
|
|
151
|
+
this._createClientOrIgnore(widget, {});
|
|
152
|
+
}));
|
|
153
|
+
this.addDispose(this.terminalView.onWidgetDisposed((widget) => {
|
|
154
|
+
this._disposeClient(widget);
|
|
155
|
+
}));
|
|
156
|
+
this.addDispose(this.terminalView.onWidgetEmpty(() => {
|
|
157
|
+
this.hideTerminalPanel();
|
|
158
|
+
}));
|
|
159
|
+
this.addDispose(this.terminalView.onWidgetSelected((widget) => {
|
|
160
|
+
const client = this.findClientFromWidgetId(widget.id);
|
|
161
|
+
if (client) {
|
|
162
|
+
this._onDidChangeActiveTerminal.fire(client.id);
|
|
163
|
+
if (client.ready) {
|
|
164
|
+
// 事件是同步触发的,事件发出时,界面可能还没更新完成,所以加个延迟
|
|
165
|
+
// 当前选中的 client 已经完成渲染,聚焦
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
client.focus();
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
this._activeClientId = client === null || client === void 0 ? void 0 : client.id;
|
|
172
|
+
}));
|
|
173
|
+
this.addDispose(this.themeService.onThemeChange((_) => {
|
|
174
|
+
this._clients.forEach((client) => {
|
|
175
|
+
client.updateTheme();
|
|
176
|
+
});
|
|
177
|
+
this.themeBackground = this.terminalTheme.terminalTheme.background || '';
|
|
178
|
+
}));
|
|
179
|
+
this.addDispose(this.eventBus.on(ide_core_browser_1.ResizeEvent, (e) => {
|
|
180
|
+
if ((this._tabbarHandler && this._tabbarHandler.isActivated()) &&
|
|
181
|
+
e.payload.slotLocation === (0, ide_core_browser_1.getSlotLocation)('@opensumi/ide-terminal-next', this.config.layoutConfig)) {
|
|
182
|
+
this.terminalView.resize();
|
|
183
|
+
}
|
|
184
|
+
}));
|
|
185
|
+
if (this._tabbarHandler) {
|
|
186
|
+
this.addDispose(this._tabbarHandler.onActivate(() => {
|
|
187
|
+
if (this.terminalView.empty()) {
|
|
188
|
+
const current = this._reset();
|
|
189
|
+
this.terminalView.selectWidget(current.id);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
this.terminalView.selectGroup(this.terminalView.currentGroupIndex > -1 ? this.terminalView.currentGroupIndex : 0);
|
|
193
|
+
}
|
|
194
|
+
}));
|
|
195
|
+
this.addDispose(this._tabbarHandler.onInActivate(() => {
|
|
196
|
+
if (this.editorService.currentEditor) {
|
|
197
|
+
this.editorService.currentEditor.monacoEditor.focus();
|
|
198
|
+
}
|
|
199
|
+
}));
|
|
200
|
+
if (this._tabbarHandler.isActivated()) {
|
|
201
|
+
if (this.terminalView.empty()) {
|
|
202
|
+
const widget = this._reset();
|
|
203
|
+
this.terminalView.selectWidget(widget.id);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
this.terminalView.selectGroup(this.terminalView.currentGroupIndex > -1 ? this.terminalView.currentGroupIndex : 0);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
this.terminalContextKey.isTerminalViewInitialized.set(true);
|
|
211
|
+
this._ready.resolve();
|
|
212
|
+
}
|
|
213
|
+
async reconnect() {
|
|
214
|
+
const clients = Array.from(this._clients.values());
|
|
215
|
+
const canReconnected = await this.service.check(clients.map((client) => client.id));
|
|
216
|
+
if (!canReconnected) {
|
|
217
|
+
this.terminalView.clear();
|
|
218
|
+
this._reset();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
focus() {
|
|
222
|
+
this._focus = true;
|
|
223
|
+
this.terminalContextKey.isTerminalFocused.set(true);
|
|
224
|
+
}
|
|
225
|
+
blur() {
|
|
226
|
+
this._focus = false;
|
|
227
|
+
this.terminalContextKey.isTerminalFocused.set(false);
|
|
228
|
+
}
|
|
229
|
+
toJSON() {
|
|
230
|
+
const groups = [];
|
|
231
|
+
const cClient = this._clients.get(this.terminalView.currentWidgetId);
|
|
232
|
+
this.terminalView.groups.forEach((wGroup) => {
|
|
233
|
+
const group = [];
|
|
234
|
+
wGroup.widgets.forEach((widget) => {
|
|
235
|
+
const client = this._clients.get(widget.id);
|
|
236
|
+
if (!client) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
group.push(client.id);
|
|
240
|
+
});
|
|
241
|
+
if (group.length > 0) {
|
|
242
|
+
groups.push(group);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
return {
|
|
246
|
+
groups,
|
|
247
|
+
current: cClient && cClient.id,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
findClientFromWidgetId(widgetId) {
|
|
251
|
+
return this._clients.get(widgetId);
|
|
252
|
+
}
|
|
253
|
+
createClientWithWidget(options) {
|
|
254
|
+
const widgetId = this.service.generateSessionId();
|
|
255
|
+
const { group } = this._createOneGroup();
|
|
256
|
+
const widget = this.terminalView.createWidget(group, widgetId, !options.closeWhenExited, true);
|
|
257
|
+
if (options.beforeCreate && typeof options.beforeCreate === 'function') {
|
|
258
|
+
options.beforeCreate(widgetId);
|
|
259
|
+
}
|
|
260
|
+
return this._createClient(widget, options);
|
|
261
|
+
}
|
|
262
|
+
clearCurrentGroup() {
|
|
263
|
+
this.terminalView.currentGroup && this.terminalView.currentGroup.widgets.forEach((widget) => {
|
|
264
|
+
const client = this._clients.get(widget.id);
|
|
265
|
+
if (client) {
|
|
266
|
+
client.clear();
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
clearAllGroups() {
|
|
271
|
+
this._clients.forEach((client) => {
|
|
272
|
+
if (client) {
|
|
273
|
+
client.clear();
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
showTerminalPanel() {
|
|
278
|
+
if (this._tabbarHandler) {
|
|
279
|
+
this._tabbarHandler.activate();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
hideTerminalPanel() {
|
|
283
|
+
if (this._tabbarHandler && this._tabbarHandler.isActivated()) {
|
|
284
|
+
this._tabbarHandler.deactivate();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
requestStartExtensionTerminal(proxy, cols, rows) {
|
|
288
|
+
// The initial request came from the extension host, no need to wait for it
|
|
289
|
+
return new Promise((callback) => {
|
|
290
|
+
this._onInstanceRequestStartExtensionTerminal.fire({ proxy, cols, rows, callback });
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
registerLinkProvider(linkProvider) {
|
|
294
|
+
const disposable = new ide_core_common_1.DisposableStore();
|
|
295
|
+
this._linkProviders.add(linkProvider);
|
|
296
|
+
for (const client of this._clients.values()) {
|
|
297
|
+
if (client.areLinksReady) {
|
|
298
|
+
disposable.add(client.registerLinkProvider(linkProvider));
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
this._linkProviderDisposables.set(linkProvider, disposable);
|
|
302
|
+
return {
|
|
303
|
+
dispose: () => {
|
|
304
|
+
const disposable = this._linkProviderDisposables.get(linkProvider);
|
|
305
|
+
disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
|
|
306
|
+
this._linkProviders.delete(linkProvider);
|
|
307
|
+
},
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
_setInstanceLinkProviders(instance) {
|
|
311
|
+
for (const linkProvider of this._linkProviders) {
|
|
312
|
+
const disposable = this._linkProviderDisposables.get(linkProvider);
|
|
313
|
+
const provider = instance.registerLinkProvider(linkProvider);
|
|
314
|
+
disposable === null || disposable === void 0 ? void 0 : disposable.add(provider);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
(0, tslib_1.__decorate)([
|
|
319
|
+
(0, di_1.Autowired)(ide_main_layout_1.IMainLayoutService),
|
|
320
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
321
|
+
], TerminalController.prototype, "layoutService", void 0);
|
|
322
|
+
(0, tslib_1.__decorate)([
|
|
323
|
+
(0, di_1.Autowired)(ide_theme_1.IThemeService),
|
|
324
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
325
|
+
], TerminalController.prototype, "themeService", void 0);
|
|
326
|
+
(0, tslib_1.__decorate)([
|
|
327
|
+
(0, di_1.Autowired)(ide_editor_1.WorkbenchEditorService),
|
|
328
|
+
(0, tslib_1.__metadata)("design:type", ide_editor_1.WorkbenchEditorService)
|
|
329
|
+
], TerminalController.prototype, "editorService", void 0);
|
|
330
|
+
(0, tslib_1.__decorate)([
|
|
331
|
+
(0, di_1.Autowired)(common_1.ITerminalTheme),
|
|
332
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
333
|
+
], TerminalController.prototype, "terminalTheme", void 0);
|
|
334
|
+
(0, tslib_1.__decorate)([
|
|
335
|
+
(0, di_1.Autowired)(common_1.ITerminalGroupViewService),
|
|
336
|
+
(0, tslib_1.__metadata)("design:type", terminal_view_1.TerminalGroupViewService)
|
|
337
|
+
], TerminalController.prototype, "terminalView", void 0);
|
|
338
|
+
(0, tslib_1.__decorate)([
|
|
339
|
+
(0, di_1.Autowired)(common_1.ITerminalClientFactory),
|
|
340
|
+
(0, tslib_1.__metadata)("design:type", Function)
|
|
341
|
+
], TerminalController.prototype, "clientFactory", void 0);
|
|
342
|
+
(0, tslib_1.__decorate)([
|
|
343
|
+
(0, di_1.Autowired)(common_1.ITerminalInternalService),
|
|
344
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
345
|
+
], TerminalController.prototype, "service", void 0);
|
|
346
|
+
(0, tslib_1.__decorate)([
|
|
347
|
+
(0, di_1.Autowired)(common_1.ITerminalErrorService),
|
|
348
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
349
|
+
], TerminalController.prototype, "errorService", void 0);
|
|
350
|
+
(0, tslib_1.__decorate)([
|
|
351
|
+
(0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
|
|
352
|
+
(0, tslib_1.__metadata)("design:type", di_1.Injector)
|
|
353
|
+
], TerminalController.prototype, "injector", void 0);
|
|
354
|
+
(0, tslib_1.__decorate)([
|
|
355
|
+
(0, di_1.Autowired)(ide_core_browser_1.AppConfig),
|
|
356
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
357
|
+
], TerminalController.prototype, "config", void 0);
|
|
358
|
+
(0, tslib_1.__decorate)([
|
|
359
|
+
mobx_1.observable,
|
|
360
|
+
(0, tslib_1.__metadata)("design:type", String)
|
|
361
|
+
], TerminalController.prototype, "themeBackground", void 0);
|
|
362
|
+
TerminalController = (0, tslib_1.__decorate)([
|
|
363
|
+
(0, di_1.Injectable)(),
|
|
364
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
365
|
+
], TerminalController);
|
|
366
|
+
exports.TerminalController = TerminalController;
|
|
367
|
+
//# sourceMappingURL=terminal.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.controller.js","sourceRoot":"","sources":["../../src/browser/terminal.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Event } from '@opensumi/ide-core-common';
|
|
2
|
+
import { IEnvironmentVariableCollectionWithPersistence, IEnvironmentVariableService, IMergedEnvironmentVariableCollection } from '../common/environmentVariable';
|
|
3
|
+
import { IDialogService } from '@opensumi/ide-overlay/lib/common';
|
|
4
|
+
export declare const ENVIRONMENT_VARIABLE_COLLECTIONS_KEY = "terminal.integrated.environmentVariableCollections";
|
|
5
|
+
export declare class TerminalEnvironmentService implements IEnvironmentVariableService {
|
|
6
|
+
collections: Map<string, IEnvironmentVariableCollectionWithPersistence>;
|
|
7
|
+
mergedCollection: IMergedEnvironmentVariableCollection | undefined;
|
|
8
|
+
private previousMergedCollection;
|
|
9
|
+
private statusBarEntryAccessor;
|
|
10
|
+
private readonly _onDidChangeCollections;
|
|
11
|
+
get onDidChangeCollections(): Event<IMergedEnvironmentVariableCollection>;
|
|
12
|
+
private storageService;
|
|
13
|
+
private readonly statusbarService;
|
|
14
|
+
protected dialogService: IDialogService;
|
|
15
|
+
private readonly commandService;
|
|
16
|
+
private readonly logger;
|
|
17
|
+
initEnvironmentVariableCollections(): Promise<void>;
|
|
18
|
+
set(extensionIdentifier: string, collection: IEnvironmentVariableCollectionWithPersistence): void;
|
|
19
|
+
delete(extensionIdentifier: string): void;
|
|
20
|
+
private resolveMergedCollection;
|
|
21
|
+
private onDidClickStatusBarEntry;
|
|
22
|
+
private updateStatusBarMessage;
|
|
23
|
+
private notifyCollectionUpdates;
|
|
24
|
+
private updateCollections;
|
|
25
|
+
private persistCollections;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=terminal.environment.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.environment.service.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.environment.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,EAAqB,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAEL,6CAA6C,EAC7C,2BAA2B,EAC3B,oCAAoC,EAKrC,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAQlE,eAAO,MAAM,oCAAoC,uDAAuD,CAAC;AASzG,qBACa,0BAA2B,YAAW,2BAA2B;IAC5E,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,6CAA6C,CAAC,CAAa;IAEpF,gBAAgB,EAAE,oCAAoC,GAAG,SAAS,CAAC;IAEnE,OAAO,CAAC,wBAAwB,CAAmD;IAEnF,OAAO,CAAC,sBAAsB,CAAqC;IAEnE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAuD;IAC/F,IAAI,sBAAsB,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAExE;IAGD,OAAO,CAAC,cAAc,CAA2B;IAGjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,SAAS,CAAC,aAAa,EAAE,cAAc,CAAC;IAGxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAGhD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAE3B,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBzD,GAAG,CACD,mBAAmB,EAAE,MAAM,EAC3B,UAAU,EAAE,6CAA6C,GACxD,IAAI;IAKP,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI;IAKzC,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,kBAAkB;CAmB3B"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TerminalEnvironmentService = exports.ENVIRONMENT_VARIABLE_COLLECTIONS_KEY = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
+
const environmentVariable_1 = require("../common/environmentVariable");
|
|
9
|
+
const common_1 = require("@opensumi/ide-workspace/lib/common");
|
|
10
|
+
const common_2 = require("@opensumi/ide-status-bar/lib/common");
|
|
11
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
12
|
+
const common_3 = require("@opensumi/ide-overlay/lib/common");
|
|
13
|
+
const environmentVariableCollection_1 = require("../common/environmentVariableCollection");
|
|
14
|
+
const commands_1 = require("../common/commands");
|
|
15
|
+
const terminal_variable_1 = require("./component/terminal.variable");
|
|
16
|
+
const throttle = require("lodash.throttle");
|
|
17
|
+
const debounce = require("lodash.debounce");
|
|
18
|
+
exports.ENVIRONMENT_VARIABLE_COLLECTIONS_KEY = 'terminal.integrated.environmentVariableCollections';
|
|
19
|
+
const ENVIRONMENT_VARIABLE_CHANGED_STATUS = 'terminal.environmentVariableCollections.changed';
|
|
20
|
+
let TerminalEnvironmentService = class TerminalEnvironmentService {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.collections = new Map();
|
|
23
|
+
this._onDidChangeCollections = new ide_core_common_1.Emitter();
|
|
24
|
+
}
|
|
25
|
+
get onDidChangeCollections() {
|
|
26
|
+
return this._onDidChangeCollections.event;
|
|
27
|
+
}
|
|
28
|
+
async initEnvironmentVariableCollections() {
|
|
29
|
+
const serializedCollections = await this.storageService.getData(exports.ENVIRONMENT_VARIABLE_COLLECTIONS_KEY);
|
|
30
|
+
if (serializedCollections) {
|
|
31
|
+
try {
|
|
32
|
+
const collectionsJson = JSON.parse(serializedCollections);
|
|
33
|
+
collectionsJson.forEach((c) => {
|
|
34
|
+
this.collections.set(c.extensionIdentifier, {
|
|
35
|
+
persistent: true,
|
|
36
|
+
map: (0, environmentVariable_1.deserializeEnvironmentVariableCollection)(c.collection),
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
this.logger.warn(`parse environment variable collection error: \n ${err.message}, data: \n ${serializedCollections}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this.mergedCollection = this.resolveMergedCollection();
|
|
45
|
+
this.previousMergedCollection = undefined;
|
|
46
|
+
}
|
|
47
|
+
set(extensionIdentifier, collection) {
|
|
48
|
+
this.collections.set(extensionIdentifier, collection);
|
|
49
|
+
this.updateCollections();
|
|
50
|
+
}
|
|
51
|
+
delete(extensionIdentifier) {
|
|
52
|
+
this.collections.delete(extensionIdentifier);
|
|
53
|
+
this.updateCollections();
|
|
54
|
+
}
|
|
55
|
+
resolveMergedCollection() {
|
|
56
|
+
return new environmentVariableCollection_1.MergedEnvironmentVariableCollection(this.collections);
|
|
57
|
+
}
|
|
58
|
+
onDidClickStatusBarEntry(diff) {
|
|
59
|
+
this.dialogService.warning(react_1.default.createElement(terminal_variable_1.TerminalVariable, { diff }), [
|
|
60
|
+
(0, ide_core_common_1.localize)('dialog.file.close'),
|
|
61
|
+
(0, ide_core_common_1.localize)('terminal.relaunch'),
|
|
62
|
+
]).then((res) => {
|
|
63
|
+
var _a;
|
|
64
|
+
if (res && res === (0, ide_core_common_1.localize)('terminal.relaunch')) {
|
|
65
|
+
this.commandService.executeCommand(commands_1.TERMINAL_COMMANDS.RE_LAUNCH.id);
|
|
66
|
+
(_a = this.statusBarEntryAccessor) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
67
|
+
this.statusBarEntryAccessor = undefined;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
updateStatusBarMessage() {
|
|
72
|
+
var _a;
|
|
73
|
+
if (!this.mergedCollection) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const diff = (_a = this.previousMergedCollection) === null || _a === void 0 ? void 0 : _a.diff(this.mergedCollection);
|
|
77
|
+
if (!diff) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (this.statusBarEntryAccessor) {
|
|
81
|
+
this.statusBarEntryAccessor.dispose();
|
|
82
|
+
this.statusBarEntryAccessor = undefined;
|
|
83
|
+
}
|
|
84
|
+
const changes = [];
|
|
85
|
+
this.mergedCollection.map.forEach((mutators, variable) => {
|
|
86
|
+
mutators.forEach((mutator) => changes.push((0, environmentVariable_1.mutatorTypeLabel)(mutator.type, mutator.value, variable)));
|
|
87
|
+
});
|
|
88
|
+
this.statusBarEntryAccessor = this.statusbarService.addElement(ENVIRONMENT_VARIABLE_CHANGED_STATUS, {
|
|
89
|
+
iconClass: (0, ide_core_browser_1.getIcon)('warning-circle-fill'),
|
|
90
|
+
color: 'orange',
|
|
91
|
+
alignment: ide_core_browser_1.StatusBarAlignment.RIGHT,
|
|
92
|
+
tooltip: (0, ide_core_common_1.localize)('terminal.environment.changed') + '\n\n```\n' + changes.join('\n') + '\n```',
|
|
93
|
+
onClick: () => this.onDidClickStatusBarEntry(diff),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
notifyCollectionUpdates() {
|
|
97
|
+
this._onDidChangeCollections.fire(this.mergedCollection);
|
|
98
|
+
this.updateStatusBarMessage();
|
|
99
|
+
}
|
|
100
|
+
updateCollections() {
|
|
101
|
+
throttle(this.persistCollections.bind(this), 100)();
|
|
102
|
+
this.previousMergedCollection = this.mergedCollection;
|
|
103
|
+
this.mergedCollection = this.resolveMergedCollection();
|
|
104
|
+
debounce(this.notifyCollectionUpdates.bind(this), 1000)();
|
|
105
|
+
}
|
|
106
|
+
persistCollections() {
|
|
107
|
+
const collectionsJson = [];
|
|
108
|
+
this.collections.forEach((collection, extensionIdentifier) => {
|
|
109
|
+
if (collection.persistent) {
|
|
110
|
+
collectionsJson.push({
|
|
111
|
+
extensionIdentifier,
|
|
112
|
+
collection: (0, environmentVariable_1.serializeEnvironmentVariableCollection)(this.collections.get(extensionIdentifier).map),
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
const stringifiedJson = JSON.stringify(collectionsJson);
|
|
117
|
+
this.storageService.setData(exports.ENVIRONMENT_VARIABLE_COLLECTIONS_KEY, stringifiedJson);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
(0, tslib_1.__decorate)([
|
|
121
|
+
(0, di_1.Autowired)(common_1.IWorkspaceStorageService),
|
|
122
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
123
|
+
], TerminalEnvironmentService.prototype, "storageService", void 0);
|
|
124
|
+
(0, tslib_1.__decorate)([
|
|
125
|
+
(0, di_1.Autowired)(common_2.IStatusBarService),
|
|
126
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
127
|
+
], TerminalEnvironmentService.prototype, "statusbarService", void 0);
|
|
128
|
+
(0, tslib_1.__decorate)([
|
|
129
|
+
(0, di_1.Autowired)(common_3.IDialogService),
|
|
130
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
131
|
+
], TerminalEnvironmentService.prototype, "dialogService", void 0);
|
|
132
|
+
(0, tslib_1.__decorate)([
|
|
133
|
+
(0, di_1.Autowired)(ide_core_common_1.CommandService),
|
|
134
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
135
|
+
], TerminalEnvironmentService.prototype, "commandService", void 0);
|
|
136
|
+
(0, tslib_1.__decorate)([
|
|
137
|
+
(0, di_1.Autowired)(ide_core_common_1.ILogger),
|
|
138
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
139
|
+
], TerminalEnvironmentService.prototype, "logger", void 0);
|
|
140
|
+
TerminalEnvironmentService = (0, tslib_1.__decorate)([
|
|
141
|
+
(0, di_1.Injectable)()
|
|
142
|
+
], TerminalEnvironmentService);
|
|
143
|
+
exports.TerminalEnvironmentService = TerminalEnvironmentService;
|
|
144
|
+
//# sourceMappingURL=terminal.environment.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.environment.service.js","sourceRoot":"","sources":["../../src/browser/terminal.environment.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ITerminalErrorService, ITerminalError, ITerminalService, ITerminalGroupViewService, ITerminalController } from '../common';
|
|
2
|
+
export declare class TerminalErrorService implements ITerminalErrorService {
|
|
3
|
+
errors: Map<string, ITerminalError>;
|
|
4
|
+
protected readonly service: ITerminalService;
|
|
5
|
+
protected readonly controller: ITerminalController;
|
|
6
|
+
protected readonly view: ITerminalGroupViewService;
|
|
7
|
+
constructor();
|
|
8
|
+
fix(clientId: string): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=terminal.error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.error.d.ts","sourceRoot":"","sources":["../../src/browser/terminal.error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,mBAAmB,EAAiB,MAAM,WAAW,CAAC;AAEnJ,qBACa,oBAAqB,YAAW,qBAAqB;IAEhE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IAGhD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAG7C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;;IAqB7C,GAAG,CAAC,QAAQ,EAAE,MAAM;CAS3B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TerminalErrorService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const mobx_1 = require("mobx");
|
|
6
|
+
const di_1 = require("@opensumi/di");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
let TerminalErrorService = class TerminalErrorService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.errors = new Map();
|
|
11
|
+
this.service.onError((error) => {
|
|
12
|
+
this.errors.set(error.id, error);
|
|
13
|
+
});
|
|
14
|
+
this.service.onExit((event) => {
|
|
15
|
+
try {
|
|
16
|
+
const widget = this.view.getWidget(event.sessionId);
|
|
17
|
+
if (!widget.reuse) {
|
|
18
|
+
this.view.removeWidget(event.sessionId);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch ( /** nothing */_a) { /** nothing */ }
|
|
22
|
+
});
|
|
23
|
+
this.controller.onDidCloseTerminal((e) => {
|
|
24
|
+
this.errors.delete(e.id);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
async fix(clientId) {
|
|
28
|
+
const client = this.controller.findClientFromWidgetId(clientId);
|
|
29
|
+
if (client) {
|
|
30
|
+
await 0; // 使后面的 delete 发生在下一个 microTask 中,避免在迭代过程中修改 this.errors
|
|
31
|
+
this.errors.delete(clientId);
|
|
32
|
+
client.reset();
|
|
33
|
+
return client.attached.promise;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
(0, tslib_1.__decorate)([
|
|
38
|
+
mobx_1.observable,
|
|
39
|
+
(0, tslib_1.__metadata)("design:type", Map)
|
|
40
|
+
], TerminalErrorService.prototype, "errors", void 0);
|
|
41
|
+
(0, tslib_1.__decorate)([
|
|
42
|
+
(0, di_1.Autowired)(common_1.ITerminalService),
|
|
43
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
44
|
+
], TerminalErrorService.prototype, "service", void 0);
|
|
45
|
+
(0, tslib_1.__decorate)([
|
|
46
|
+
(0, di_1.Autowired)(common_1.ITerminalController),
|
|
47
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
48
|
+
], TerminalErrorService.prototype, "controller", void 0);
|
|
49
|
+
(0, tslib_1.__decorate)([
|
|
50
|
+
(0, di_1.Autowired)(common_1.ITerminalGroupViewService),
|
|
51
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
52
|
+
], TerminalErrorService.prototype, "view", void 0);
|
|
53
|
+
TerminalErrorService = (0, tslib_1.__decorate)([
|
|
54
|
+
(0, di_1.Injectable)(),
|
|
55
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
56
|
+
], TerminalErrorService);
|
|
57
|
+
exports.TerminalErrorService = TerminalErrorService;
|
|
58
|
+
//# sourceMappingURL=terminal.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal.error.js","sourceRoot":"","sources":["../../src/browser/terminal.error.ts"],"names":[],"mappings":";;;;AAAA,+BAAkC;AAClC,qCAAqD;AACrD,sCAAmJ;AAGnJ,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAa/B;QAXA,WAAM,GAAgC,IAAI,GAAG,EAAE,CAAC;QAY9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAoB,EAAE,EAAE;YAC3C,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;oBACjB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;iBACzC;aACF;YAAC,QAAQ,cAAc,IAAhB,EAAE,cAAc,EAAE;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,wDAAwD;YACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;SAChC;IACH,CAAC;CACF,CAAA;AAvCC;IADC,iBAAU;2CACH,GAAG;oDAAqC;AAGhD;IADC,IAAA,cAAS,EAAC,yBAAgB,CAAC;;qDACiB;AAG7C;IADC,IAAA,cAAS,EAAC,4BAAmB,CAAC;;wDACoB;AAGnD;IADC,IAAA,cAAS,EAAC,kCAAyB,CAAC;;kDACc;AAXxC,oBAAoB;IADhC,IAAA,eAAU,GAAE;;GACA,oBAAoB,CAyChC;AAzCY,oDAAoB"}
|