@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.
Files changed (282) hide show
  1. package/README.md +89 -0
  2. package/lib/browser/component/resize.delegate.d.ts +14 -0
  3. package/lib/browser/component/resize.delegate.d.ts.map +1 -0
  4. package/lib/browser/component/resize.delegate.js +47 -0
  5. package/lib/browser/component/resize.delegate.js.map +1 -0
  6. package/lib/browser/component/resize.module.less +55 -0
  7. package/lib/browser/component/resize.view.d.ts +16 -0
  8. package/lib/browser/component/resize.view.d.ts.map +1 -0
  9. package/lib/browser/component/resize.view.js +40 -0
  10. package/lib/browser/component/resize.view.js.map +1 -0
  11. package/lib/browser/component/tab.item.d.ts +7 -0
  12. package/lib/browser/component/tab.item.d.ts.map +1 -0
  13. package/lib/browser/component/tab.item.js +61 -0
  14. package/lib/browser/component/tab.item.js.map +1 -0
  15. package/lib/browser/component/tab.module.less +112 -0
  16. package/lib/browser/component/tab.view.d.ts +4 -0
  17. package/lib/browser/component/tab.view.d.ts.map +1 -0
  18. package/lib/browser/component/tab.view.js +30 -0
  19. package/lib/browser/component/tab.view.js.map +1 -0
  20. package/lib/browser/component/terminal.module.less +69 -0
  21. package/lib/browser/component/terminal.select.d.ts +4 -0
  22. package/lib/browser/component/terminal.select.d.ts.map +1 -0
  23. package/lib/browser/component/terminal.select.js +21 -0
  24. package/lib/browser/component/terminal.select.js.map +1 -0
  25. package/lib/browser/component/terminal.variable.d.ts +8 -0
  26. package/lib/browser/component/terminal.variable.d.ts.map +1 -0
  27. package/lib/browser/component/terminal.variable.js +44 -0
  28. package/lib/browser/component/terminal.variable.js.map +1 -0
  29. package/lib/browser/component/terminal.view.d.ts +5 -0
  30. package/lib/browser/component/terminal.view.d.ts.map +1 -0
  31. package/lib/browser/component/terminal.view.js +68 -0
  32. package/lib/browser/component/terminal.view.js.map +1 -0
  33. package/lib/browser/component/terminal.widget.d.ts +10 -0
  34. package/lib/browser/component/terminal.widget.d.ts.map +1 -0
  35. package/lib/browser/component/terminal.widget.js +51 -0
  36. package/lib/browser/component/terminal.widget.js.map +1 -0
  37. package/lib/browser/component/variable.module.less +15 -0
  38. package/lib/browser/contribution/index.d.ts +7 -0
  39. package/lib/browser/contribution/index.d.ts.map +1 -0
  40. package/lib/browser/contribution/index.js +10 -0
  41. package/lib/browser/contribution/index.js.map +1 -0
  42. package/lib/browser/contribution/terminal.command.d.ts +20 -0
  43. package/lib/browser/contribution/terminal.command.d.ts.map +1 -0
  44. package/lib/browser/contribution/terminal.command.js +215 -0
  45. package/lib/browser/contribution/terminal.command.js.map +1 -0
  46. package/lib/browser/contribution/terminal.keybinding.d.ts +5 -0
  47. package/lib/browser/contribution/terminal.keybinding.d.ts.map +1 -0
  48. package/lib/browser/contribution/terminal.keybinding.js +55 -0
  49. package/lib/browser/contribution/terminal.keybinding.js.map +1 -0
  50. package/lib/browser/contribution/terminal.lifecycle.d.ts +15 -0
  51. package/lib/browser/contribution/terminal.lifecycle.d.ts.map +1 -0
  52. package/lib/browser/contribution/terminal.lifecycle.js +47 -0
  53. package/lib/browser/contribution/terminal.lifecycle.js.map +1 -0
  54. package/lib/browser/contribution/terminal.menu.d.ts +19 -0
  55. package/lib/browser/contribution/terminal.menu.d.ts.map +1 -0
  56. package/lib/browser/contribution/terminal.menu.js +144 -0
  57. package/lib/browser/contribution/terminal.menu.js.map +1 -0
  58. package/lib/browser/contribution/terminal.network.d.ts +11 -0
  59. package/lib/browser/contribution/terminal.network.d.ts.map +1 -0
  60. package/lib/browser/contribution/terminal.network.js +44 -0
  61. package/lib/browser/contribution/terminal.network.js.map +1 -0
  62. package/lib/browser/contribution/terminal.view.d.ts +7 -0
  63. package/lib/browser/contribution/terminal.view.d.ts.map +1 -0
  64. package/lib/browser/contribution/terminal.view.js +55 -0
  65. package/lib/browser/contribution/terminal.view.js.map +1 -0
  66. package/lib/browser/index.d.ts +10 -0
  67. package/lib/browser/index.d.ts.map +1 -0
  68. package/lib/browser/index.js +105 -0
  69. package/lib/browser/index.js.map +1 -0
  70. package/lib/browser/links/base.d.ts +8 -0
  71. package/lib/browser/links/base.d.ts.map +1 -0
  72. package/lib/browser/links/base.js +13 -0
  73. package/lib/browser/links/base.js.map +1 -0
  74. package/lib/browser/links/external-link-provider-adapter.d.ts +18 -0
  75. package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -0
  76. package/lib/browser/links/external-link-provider-adapter.js +56 -0
  77. package/lib/browser/links/external-link-provider-adapter.js.map +1 -0
  78. package/lib/browser/links/helpers.d.ts +7 -0
  79. package/lib/browser/links/helpers.d.ts.map +1 -0
  80. package/lib/browser/links/helpers.js +129 -0
  81. package/lib/browser/links/helpers.js.map +1 -0
  82. package/lib/browser/links/link-manager.d.ts +61 -0
  83. package/lib/browser/links/link-manager.d.ts.map +1 -0
  84. package/lib/browser/links/link-manager.js +252 -0
  85. package/lib/browser/links/link-manager.js.map +1 -0
  86. package/lib/browser/links/link.d.ts +24 -0
  87. package/lib/browser/links/link.d.ts.map +1 -0
  88. package/lib/browser/links/link.js +92 -0
  89. package/lib/browser/links/link.js.map +1 -0
  90. package/lib/browser/links/protocol-link-provider.d.ts +11 -0
  91. package/lib/browser/links/protocol-link-provider.d.ts.map +1 -0
  92. package/lib/browser/links/protocol-link-provider.js +53 -0
  93. package/lib/browser/links/protocol-link-provider.js.map +1 -0
  94. package/lib/browser/links/validated-local-link-provider.d.ts +31 -0
  95. package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -0
  96. package/lib/browser/links/validated-local-link-provider.js +137 -0
  97. package/lib/browser/links/validated-local-link-provider.js.map +1 -0
  98. package/lib/browser/terminal.addon.d.ts +42 -0
  99. package/lib/browser/terminal.addon.d.ts.map +1 -0
  100. package/lib/browser/terminal.addon.js +169 -0
  101. package/lib/browser/terminal.addon.js.map +1 -0
  102. package/lib/browser/terminal.api.d.ts +34 -0
  103. package/lib/browser/terminal.api.d.ts.map +1 -0
  104. package/lib/browser/terminal.api.js +132 -0
  105. package/lib/browser/terminal.api.js.map +1 -0
  106. package/lib/browser/terminal.client.d.ts +114 -0
  107. package/lib/browser/terminal.client.d.ts.map +1 -0
  108. package/lib/browser/terminal.client.js +518 -0
  109. package/lib/browser/terminal.client.js.map +1 -0
  110. package/lib/browser/terminal.color.d.ts +20 -0
  111. package/lib/browser/terminal.color.d.ts.map +1 -0
  112. package/lib/browser/terminal.color.js +172 -0
  113. package/lib/browser/terminal.color.js.map +1 -0
  114. package/lib/browser/terminal.context-key.d.ts +10 -0
  115. package/lib/browser/terminal.context-key.d.ts.map +1 -0
  116. package/lib/browser/terminal.context-key.js +28 -0
  117. package/lib/browser/terminal.context-key.js.map +1 -0
  118. package/lib/browser/terminal.context-menu.d.ts +15 -0
  119. package/lib/browser/terminal.context-menu.d.ts.map +1 -0
  120. package/lib/browser/terminal.context-menu.js +75 -0
  121. package/lib/browser/terminal.context-menu.js.map +1 -0
  122. package/lib/browser/terminal.controller.d.ts +68 -0
  123. package/lib/browser/terminal.controller.d.ts.map +1 -0
  124. package/lib/browser/terminal.controller.js +367 -0
  125. package/lib/browser/terminal.controller.js.map +1 -0
  126. package/lib/browser/terminal.environment.service.d.ts +27 -0
  127. package/lib/browser/terminal.environment.service.d.ts.map +1 -0
  128. package/lib/browser/terminal.environment.service.js +144 -0
  129. package/lib/browser/terminal.environment.service.js.map +1 -0
  130. package/lib/browser/terminal.error.d.ts +10 -0
  131. package/lib/browser/terminal.error.d.ts.map +1 -0
  132. package/lib/browser/terminal.error.js +58 -0
  133. package/lib/browser/terminal.error.js.map +1 -0
  134. package/lib/browser/terminal.ext.host.proxy.d.ts +58 -0
  135. package/lib/browser/terminal.ext.host.proxy.d.ts.map +1 -0
  136. package/lib/browser/terminal.ext.host.proxy.js +104 -0
  137. package/lib/browser/terminal.ext.host.proxy.js.map +1 -0
  138. package/lib/browser/terminal.input.d.ts +6 -0
  139. package/lib/browser/terminal.input.d.ts.map +1 -0
  140. package/lib/browser/terminal.input.js +32 -0
  141. package/lib/browser/terminal.input.js.map +1 -0
  142. package/lib/browser/terminal.network.d.ts +32 -0
  143. package/lib/browser/terminal.network.d.ts.map +1 -0
  144. package/lib/browser/terminal.network.js +150 -0
  145. package/lib/browser/terminal.network.js.map +1 -0
  146. package/lib/browser/terminal.preference.d.ts +26 -0
  147. package/lib/browser/terminal.preference.d.ts.map +1 -0
  148. package/lib/browser/terminal.preference.js +80 -0
  149. package/lib/browser/terminal.preference.js.map +1 -0
  150. package/lib/browser/terminal.render.d.ts +13 -0
  151. package/lib/browser/terminal.render.d.ts.map +1 -0
  152. package/lib/browser/terminal.render.js +25 -0
  153. package/lib/browser/terminal.render.js.map +1 -0
  154. package/lib/browser/terminal.restore.d.ts +10 -0
  155. package/lib/browser/terminal.restore.d.ts.map +1 -0
  156. package/lib/browser/terminal.restore.js +41 -0
  157. package/lib/browser/terminal.restore.js.map +1 -0
  158. package/lib/browser/terminal.search.d.ts +15 -0
  159. package/lib/browser/terminal.search.d.ts.map +1 -0
  160. package/lib/browser/terminal.search.js +53 -0
  161. package/lib/browser/terminal.search.js.map +1 -0
  162. package/lib/browser/terminal.service.d.ts +60 -0
  163. package/lib/browser/terminal.service.d.ts.map +1 -0
  164. package/lib/browser/terminal.service.js +212 -0
  165. package/lib/browser/terminal.service.js.map +1 -0
  166. package/lib/browser/terminal.theme.d.ts +7 -0
  167. package/lib/browser/terminal.theme.d.ts.map +1 -0
  168. package/lib/browser/terminal.theme.js +50 -0
  169. package/lib/browser/terminal.theme.js.map +1 -0
  170. package/lib/browser/terminal.view.d.ts +99 -0
  171. package/lib/browser/terminal.view.d.ts.map +1 -0
  172. package/lib/browser/terminal.view.js +358 -0
  173. package/lib/browser/terminal.view.js.map +1 -0
  174. package/lib/common/api.d.ts +20 -0
  175. package/lib/common/api.d.ts.map +1 -0
  176. package/lib/common/api.js +5 -0
  177. package/lib/common/api.js.map +1 -0
  178. package/lib/common/client.d.ts +163 -0
  179. package/lib/common/client.d.ts.map +1 -0
  180. package/lib/common/client.js +5 -0
  181. package/lib/common/client.js.map +1 -0
  182. package/lib/common/commands.d.ts +92 -0
  183. package/lib/common/commands.d.ts.map +1 -0
  184. package/lib/common/commands.js +97 -0
  185. package/lib/common/commands.js.map +1 -0
  186. package/lib/common/controller.d.ts +86 -0
  187. package/lib/common/controller.d.ts.map +1 -0
  188. package/lib/common/controller.js +7 -0
  189. package/lib/common/controller.js.map +1 -0
  190. package/lib/common/environmentVariable.d.ts +118 -0
  191. package/lib/common/environmentVariable.d.ts.map +1 -0
  192. package/lib/common/environmentVariable.js +27 -0
  193. package/lib/common/environmentVariable.js.map +1 -0
  194. package/lib/common/environmentVariableCollection.d.ts +10 -0
  195. package/lib/common/environmentVariableCollection.d.ts.map +1 -0
  196. package/lib/common/environmentVariableCollection.js +136 -0
  197. package/lib/common/environmentVariableCollection.js.map +1 -0
  198. package/lib/common/error.d.ts +30 -0
  199. package/lib/common/error.d.ts.map +1 -0
  200. package/lib/common/error.js +5 -0
  201. package/lib/common/error.js.map +1 -0
  202. package/lib/common/extension.d.ts +108 -0
  203. package/lib/common/extension.d.ts.map +1 -0
  204. package/lib/common/extension.js +52 -0
  205. package/lib/common/extension.js.map +1 -0
  206. package/lib/common/index.d.ts +17 -0
  207. package/lib/common/index.d.ts.map +1 -0
  208. package/lib/common/index.js +21 -0
  209. package/lib/common/index.js.map +1 -0
  210. package/lib/common/link-computer.d.ts +56 -0
  211. package/lib/common/link-computer.d.ts.map +1 -0
  212. package/lib/common/link-computer.js +273 -0
  213. package/lib/common/link-computer.js.map +1 -0
  214. package/lib/common/menu.d.ts +5 -0
  215. package/lib/common/menu.d.ts.map +1 -0
  216. package/lib/common/menu.js +9 -0
  217. package/lib/common/menu.js.map +1 -0
  218. package/lib/common/network.d.ts +48 -0
  219. package/lib/common/network.d.ts.map +1 -0
  220. package/lib/common/network.js +10 -0
  221. package/lib/common/network.js.map +1 -0
  222. package/lib/common/preference.d.ts +33 -0
  223. package/lib/common/preference.d.ts.map +1 -0
  224. package/lib/common/preference.js +18 -0
  225. package/lib/common/preference.js.map +1 -0
  226. package/lib/common/pty.d.ts +205 -0
  227. package/lib/common/pty.d.ts.map +1 -0
  228. package/lib/common/pty.js +8 -0
  229. package/lib/common/pty.js.map +1 -0
  230. package/lib/common/render.d.ts +24 -0
  231. package/lib/common/render.d.ts.map +1 -0
  232. package/lib/common/render.js +10 -0
  233. package/lib/common/render.js.map +1 -0
  234. package/lib/common/resize.d.ts +39 -0
  235. package/lib/common/resize.d.ts.map +1 -0
  236. package/lib/common/resize.js +3 -0
  237. package/lib/common/resize.js.map +1 -0
  238. package/lib/common/restore.d.ts +6 -0
  239. package/lib/common/restore.d.ts.map +1 -0
  240. package/lib/common/restore.js +5 -0
  241. package/lib/common/restore.js.map +1 -0
  242. package/lib/common/service.d.ts +88 -0
  243. package/lib/common/service.d.ts.map +1 -0
  244. package/lib/common/service.js +6 -0
  245. package/lib/common/service.js.map +1 -0
  246. package/lib/common/shell.d.ts +10 -0
  247. package/lib/common/shell.d.ts.map +1 -0
  248. package/lib/common/shell.js +14 -0
  249. package/lib/common/shell.js.map +1 -0
  250. package/lib/common/theme.d.ts +6 -0
  251. package/lib/common/theme.d.ts.map +1 -0
  252. package/lib/common/theme.js +5 -0
  253. package/lib/common/theme.js.map +1 -0
  254. package/lib/common/utils.d.ts +4 -0
  255. package/lib/common/utils.d.ts.map +1 -0
  256. package/lib/common/utils.js +21 -0
  257. package/lib/common/utils.js.map +1 -0
  258. package/lib/index.d.ts +2 -0
  259. package/lib/index.d.ts.map +1 -0
  260. package/lib/index.js +5 -0
  261. package/lib/index.js.map +1 -0
  262. package/lib/node/index.d.ts +10 -0
  263. package/lib/node/index.d.ts.map +1 -0
  264. package/lib/node/index.js +35 -0
  265. package/lib/node/index.js.map +1 -0
  266. package/lib/node/pty.d.ts +11 -0
  267. package/lib/node/pty.d.ts.map +1 -0
  268. package/lib/node/pty.js +54 -0
  269. package/lib/node/pty.js.map +1 -0
  270. package/lib/node/shell.d.ts +3 -0
  271. package/lib/node/shell.d.ts.map +1 -0
  272. package/lib/node/shell.js +28 -0
  273. package/lib/node/shell.js.map +1 -0
  274. package/lib/node/terminal.service.client.d.ts +34 -0
  275. package/lib/node/terminal.service.client.d.ts.map +1 -0
  276. package/lib/node/terminal.service.client.js +111 -0
  277. package/lib/node/terminal.service.client.js.map +1 -0
  278. package/lib/node/terminal.service.d.ts +28 -0
  279. package/lib/node/terminal.service.d.ts.map +1 -0
  280. package/lib/node/terminal.service.js +136 -0
  281. package/lib/node/terminal.service.js.map +1 -0
  282. 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"}