@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,358 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TerminalGroupViewService = exports.WidgetGroup = exports.Widget = 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_browser_1 = require("@opensumi/ide-core-browser");
8
+ const common_1 = require("../common");
9
+ class Widget extends ide_core_browser_1.Disposable {
10
+ constructor(id, reuse = false) {
11
+ super();
12
+ this.reuse = reuse;
13
+ this.dynamic = 0;
14
+ this.shadowDynamic = 0;
15
+ this.name = '';
16
+ this._onRender = new ide_core_browser_1.Emitter();
17
+ this._onResize = new ide_core_browser_1.Emitter();
18
+ this._onShow = new ide_core_browser_1.Emitter();
19
+ this._onError = new ide_core_browser_1.Emitter();
20
+ this.onRender = this._onRender.event;
21
+ this.onResize = this._onResize.event;
22
+ this.onShow = this._onShow.event;
23
+ this.onError = this._onError.event;
24
+ this._id = id;
25
+ }
26
+ get id() {
27
+ return this._id;
28
+ }
29
+ get group() {
30
+ return this._group;
31
+ }
32
+ set group(g) {
33
+ this._group = g;
34
+ g.addWidget(this);
35
+ }
36
+ get element() {
37
+ return this._element;
38
+ }
39
+ set element(ele) {
40
+ if (!this._element) {
41
+ this._element = ele;
42
+ this._onRender.fire();
43
+ }
44
+ }
45
+ get show() {
46
+ return this._show;
47
+ }
48
+ set show(status) {
49
+ this._show = status;
50
+ this._onShow.fire(status);
51
+ }
52
+ get error() {
53
+ return this._error;
54
+ }
55
+ set error(status) {
56
+ this._error = status;
57
+ this._onError.fire(status);
58
+ }
59
+ resize(dynamic) {
60
+ this.dynamic = dynamic || this.shadowDynamic;
61
+ this.shadowDynamic = this.dynamic;
62
+ this._onResize.fire();
63
+ }
64
+ increase(increment) {
65
+ this.shadowDynamic += increment;
66
+ this._onResize.fire();
67
+ }
68
+ rename(name) {
69
+ this.name = name;
70
+ }
71
+ }
72
+ (0, tslib_1.__decorate)([
73
+ mobx_1.observable,
74
+ (0, tslib_1.__metadata)("design:type", Number)
75
+ ], Widget.prototype, "dynamic", void 0);
76
+ (0, tslib_1.__decorate)([
77
+ mobx_1.observable,
78
+ (0, tslib_1.__metadata)("design:type", Number)
79
+ ], Widget.prototype, "shadowDynamic", void 0);
80
+ (0, tslib_1.__decorate)([
81
+ mobx_1.observable,
82
+ (0, tslib_1.__metadata)("design:type", String)
83
+ ], Widget.prototype, "name", void 0);
84
+ exports.Widget = Widget;
85
+ class WidgetGroup extends ide_core_browser_1.Disposable {
86
+ constructor(id) {
87
+ super();
88
+ this.widgets = [];
89
+ this.editable = false;
90
+ this.activated = false;
91
+ this.name = '';
92
+ this.widgetsMap = new Map();
93
+ this._id = id || (0, common_1.userActionViewUuid)();
94
+ this._activated = false;
95
+ }
96
+ get id() {
97
+ return this._id;
98
+ }
99
+ get length() {
100
+ return this.widgets.length;
101
+ }
102
+ get first() {
103
+ return this.widgets[0];
104
+ }
105
+ get last() {
106
+ return this.widgets[this.length - 1];
107
+ }
108
+ get current() {
109
+ return this.widgetsMap.get(this.currentId);
110
+ }
111
+ get snapshot() {
112
+ if (this.name) {
113
+ return this.name;
114
+ }
115
+ else {
116
+ let name = '';
117
+ const length = this.length;
118
+ this.widgets.forEach((widget, index) => {
119
+ name += `${widget.name}${index !== (length - 1) ? ', ' : ''}`;
120
+ });
121
+ return name;
122
+ }
123
+ }
124
+ addWidget(widget) {
125
+ this.widgets.push(widget);
126
+ this.widgetsMap.set(widget.id, widget);
127
+ this._averageLayout();
128
+ }
129
+ findWidget(widget) {
130
+ return this.widgets.findIndex((item) => item.id === widget.id);
131
+ }
132
+ selectWidget(widget) {
133
+ this.currentId = widget.id;
134
+ }
135
+ removeWidgetByIndex(index) {
136
+ const widget = this.widgets.splice(index, 1);
137
+ this.widgetsMap.delete(widget[0].id);
138
+ this._averageLayout();
139
+ if (this.last) {
140
+ this.selectWidget(this.last);
141
+ }
142
+ return widget[0];
143
+ }
144
+ edit() {
145
+ this.editable = true;
146
+ }
147
+ unedit() {
148
+ this.editable = false;
149
+ }
150
+ rename(name) {
151
+ this.name = name;
152
+ this.editable = false;
153
+ }
154
+ _isLast(widget) {
155
+ return widget.id === this.widgets[this.widgets.length - 1].id;
156
+ }
157
+ _averageLayout() {
158
+ const average = Math.round((WidgetGroup.whole / this.widgets.length)
159
+ * WidgetGroup.float) / WidgetGroup.float;
160
+ this.widgets.forEach((widget) => {
161
+ if (this._isLast(widget)) {
162
+ widget.resize(WidgetGroup.whole - average * (this.widgets.length - 1));
163
+ }
164
+ else {
165
+ widget.resize(average);
166
+ }
167
+ });
168
+ }
169
+ }
170
+ WidgetGroup.whole = 100;
171
+ WidgetGroup.float = 1000;
172
+ (0, tslib_1.__decorate)([
173
+ mobx_1.observable,
174
+ (0, tslib_1.__metadata)("design:type", Array)
175
+ ], WidgetGroup.prototype, "widgets", void 0);
176
+ (0, tslib_1.__decorate)([
177
+ mobx_1.observable,
178
+ (0, tslib_1.__metadata)("design:type", Boolean)
179
+ ], WidgetGroup.prototype, "editable", void 0);
180
+ (0, tslib_1.__decorate)([
181
+ mobx_1.observable,
182
+ (0, tslib_1.__metadata)("design:type", Boolean)
183
+ ], WidgetGroup.prototype, "activated", void 0);
184
+ (0, tslib_1.__decorate)([
185
+ mobx_1.observable,
186
+ (0, tslib_1.__metadata)("design:type", String)
187
+ ], WidgetGroup.prototype, "name", void 0);
188
+ (0, tslib_1.__decorate)([
189
+ mobx_1.observable,
190
+ (0, tslib_1.__metadata)("design:type", String)
191
+ ], WidgetGroup.prototype, "currentId", void 0);
192
+ (0, tslib_1.__decorate)([
193
+ mobx_1.computed,
194
+ (0, tslib_1.__metadata)("design:type", Object),
195
+ (0, tslib_1.__metadata)("design:paramtypes", [])
196
+ ], WidgetGroup.prototype, "snapshot", null);
197
+ exports.WidgetGroup = WidgetGroup;
198
+ let TerminalGroupViewService = class TerminalGroupViewService {
199
+ constructor() {
200
+ this.groups = [];
201
+ this._onWidgetCreated = new ide_core_browser_1.Emitter();
202
+ this._onWidgetSelected = new ide_core_browser_1.Emitter();
203
+ this._onWidgetDisposed = new ide_core_browser_1.Emitter();
204
+ this._onWidgetEmpty = new ide_core_browser_1.Emitter();
205
+ this.onWidgetCreated = this._onWidgetCreated.event;
206
+ this.onWidgetSelected = this._onWidgetSelected.event;
207
+ this.onWidgetDisposed = this._onWidgetDisposed.event;
208
+ this.onWidgetEmpty = this._onWidgetEmpty.event;
209
+ this._widgets = new Map();
210
+ }
211
+ get currentGroup() {
212
+ return this.groups[this.currentGroupIndex];
213
+ }
214
+ get currentWidget() {
215
+ return this.getWidget(this.currentGroup.currentId);
216
+ }
217
+ get currentWidgetId() {
218
+ return this.currentGroup && this.currentGroup.currentId;
219
+ }
220
+ getGroup(index) {
221
+ if (index > this.groups.length - 1) {
222
+ throw new Error('out of groups length');
223
+ }
224
+ return this.groups[index];
225
+ }
226
+ _doSelectGroup(index) {
227
+ const group = this.getGroup(index);
228
+ this.currentGroupIndex = index;
229
+ this.currentGroupId = group.id;
230
+ group.activated = true;
231
+ // 恢复的 group.current 为空,手动选择第一个 widget
232
+ if (!group.current && group.first) {
233
+ group.selectWidget(group.first);
234
+ }
235
+ if (group.current) {
236
+ this._onWidgetSelected.fire(group.current);
237
+ this.resize();
238
+ }
239
+ }
240
+ selectGroup(index) {
241
+ this._doSelectGroup(index);
242
+ }
243
+ _doCreateGroup(id) {
244
+ const group = new WidgetGroup(id);
245
+ this.groups.push(group);
246
+ return (this.groups.length - 1);
247
+ }
248
+ createGroup() {
249
+ const index = this._doCreateGroup();
250
+ this.getGroup(index);
251
+ return index;
252
+ }
253
+ _checkIfEmpty(index) {
254
+ if (this.empty()) {
255
+ this._onWidgetEmpty.fire();
256
+ }
257
+ else {
258
+ if (index === this.currentGroupIndex) {
259
+ this._doSelectGroup(this.groups.length - 1);
260
+ }
261
+ if (index < this.currentGroupIndex) {
262
+ this._doSelectGroup(this.currentGroupIndex - 1);
263
+ }
264
+ }
265
+ }
266
+ _doRemoveGroup(index) {
267
+ const [group] = this.groups.splice(index, 1);
268
+ if (group) {
269
+ group.widgets.forEach((widget) => {
270
+ this._widgets.delete(widget.id);
271
+ widget.dispose();
272
+ this._onWidgetDisposed.fire(widget);
273
+ });
274
+ group.dispose();
275
+ }
276
+ this._checkIfEmpty(index);
277
+ }
278
+ removeGroup(index) {
279
+ this._doRemoveGroup(index);
280
+ }
281
+ getWidget(id) {
282
+ const widget = this._widgets.get(id);
283
+ if (!widget) {
284
+ throw new Error('not find this widget');
285
+ }
286
+ return widget;
287
+ }
288
+ selectWidget(id) {
289
+ const widget = this.getWidget(id);
290
+ const group = widget.group;
291
+ const index = this.groups.findIndex((g) => g.id === group.id);
292
+ group.selectWidget(widget);
293
+ this.selectGroup(index);
294
+ }
295
+ createWidget(group, id, reuse, isSimpleWidget = false) {
296
+ const widget = new Widget(id || this.service.generateSessionId(), reuse);
297
+ this._widgets.set(widget.id, widget);
298
+ widget.group = group;
299
+ if (!isSimpleWidget) {
300
+ this._onWidgetCreated.fire(widget);
301
+ }
302
+ return widget;
303
+ }
304
+ _checkIfGroupEmpty(index) {
305
+ const group = this.getGroup(index);
306
+ if (group.length === 0) {
307
+ this._doRemoveGroup(index);
308
+ }
309
+ }
310
+ removeWidget(id) {
311
+ const widget = this.getWidget(id);
312
+ const group = widget.group;
313
+ const groupIndex = this.groups.findIndex((g) => group.id === g.id);
314
+ const index = group.findWidget(widget);
315
+ group.removeWidgetByIndex(index);
316
+ this._widgets.delete(id);
317
+ widget.dispose();
318
+ this._onWidgetDisposed.fire(widget);
319
+ this._checkIfGroupEmpty(groupIndex);
320
+ }
321
+ resize() {
322
+ if (this.currentGroup) {
323
+ this.currentGroup.widgets.forEach((widget) => {
324
+ widget.resize();
325
+ });
326
+ }
327
+ }
328
+ empty() {
329
+ return this._widgets.size === 0;
330
+ }
331
+ clear() {
332
+ this.groups = mobx_1.observable.array([]);
333
+ this._widgets.clear();
334
+ this._onWidgetEmpty.fire();
335
+ }
336
+ };
337
+ (0, tslib_1.__decorate)([
338
+ mobx_1.observable,
339
+ (0, tslib_1.__metadata)("design:type", Array)
340
+ ], TerminalGroupViewService.prototype, "groups", void 0);
341
+ (0, tslib_1.__decorate)([
342
+ mobx_1.observable,
343
+ (0, tslib_1.__metadata)("design:type", String)
344
+ ], TerminalGroupViewService.prototype, "currentGroupId", void 0);
345
+ (0, tslib_1.__decorate)([
346
+ mobx_1.observable,
347
+ (0, tslib_1.__metadata)("design:type", Number)
348
+ ], TerminalGroupViewService.prototype, "currentGroupIndex", void 0);
349
+ (0, tslib_1.__decorate)([
350
+ (0, di_1.Autowired)(common_1.ITerminalInternalService),
351
+ (0, tslib_1.__metadata)("design:type", Object)
352
+ ], TerminalGroupViewService.prototype, "service", void 0);
353
+ TerminalGroupViewService = (0, tslib_1.__decorate)([
354
+ (0, di_1.Injectable)(),
355
+ (0, tslib_1.__metadata)("design:paramtypes", [])
356
+ ], TerminalGroupViewService);
357
+ exports.TerminalGroupViewService = TerminalGroupViewService;
358
+ //# sourceMappingURL=terminal.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.view.js","sourceRoot":"","sources":["../../src/browser/terminal.view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Event } from '@opensumi/ide-core-common';
2
+ import { TerminalOptions, ITerminalInfo } from './pty';
3
+ import { ITerminalExternalClient } from './controller';
4
+ import { ITerminalExitEvent } from './client';
5
+ export declare const ITerminalApiService: unique symbol;
6
+ export interface ITerminalApiService {
7
+ createTerminal(options: TerminalOptions): Promise<ITerminalExternalClient>;
8
+ sendText(id: string, text: string, addNewLine?: boolean): void;
9
+ getProcessId(sessionId: string): Promise<number | undefined>;
10
+ onDidOpenTerminal: Event<ITerminalInfo>;
11
+ onDidCloseTerminal: Event<ITerminalExitEvent>;
12
+ onDidChangeActiveTerminal: Event<string>;
13
+ terminals: ITerminalInfo[];
14
+ showTerm(id: string, preserveFocus?: boolean): void;
15
+ hideTerm(id: string): void;
16
+ removeTerm(id: string): void;
17
+ createWidget(uniqName: string, widgetRenderFunc: (element: HTMLDivElement) => void): void;
18
+ scheduleReconnection(): void;
19
+ }
20
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/common/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AACjE,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC3E,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/D,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE7D,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACxC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9C,yBAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzC,SAAS,EAAE,aAAa,EAAE,CAAC;IAE3B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI,CAAC;IAE1F,oBAAoB,IAAI,IAAI,CAAC;CAC9B"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ITerminalApiService = void 0;
4
+ exports.ITerminalApiService = Symbol('ITerminalApiService');
5
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/common/api.ts"],"names":[],"mappings":";;;AAKa,QAAA,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,163 @@
1
+ import { Terminal } from 'xterm';
2
+ import { IDisposable, Disposable, Event, Deferred } from '@opensumi/ide-core-common';
3
+ import { TerminalOptions } from './pty';
4
+ import { IWidget } from './resize';
5
+ export interface ITerminalDataEvent {
6
+ id: string;
7
+ data: string | ArrayBuffer;
8
+ }
9
+ export interface ITerminalExitEvent {
10
+ id: string;
11
+ code?: number;
12
+ }
13
+ export interface ITerminalClient extends Disposable {
14
+ /**
15
+ * 标识终端客户端的唯一 id
16
+ */
17
+ id: string;
18
+ /**
19
+ * 终端客户端对应的后端进程 id
20
+ */
21
+ pid: Promise<number | undefined>;
22
+ /**
23
+ * 终端客户端对应的名称,可能是用户自定义,也可能来自后端
24
+ */
25
+ name: string;
26
+ /**
27
+ * 终端客户端创建所使用的后端选项
28
+ */
29
+ options: TerminalOptions;
30
+ /**
31
+ * 终端客户端渲染所使用的上层 dom 节点
32
+ */
33
+ container: HTMLDivElement;
34
+ /**
35
+ * 终端已就绪
36
+ */
37
+ ready: boolean;
38
+ /**
39
+ * 终端客户端是否和后端相连接
40
+ */
41
+ attached: Deferred<void>;
42
+ /**
43
+ * 首次消息输出
44
+ */
45
+ firstOutput: Deferred<void>;
46
+ /**
47
+ *
48
+ */
49
+ show: Deferred<void> | null;
50
+ /**
51
+ * Xterm 实例
52
+ */
53
+ term: Terminal;
54
+ /**
55
+ * 渲染窗口
56
+ */
57
+ widget: IWidget;
58
+ /**
59
+ * 终端客户端获取输入焦点
60
+ */
61
+ focus(): void;
62
+ /**
63
+ * 清除内容
64
+ */
65
+ clear(): void;
66
+ /**
67
+ * 重置
68
+ */
69
+ reset(): void;
70
+ /**
71
+ * 全选内容
72
+ */
73
+ selectAll(): void;
74
+ /**
75
+ * 获取选择的内容
76
+ */
77
+ getSelection(): string;
78
+ /**
79
+ * 粘贴文本
80
+ * @param text
81
+ */
82
+ paste(text: string): void;
83
+ /**
84
+ * 向下查找字符串
85
+ *
86
+ * @param text 用户输入的字符串
87
+ */
88
+ findNext(text: string): void;
89
+ /**
90
+ * 向后端发送一段字符串
91
+ *
92
+ * @param message 发送的字符串消息
93
+ */
94
+ sendText(message: string): Promise<void>;
95
+ /**
96
+ * 更新终端客户端渲染主题
97
+ */
98
+ updateTheme(): void;
99
+ /**
100
+ * 更新终端客户端配置
101
+ */
102
+ updateOptions(options: TerminalOptions): void;
103
+ /**
104
+ * clear 参数用于判断是否需要清理 meta 信息,
105
+ * 不需要 clear 参数的时候基本为正常推出,
106
+ * 异常的时候需要将 clear 设为 false,保留现场
107
+ *
108
+ * @param clear
109
+ */
110
+ dispose(clear?: boolean): void;
111
+ /**
112
+ * stdout 输出事件
113
+ */
114
+ onOutput: Event<ITerminalDataEvent>;
115
+ /**
116
+ * stdin 输入事件
117
+ */
118
+ onInput: Event<ITerminalDataEvent>;
119
+ /**
120
+ * 退出事件
121
+ */
122
+ onExit: Event<ITerminalExitEvent>;
123
+ /**
124
+ * linkManager 初始化成功事件
125
+ */
126
+ onLinksReady: Event<ITerminalClient>;
127
+ areLinksReady: boolean;
128
+ /**
129
+ * 注册 LinkProvider
130
+ */
131
+ registerLinkProvider(provider: ITerminalExternalLinkProvider): IDisposable;
132
+ }
133
+ export declare const ITerminalClientFactory: unique symbol;
134
+ export declare type ITerminalClientFactory = (widget: IWidget, options?: TerminalOptions, disposable?: IDisposable) => ITerminalClient;
135
+ export interface ITerminalConnection {
136
+ name: string;
137
+ readonly: boolean;
138
+ sendData(data: string | ArrayBuffer): void;
139
+ onData: Event<string | ArrayBuffer>;
140
+ onExit?: Event<number | undefined>;
141
+ }
142
+ /**
143
+ * Similar to xterm.js' ILinkProvider but using promises and hides xterm.js internals (like buffer
144
+ * positions, decorations, etc.) from the rest of vscode. This is the interface to use for
145
+ * workbench integrations.
146
+ */
147
+ export interface ITerminalExternalLinkProvider {
148
+ provideLinks(instance: ITerminalClient, line: string): Promise<ITerminalLink[] | undefined>;
149
+ }
150
+ export interface ITerminalLink {
151
+ /** The startIndex of the link in the line. */
152
+ startIndex: number;
153
+ /** The length of the link in the line. */
154
+ length: number;
155
+ /** The descriptive label for what the link does when activated. */
156
+ label?: string;
157
+ /**
158
+ * Activates the link.
159
+ * @param text The text of the link.
160
+ */
161
+ activate(text: string): void;
162
+ }
163
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IAEzB;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC;IAE1B;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE5B;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,SAAS,IAAI,IAAI,CAAC;IAClB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,WAAW,IAAI,IAAI,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAE9C;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEpC;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEnC;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAElC;;OAEG;IACH,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAErC,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,6BAA6B,GAAG,WAAW,CAAC;CAC5E;AAED,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AACvE,oBAAY,sBAAsB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,WAAW,KAAK,eAAe,CAAC;AAE/H,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAC3C,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC,CAAC;CAC7F;AAED,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ITerminalClientFactory = void 0;
4
+ exports.ITerminalClientFactory = Symbol('ITerminalClientFactory');
5
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":";;;AAgKa,QAAA,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,92 @@
1
+ export declare namespace TERMINAL_COMMANDS {
2
+ const SPLIT: {
3
+ id: string;
4
+ label: string;
5
+ category: string;
6
+ };
7
+ const ADD: {
8
+ id: string;
9
+ label: string;
10
+ category: string;
11
+ };
12
+ const REMOVE: {
13
+ id: string;
14
+ label: string;
15
+ category: string;
16
+ };
17
+ const CLEAR: {
18
+ id: string;
19
+ label: string;
20
+ category: string;
21
+ };
22
+ const OPEN_SEARCH: {
23
+ id: string;
24
+ label: string;
25
+ category: string;
26
+ };
27
+ const SEARCH_NEXT: {
28
+ id: string;
29
+ label: string;
30
+ category: string;
31
+ };
32
+ const OPEN_WITH_PATH: {
33
+ id: string;
34
+ label: string;
35
+ category: string;
36
+ };
37
+ const CLEAR_CONTENT: {
38
+ id: string;
39
+ label: string;
40
+ category: string;
41
+ };
42
+ const CLEAR_ALL_CONTENT: {
43
+ id: string;
44
+ label: string;
45
+ };
46
+ const TAB_RENAME: {
47
+ id: string;
48
+ };
49
+ const SELECT_ALL_CONTENT: {
50
+ id: string;
51
+ };
52
+ const MORE_SETTINGS: {
53
+ id: string;
54
+ label: string;
55
+ };
56
+ const SELECT_TYPE: {
57
+ id: string;
58
+ };
59
+ const SELECT_ZSH: {
60
+ id: string;
61
+ label: string;
62
+ };
63
+ const SELECT_BASH: {
64
+ id: string;
65
+ label: string;
66
+ };
67
+ const SELECT_SH: {
68
+ id: string;
69
+ label: string;
70
+ };
71
+ const SELECT_CMD: {
72
+ id: string;
73
+ label: string;
74
+ };
75
+ const SELECT_POWERSHELL: {
76
+ id: string;
77
+ label: string;
78
+ };
79
+ const COPY: {
80
+ id: string;
81
+ };
82
+ const PASTE: {
83
+ id: string;
84
+ };
85
+ const SELECT_ALL: {
86
+ id: string;
87
+ };
88
+ const RE_LAUNCH: {
89
+ id: string;
90
+ };
91
+ }
92
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/common/commands.ts"],"names":[],"mappings":"AAAA,yBAAiB,iBAAiB,CAAC;IAG1B,MAAM,KAAK;;;;KAIjB,CAAC;IAEK,MAAM,GAAG;;;;KAIf,CAAC;IAEK,MAAM,MAAM;;;;KAIlB,CAAC;IAEK,MAAM,KAAK;;;;KAIjB,CAAC;IAEK,MAAM,WAAW;;;;KAIvB,CAAC;IAEK,MAAM,WAAW;;;;KAIvB,CAAC;IAEK,MAAM,cAAc;;;;KAI1B,CAAC;IAEK,MAAM,aAAa;;;;KAIzB,CAAC;IAEK,MAAM,iBAAiB;;;KAG7B,CAAC;IAEK,MAAM,UAAU;;KAEtB,CAAC;IAEK,MAAM,kBAAkB;;KAE9B,CAAC;IAEK,MAAM,aAAa;;;KAGzB,CAAC;IAEK,MAAM,WAAW;;KAEvB,CAAC;IAEK,MAAM,UAAU;;;KAGtB,CAAC;IAEK,MAAM,WAAW;;;KAGvB,CAAC;IAEK,MAAM,SAAS;;;KAGrB,CAAC;IAEK,MAAM,UAAU;;;KAGtB,CAAC;IAEK,MAAM,iBAAiB;;;KAG7B,CAAC;IAEK,MAAM,IAAI;;KAEhB,CAAC;IAEK,MAAM,KAAK;;KAEjB,CAAC;IAEK,MAAM,UAAU;;KAEtB,CAAC;IAEK,MAAM,SAAS;;KAErB,CAAC;CACH"}