@opensumi/ide-terminal-next 3.7.2-next-1740052080.0 → 3.7.2-next-1740054042.0

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 (244) hide show
  1. package/LICENSE +21 -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 +46 -0
  5. package/lib/browser/component/resize.delegate.js.map +1 -0
  6. package/lib/browser/component/resize.module.less +77 -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 +55 -0
  10. package/lib/browser/component/resize.view.js.map +1 -0
  11. package/lib/browser/component/search.module.less +61 -0
  12. package/lib/browser/component/search.view.d.ts +3 -0
  13. package/lib/browser/component/search.view.d.ts.map +1 -0
  14. package/lib/browser/component/search.view.js +89 -0
  15. package/lib/browser/component/search.view.js.map +1 -0
  16. package/lib/browser/component/tab.item.d.ts +7 -0
  17. package/lib/browser/component/tab.item.d.ts.map +1 -0
  18. package/lib/browser/component/tab.item.js +121 -0
  19. package/lib/browser/component/tab.item.js.map +1 -0
  20. package/lib/browser/component/tab.module.less +174 -0
  21. package/lib/browser/component/tab.view.d.ts +4 -0
  22. package/lib/browser/component/tab.view.d.ts.map +1 -0
  23. package/lib/browser/component/tab.view.js +65 -0
  24. package/lib/browser/component/tab.view.js.map +1 -0
  25. package/lib/browser/component/terminal.module.less +50 -0
  26. package/lib/browser/component/terminal.variable.d.ts +8 -0
  27. package/lib/browser/component/terminal.variable.d.ts.map +1 -0
  28. package/lib/browser/component/terminal.variable.js +44 -0
  29. package/lib/browser/component/terminal.variable.js.map +1 -0
  30. package/lib/browser/component/terminal.view.d.ts +5 -0
  31. package/lib/browser/component/terminal.view.d.ts.map +1 -0
  32. package/lib/browser/component/terminal.view.js +63 -0
  33. package/lib/browser/component/terminal.view.js.map +1 -0
  34. package/lib/browser/component/terminal.widget.d.ts +10 -0
  35. package/lib/browser/component/terminal.widget.d.ts.map +1 -0
  36. package/lib/browser/component/terminal.widget.js +65 -0
  37. package/lib/browser/component/terminal.widget.js.map +1 -0
  38. package/lib/browser/component/variable.module.less +15 -0
  39. package/lib/browser/contribution/index.d.ts.map +1 -0
  40. package/lib/browser/contribution/index.js +11 -0
  41. package/lib/browser/contribution/index.js.map +1 -0
  42. package/lib/browser/contribution/terminal.command.js +328 -0
  43. package/lib/browser/contribution/terminal.keybinding.js +87 -0
  44. package/lib/browser/contribution/terminal.lifecycle.js +52 -0
  45. package/lib/browser/contribution/terminal.menu.js +168 -0
  46. package/lib/browser/contribution/terminal.network.js +44 -0
  47. package/lib/browser/contribution/terminal.preference.js +43 -0
  48. package/lib/browser/contribution/terminal.view.js +57 -0
  49. package/lib/browser/index.js +124 -0
  50. package/lib/browser/links/base.d.ts +8 -0
  51. package/lib/browser/links/base.d.ts.map +1 -0
  52. package/lib/browser/links/base.js +13 -0
  53. package/lib/browser/links/base.js.map +1 -0
  54. package/lib/browser/links/external-link-provider-adapter.d.ts +21 -0
  55. package/lib/browser/links/external-link-provider-adapter.d.ts.map +1 -0
  56. package/lib/browser/links/external-link-provider-adapter.js +74 -0
  57. package/lib/browser/links/external-link-provider-adapter.js.map +1 -0
  58. package/lib/browser/links/helpers.d.ts +7 -0
  59. package/lib/browser/links/helpers.d.ts.map +1 -0
  60. package/lib/browser/links/helpers.js +128 -0
  61. package/lib/browser/links/helpers.js.map +1 -0
  62. package/lib/browser/links/link-manager.d.ts +92 -0
  63. package/lib/browser/links/link-manager.d.ts.map +1 -0
  64. package/lib/browser/links/link-manager.js +342 -0
  65. package/lib/browser/links/link-manager.js.map +1 -0
  66. package/lib/browser/links/link.d.ts +31 -0
  67. package/lib/browser/links/link.d.ts.map +1 -0
  68. package/lib/browser/links/link.js +136 -0
  69. package/lib/browser/links/link.js.map +1 -0
  70. package/lib/browser/links/protocol-link-provider.d.ts +14 -0
  71. package/lib/browser/links/protocol-link-provider.d.ts.map +1 -0
  72. package/lib/browser/links/protocol-link-provider.js +71 -0
  73. package/lib/browser/links/protocol-link-provider.js.map +1 -0
  74. package/lib/browser/links/validated-local-link-provider.d.ts +41 -0
  75. package/lib/browser/links/validated-local-link-provider.d.ts.map +1 -0
  76. package/lib/browser/links/validated-local-link-provider.js +235 -0
  77. package/lib/browser/links/validated-local-link-provider.js.map +1 -0
  78. package/lib/browser/links/word-link-provider.d.ts +29 -0
  79. package/lib/browser/links/word-link-provider.d.ts.map +1 -0
  80. package/lib/browser/links/word-link-provider.js +153 -0
  81. package/lib/browser/links/word-link-provider.js.map +1 -0
  82. package/lib/browser/terminal.addon.js +83 -0
  83. package/lib/browser/terminal.api.js +162 -0
  84. package/lib/browser/terminal.client.js +680 -0
  85. package/lib/browser/terminal.color.js +240 -0
  86. package/lib/browser/terminal.context-key.js +29 -0
  87. package/lib/browser/terminal.context-menu.js +96 -0
  88. package/lib/browser/terminal.controller.js +669 -0
  89. package/lib/browser/terminal.environment.service.js +153 -0
  90. package/lib/browser/terminal.error.js +61 -0
  91. package/lib/browser/terminal.ext.host.proxy.js +108 -0
  92. package/lib/browser/terminal.hover.manager.js +85 -0
  93. package/lib/browser/terminal.input.js +32 -0
  94. package/lib/browser/terminal.internal.service.js +107 -0
  95. package/lib/browser/terminal.network.js +150 -0
  96. package/lib/browser/terminal.preference.js +136 -0
  97. package/lib/browser/terminal.profile.internal.js +104 -0
  98. package/lib/browser/terminal.profile.js +211 -0
  99. package/lib/browser/terminal.render.js +25 -0
  100. package/lib/browser/terminal.restore.js +49 -0
  101. package/lib/browser/terminal.search.js +109 -0
  102. package/lib/browser/terminal.service.js +163 -0
  103. package/lib/common/api.d.ts +22 -0
  104. package/lib/common/api.d.ts.map +1 -0
  105. package/lib/common/api.js +5 -0
  106. package/lib/common/api.js.map +1 -0
  107. package/lib/common/client.d.ts +199 -0
  108. package/lib/common/client.d.ts.map +1 -0
  109. package/lib/common/client.js +6 -0
  110. package/lib/common/client.js.map +1 -0
  111. package/lib/common/controller.d.ts +149 -0
  112. package/lib/common/controller.d.ts.map +1 -0
  113. package/lib/common/controller.js +8 -0
  114. package/lib/common/controller.js.map +1 -0
  115. package/lib/common/environmentVariable.d.ts +116 -0
  116. package/lib/common/environmentVariable.d.ts.map +1 -0
  117. package/lib/common/environmentVariable.js +30 -0
  118. package/lib/common/environmentVariable.js.map +1 -0
  119. package/lib/common/environmentVariableCollection.d.ts +9 -0
  120. package/lib/common/environmentVariableCollection.d.ts.map +1 -0
  121. package/lib/common/environmentVariableCollection.js +140 -0
  122. package/lib/common/environmentVariableCollection.js.map +1 -0
  123. package/lib/common/error.d.ts +41 -0
  124. package/lib/common/error.d.ts.map +1 -0
  125. package/lib/common/error.js +13 -0
  126. package/lib/common/error.js.map +1 -0
  127. package/lib/common/extension.d.ts +139 -0
  128. package/lib/common/extension.d.ts.map +1 -0
  129. package/lib/common/extension.js +57 -0
  130. package/lib/common/extension.js.map +1 -0
  131. package/lib/common/index.d.ts +17 -0
  132. package/lib/common/index.d.ts.map +1 -0
  133. package/lib/common/index.js +20 -0
  134. package/lib/common/index.js.map +1 -0
  135. package/lib/common/link-computer.d.ts +56 -0
  136. package/lib/common/link-computer.d.ts.map +1 -0
  137. package/lib/common/link-computer.js +282 -0
  138. package/lib/common/link-computer.js.map +1 -0
  139. package/lib/common/network.d.ts +48 -0
  140. package/lib/common/network.d.ts.map +1 -0
  141. package/lib/common/network.js +10 -0
  142. package/lib/common/network.js.map +1 -0
  143. package/lib/common/preference.d.ts +134 -0
  144. package/lib/common/preference.d.ts.map +1 -0
  145. package/lib/common/preference.js +199 -0
  146. package/lib/common/preference.js.map +1 -0
  147. package/lib/common/process.d.ts +8 -0
  148. package/lib/common/process.d.ts.map +1 -0
  149. package/lib/common/process.js +3 -0
  150. package/lib/common/process.js.map +1 -0
  151. package/lib/common/profile.d.ts +99 -0
  152. package/lib/common/profile.d.ts.map +1 -0
  153. package/lib/common/profile.js +27 -0
  154. package/lib/common/profile.js.map +1 -0
  155. package/lib/common/pty.d.ts +525 -0
  156. package/lib/common/pty.d.ts.map +1 -0
  157. package/lib/common/pty.js +28 -0
  158. package/lib/common/pty.js.map +1 -0
  159. package/lib/common/render.d.ts +29 -0
  160. package/lib/common/render.d.ts.map +1 -0
  161. package/lib/common/render.js +10 -0
  162. package/lib/common/render.js.map +1 -0
  163. package/lib/common/resize.d.ts +43 -0
  164. package/lib/common/resize.d.ts.map +1 -0
  165. package/lib/common/resize.js +3 -0
  166. package/lib/common/resize.js.map +1 -0
  167. package/lib/common/restore.d.ts +6 -0
  168. package/lib/common/restore.d.ts.map +1 -0
  169. package/lib/common/restore.js +5 -0
  170. package/lib/common/restore.js.map +1 -0
  171. package/lib/common/service.d.ts +96 -0
  172. package/lib/common/service.d.ts.map +1 -0
  173. package/lib/common/service.js +6 -0
  174. package/lib/common/service.js.map +1 -0
  175. package/lib/common/shell.d.ts +11 -0
  176. package/lib/common/shell.d.ts.map +1 -0
  177. package/lib/common/shell.js +14 -0
  178. package/lib/common/shell.js.map +1 -0
  179. package/lib/common/theme.d.ts +6 -0
  180. package/lib/common/theme.d.ts.map +1 -0
  181. package/lib/common/theme.js +5 -0
  182. package/lib/common/theme.js.map +1 -0
  183. package/lib/common/utils.d.ts +4 -0
  184. package/lib/common/utils.d.ts.map +1 -0
  185. package/lib/common/utils.js +15 -0
  186. package/lib/common/utils.js.map +1 -0
  187. package/lib/common/xterm.d.ts +27 -0
  188. package/lib/common/xterm.d.ts.map +1 -0
  189. package/lib/common/xterm.js +10 -0
  190. package/lib/common/xterm.js.map +1 -0
  191. package/lib/index.js +5 -0
  192. package/lib/node/data-store.d.ts +13 -0
  193. package/lib/node/data-store.d.ts.map +1 -0
  194. package/lib/node/data-store.js +6 -0
  195. package/lib/node/data-store.js.map +1 -0
  196. package/lib/node/index.d.ts +10 -0
  197. package/lib/node/index.d.ts.map +1 -0
  198. package/lib/node/index.js +64 -0
  199. package/lib/node/index.js.map +1 -0
  200. package/lib/node/pty.d.ts +42 -0
  201. package/lib/node/pty.d.ts.map +1 -0
  202. package/lib/node/pty.js +277 -0
  203. package/lib/node/pty.js.map +1 -0
  204. package/lib/node/pty.manager.d.ts +52 -0
  205. package/lib/node/pty.manager.d.ts.map +1 -0
  206. package/lib/node/pty.manager.js +157 -0
  207. package/lib/node/pty.manager.js.map +1 -0
  208. package/lib/node/pty.manager.remote.d.ts +23 -0
  209. package/lib/node/pty.manager.remote.d.ts.map +1 -0
  210. package/lib/node/pty.manager.remote.js +124 -0
  211. package/lib/node/pty.manager.remote.js.map +1 -0
  212. package/lib/node/pty.proxy.d.ts +45 -0
  213. package/lib/node/pty.proxy.d.ts.map +1 -0
  214. package/lib/node/pty.proxy.js +277 -0
  215. package/lib/node/pty.proxy.js.map +1 -0
  216. package/lib/node/pty.proxy.remote.exec.d.ts +2 -0
  217. package/lib/node/pty.proxy.remote.exec.d.ts.map +1 -0
  218. package/lib/node/pty.proxy.remote.exec.js +7 -0
  219. package/lib/node/pty.proxy.remote.exec.js.map +1 -0
  220. package/lib/node/shell-integration.service.d.ts +24 -0
  221. package/lib/node/shell-integration.service.d.ts.map +1 -0
  222. package/lib/node/shell-integration.service.js +187 -0
  223. package/lib/node/shell-integration.service.js.map +1 -0
  224. package/lib/node/shell.d.ts +20 -0
  225. package/lib/node/shell.d.ts.map +1 -0
  226. package/lib/node/shell.js +199 -0
  227. package/lib/node/shell.js.map +1 -0
  228. package/lib/node/terminal.process.service.d.ts +5 -0
  229. package/lib/node/terminal.process.service.d.ts.map +1 -0
  230. package/lib/node/terminal.process.service.js +15 -0
  231. package/lib/node/terminal.process.service.js.map +1 -0
  232. package/lib/node/terminal.profile.service.d.ts +19 -0
  233. package/lib/node/terminal.profile.service.d.ts.map +1 -0
  234. package/lib/node/terminal.profile.service.js +228 -0
  235. package/lib/node/terminal.profile.service.js.map +1 -0
  236. package/lib/node/terminal.service.client.d.ts +51 -0
  237. package/lib/node/terminal.service.client.d.ts.map +1 -0
  238. package/lib/node/terminal.service.client.js +159 -0
  239. package/lib/node/terminal.service.client.js.map +1 -0
  240. package/lib/node/terminal.service.d.ts +30 -0
  241. package/lib/node/terminal.service.d.ts.map +1 -0
  242. package/lib/node/terminal.service.js +246 -0
  243. package/lib/node/terminal.service.js.map +1 -0
  244. package/package.json +18 -18
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./controller"), exports);
5
+ tslib_1.__exportStar(require("./resize"), exports);
6
+ tslib_1.__exportStar(require("./restore"), exports);
7
+ tslib_1.__exportStar(require("./error"), exports);
8
+ tslib_1.__exportStar(require("./pty"), exports);
9
+ tslib_1.__exportStar(require("./service"), exports);
10
+ tslib_1.__exportStar(require("./client"), exports);
11
+ tslib_1.__exportStar(require("./api"), exports);
12
+ tslib_1.__exportStar(require("./theme"), exports);
13
+ tslib_1.__exportStar(require("./utils"), exports);
14
+ tslib_1.__exportStar(require("./render"), exports);
15
+ tslib_1.__exportStar(require("./extension"), exports);
16
+ tslib_1.__exportStar(require("./network"), exports);
17
+ tslib_1.__exportStar(require("./link-computer"), exports);
18
+ tslib_1.__exportStar(require("./profile"), exports);
19
+ tslib_1.__exportStar(require("./process"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,mDAAyB;AACzB,oDAA0B;AAC1B,kDAAwB;AACxB,gDAAsB;AACtB,oDAA0B;AAC1B,mDAAyB;AACzB,gDAAsB;AACtB,kDAAwB;AACxB,kDAAwB;AACxB,mDAAyB;AACzB,sDAA4B;AAC5B,oDAA0B;AAC1B,0DAAgC;AAChC,oDAA0B;AAC1B,oDAA0B"}
@@ -0,0 +1,56 @@
1
+ import { IRange, URI } from '@opensumi/ide-core-common';
2
+ /**
3
+ * A link inside the editor.
4
+ */
5
+ export interface ILink {
6
+ range: IRange;
7
+ url?: URI | string;
8
+ tooltip?: string;
9
+ }
10
+ export interface ILinkComputerTarget {
11
+ getLineCount(): number;
12
+ getLineContent(lineNumber: number): string;
13
+ }
14
+ export declare const enum State {
15
+ Invalid = 0,
16
+ Start = 1,
17
+ H = 2,
18
+ HT = 3,
19
+ HTT = 4,
20
+ HTTP = 5,
21
+ F = 6,
22
+ FI = 7,
23
+ FIL = 8,
24
+ BeforeColon = 9,
25
+ AfterColon = 10,
26
+ AlmostThere = 11,
27
+ End = 12,
28
+ Accept = 13,
29
+ LastKnownState = 14
30
+ }
31
+ export type Edge = [State, number, State];
32
+ export declare class Uint8Matrix {
33
+ private readonly _data;
34
+ readonly rows: number;
35
+ readonly cols: number;
36
+ constructor(rows: number, cols: number, defaultValue: number);
37
+ get(row: number, col: number): number;
38
+ set(row: number, col: number, value: number): void;
39
+ }
40
+ export declare class StateMachine {
41
+ private readonly _states;
42
+ private readonly _maxCharCode;
43
+ constructor(edges: Edge[]);
44
+ nextState(currentState: State, chCode: number): State;
45
+ }
46
+ export declare class LinkComputer {
47
+ private static _createLink;
48
+ static computeLinks(model: ILinkComputerTarget, stateMachine?: StateMachine): ILink[];
49
+ }
50
+ /**
51
+ * Returns an array of all links contains in the provided
52
+ * document. *Note* that this operation is computational
53
+ * expensive and should not run in the UI thread.
54
+ */
55
+ export declare function computeLinks(model: ILinkComputerTarget | null): ILink[];
56
+ //# sourceMappingURL=link-computer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-computer.d.ts","sourceRoot":"","sources":["../../src/common/link-computer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiC,MAAM,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,IAAI,MAAM,CAAC;IACvB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5C;AAED,0BAAkB,KAAK;IACrB,OAAO,IAAI;IACX,KAAK,IAAI;IACT,CAAC,IAAI;IACL,EAAE,IAAI;IACN,GAAG,IAAI;IACP,IAAI,IAAI;IACR,CAAC,IAAI;IACL,EAAE,IAAI;IACN,GAAG,IAAI;IACP,WAAW,IAAI;IACf,UAAU,KAAK;IACf,WAAW,KAAK;IAChB,GAAG,KAAK;IACR,MAAM,KAAK;IACX,cAAc,KAAK;CACpB;AAED,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1C,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAWrD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM;IAIrC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAG1D;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,KAAK,EAAE,IAAI,EAAE;IA6BlB,SAAS,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;CAM7D;AAoED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,WAAW;WA8CZ,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,YAAY,GAAE,YAAgC,GAAG,KAAK,EAAE;CAmIhH;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAAG,KAAK,EAAE,CAMvE"}
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ /* ---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ // Some code copied and modified from https://github.com/microsoft/vscode/blob/1.44.0/src/vs/editor/common/modes/linkComputer.ts
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.LinkComputer = exports.StateMachine = exports.Uint8Matrix = void 0;
9
+ exports.computeLinks = computeLinks;
10
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
11
+ class Uint8Matrix {
12
+ constructor(rows, cols, defaultValue) {
13
+ const data = new Uint8Array(rows * cols);
14
+ for (let i = 0, len = rows * cols; i < len; i++) {
15
+ data[i] = defaultValue;
16
+ }
17
+ this._data = data;
18
+ this.rows = rows;
19
+ this.cols = cols;
20
+ }
21
+ get(row, col) {
22
+ return this._data[row * this.cols + col];
23
+ }
24
+ set(row, col, value) {
25
+ this._data[row * this.cols + col] = value;
26
+ }
27
+ }
28
+ exports.Uint8Matrix = Uint8Matrix;
29
+ class StateMachine {
30
+ constructor(edges) {
31
+ let maxCharCode = 0;
32
+ let maxState = 0 /* State.Invalid */;
33
+ for (let i = 0, len = edges.length; i < len; i++) {
34
+ const [from, chCode, to] = edges[i];
35
+ if (chCode > maxCharCode) {
36
+ maxCharCode = chCode;
37
+ }
38
+ if (from > maxState) {
39
+ maxState = from;
40
+ }
41
+ if (to > maxState) {
42
+ maxState = to;
43
+ }
44
+ }
45
+ maxCharCode++;
46
+ maxState++;
47
+ const states = new Uint8Matrix(maxState, maxCharCode, 0 /* State.Invalid */);
48
+ for (let i = 0, len = edges.length; i < len; i++) {
49
+ const [from, chCode, to] = edges[i];
50
+ states.set(from, chCode, to);
51
+ }
52
+ this._states = states;
53
+ this._maxCharCode = maxCharCode;
54
+ }
55
+ nextState(currentState, chCode) {
56
+ if (chCode < 0 || chCode >= this._maxCharCode) {
57
+ return 0 /* State.Invalid */;
58
+ }
59
+ return this._states.get(currentState, chCode);
60
+ }
61
+ }
62
+ exports.StateMachine = StateMachine;
63
+ // State machine for http:// or https:// or file://
64
+ let _stateMachine = null;
65
+ function getStateMachine() {
66
+ if (_stateMachine === null) {
67
+ _stateMachine = new StateMachine([
68
+ [1 /* State.Start */, 104 /* CharCode.h */, 2 /* State.H */],
69
+ [1 /* State.Start */, 72 /* CharCode.H */, 2 /* State.H */],
70
+ [1 /* State.Start */, 102 /* CharCode.f */, 6 /* State.F */],
71
+ [1 /* State.Start */, 70 /* CharCode.F */, 6 /* State.F */],
72
+ [2 /* State.H */, 116 /* CharCode.t */, 3 /* State.HT */],
73
+ [2 /* State.H */, 84 /* CharCode.T */, 3 /* State.HT */],
74
+ [3 /* State.HT */, 116 /* CharCode.t */, 4 /* State.HTT */],
75
+ [3 /* State.HT */, 84 /* CharCode.T */, 4 /* State.HTT */],
76
+ [4 /* State.HTT */, 112 /* CharCode.p */, 5 /* State.HTTP */],
77
+ [4 /* State.HTT */, 80 /* CharCode.P */, 5 /* State.HTTP */],
78
+ [5 /* State.HTTP */, 115 /* CharCode.s */, 9 /* State.BeforeColon */],
79
+ [5 /* State.HTTP */, 83 /* CharCode.S */, 9 /* State.BeforeColon */],
80
+ [5 /* State.HTTP */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */],
81
+ [6 /* State.F */, 105 /* CharCode.i */, 7 /* State.FI */],
82
+ [6 /* State.F */, 73 /* CharCode.I */, 7 /* State.FI */],
83
+ [7 /* State.FI */, 108 /* CharCode.l */, 8 /* State.FIL */],
84
+ [7 /* State.FI */, 76 /* CharCode.L */, 8 /* State.FIL */],
85
+ [8 /* State.FIL */, 101 /* CharCode.e */, 9 /* State.BeforeColon */],
86
+ [8 /* State.FIL */, 69 /* CharCode.E */, 9 /* State.BeforeColon */],
87
+ [9 /* State.BeforeColon */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */],
88
+ [10 /* State.AfterColon */, 47 /* CharCode.Slash */, 11 /* State.AlmostThere */],
89
+ [11 /* State.AlmostThere */, 47 /* CharCode.Slash */, 12 /* State.End */],
90
+ ]);
91
+ }
92
+ return _stateMachine;
93
+ }
94
+ let _classifier = null;
95
+ function getClassifier() {
96
+ if (_classifier === null) {
97
+ _classifier = new ide_core_common_1.CharacterClassifier(0 /* CharacterClass.None */);
98
+ const FORCE_TERMINATION_CHARACTERS = ' \t<>\'"、。。、,.:;‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…';
99
+ for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {
100
+ _classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */);
101
+ }
102
+ const CANNOT_END_WITH_CHARACTERS = '.,;';
103
+ for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {
104
+ _classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */);
105
+ }
106
+ }
107
+ return _classifier;
108
+ }
109
+ class LinkComputer {
110
+ static _createLink(classifier, line, lineNumber, linkBeginIndex, linkEndIndex) {
111
+ // Do not allow to end link in certain characters...
112
+ let lastIncludedCharIndex = linkEndIndex - 1;
113
+ do {
114
+ const chCode = line.charCodeAt(lastIncludedCharIndex);
115
+ const chClass = classifier.get(chCode);
116
+ if (chClass !== 2 /* CharacterClass.CannotEndIn */) {
117
+ break;
118
+ }
119
+ lastIncludedCharIndex--;
120
+ } while (lastIncludedCharIndex > linkBeginIndex);
121
+ // Handle links enclosed in parens, square brackets and curlys.
122
+ if (linkBeginIndex > 0) {
123
+ const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1);
124
+ const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex);
125
+ if ((charCodeBeforeLink === 40 /* CharCode.OpenParen */ && lastCharCodeInLink === 41 /* CharCode.CloseParen */) ||
126
+ (charCodeBeforeLink === 91 /* CharCode.OpenSquareBracket */ && lastCharCodeInLink === 93 /* CharCode.CloseSquareBracket */) ||
127
+ (charCodeBeforeLink === 123 /* CharCode.OpenCurlyBrace */ && lastCharCodeInLink === 125 /* CharCode.CloseCurlyBrace */)) {
128
+ // Do not end in ) if ( is before the link start
129
+ // Do not end in ] if [ is before the link start
130
+ // Do not end in } if { is before the link start
131
+ lastIncludedCharIndex--;
132
+ }
133
+ }
134
+ return {
135
+ range: {
136
+ startLineNumber: lineNumber,
137
+ startColumn: linkBeginIndex + 1,
138
+ endLineNumber: lineNumber,
139
+ endColumn: lastIncludedCharIndex + 2,
140
+ },
141
+ url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1),
142
+ };
143
+ }
144
+ static computeLinks(model, stateMachine = getStateMachine()) {
145
+ const classifier = getClassifier();
146
+ const result = [];
147
+ for (let i = 1, lineCount = model.getLineCount(); i <= lineCount; i++) {
148
+ const line = model.getLineContent(i);
149
+ const len = line.length;
150
+ let j = 0;
151
+ let linkBeginIndex = 0;
152
+ let linkBeginChCode = 0;
153
+ let state = 1 /* State.Start */;
154
+ let hasOpenParens = false;
155
+ let hasOpenSquareBracket = false;
156
+ let inSquareBrackets = false;
157
+ let hasOpenCurlyBracket = false;
158
+ while (j < len) {
159
+ let resetStateMachine = false;
160
+ const chCode = line.charCodeAt(j);
161
+ if (state === 13 /* State.Accept */) {
162
+ let chClass;
163
+ switch (chCode) {
164
+ case 40 /* CharCode.OpenParen */:
165
+ hasOpenParens = true;
166
+ chClass = 0 /* CharacterClass.None */;
167
+ break;
168
+ case 41 /* CharCode.CloseParen */:
169
+ chClass = hasOpenParens ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */;
170
+ break;
171
+ case 91 /* CharCode.OpenSquareBracket */:
172
+ inSquareBrackets = true;
173
+ hasOpenSquareBracket = true;
174
+ chClass = 0 /* CharacterClass.None */;
175
+ break;
176
+ case 93 /* CharCode.CloseSquareBracket */:
177
+ inSquareBrackets = false;
178
+ chClass = hasOpenSquareBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */;
179
+ break;
180
+ case 123 /* CharCode.OpenCurlyBrace */:
181
+ hasOpenCurlyBracket = true;
182
+ chClass = 0 /* CharacterClass.None */;
183
+ break;
184
+ case 125 /* CharCode.CloseCurlyBrace */:
185
+ chClass = hasOpenCurlyBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */;
186
+ break;
187
+ /* The following three rules make it that ' or " or ` are allowed inside links if the link began with a different one */
188
+ case 39 /* CharCode.SingleQuote */:
189
+ chClass =
190
+ linkBeginChCode === 34 /* CharCode.DoubleQuote */ || linkBeginChCode === 96 /* CharCode.BackTick */
191
+ ? 0 /* CharacterClass.None */
192
+ : 1 /* CharacterClass.ForceTermination */;
193
+ break;
194
+ case 34 /* CharCode.DoubleQuote */:
195
+ chClass =
196
+ linkBeginChCode === 39 /* CharCode.SingleQuote */ || linkBeginChCode === 96 /* CharCode.BackTick */
197
+ ? 0 /* CharacterClass.None */
198
+ : 1 /* CharacterClass.ForceTermination */;
199
+ break;
200
+ case 96 /* CharCode.BackTick */:
201
+ chClass =
202
+ linkBeginChCode === 39 /* CharCode.SingleQuote */ || linkBeginChCode === 34 /* CharCode.DoubleQuote */
203
+ ? 0 /* CharacterClass.None */
204
+ : 1 /* CharacterClass.ForceTermination */;
205
+ break;
206
+ case 42 /* CharCode.Asterisk */:
207
+ // `*` terminates a link if the link began with `*`
208
+ chClass = linkBeginChCode === 42 /* CharCode.Asterisk */ ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */;
209
+ break;
210
+ case 124 /* CharCode.Pipe */:
211
+ // `|` terminates a link if the link began with `|`
212
+ chClass = linkBeginChCode === 124 /* CharCode.Pipe */ ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */;
213
+ break;
214
+ case 32 /* CharCode.Space */:
215
+ // ` ` allow space in between [ and ]
216
+ chClass = inSquareBrackets ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */;
217
+ break;
218
+ default:
219
+ chClass = classifier.get(chCode);
220
+ }
221
+ // Check if character terminates link
222
+ if (chClass === 1 /* CharacterClass.ForceTermination */) {
223
+ result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, j));
224
+ resetStateMachine = true;
225
+ }
226
+ }
227
+ else if (state === 12 /* State.End */) {
228
+ let chClass;
229
+ if (chCode === 91 /* CharCode.OpenSquareBracket */) {
230
+ // Allow for the authority part to contain ipv6 addresses which contain [ and ]
231
+ hasOpenSquareBracket = true;
232
+ chClass = 0 /* CharacterClass.None */;
233
+ }
234
+ else {
235
+ chClass = classifier.get(chCode);
236
+ }
237
+ // Check if character terminates link
238
+ if (chClass === 1 /* CharacterClass.ForceTermination */) {
239
+ resetStateMachine = true;
240
+ }
241
+ else {
242
+ state = 13 /* State.Accept */;
243
+ }
244
+ }
245
+ else {
246
+ state = stateMachine.nextState(state, chCode);
247
+ if (state === 0 /* State.Invalid */) {
248
+ resetStateMachine = true;
249
+ }
250
+ }
251
+ if (resetStateMachine) {
252
+ state = 1 /* State.Start */;
253
+ hasOpenParens = false;
254
+ hasOpenSquareBracket = false;
255
+ hasOpenCurlyBracket = false;
256
+ // Record where the link started
257
+ linkBeginIndex = j + 1;
258
+ linkBeginChCode = chCode;
259
+ }
260
+ j++;
261
+ }
262
+ if (state === 13 /* State.Accept */) {
263
+ result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, len));
264
+ }
265
+ }
266
+ return result;
267
+ }
268
+ }
269
+ exports.LinkComputer = LinkComputer;
270
+ /**
271
+ * Returns an array of all links contains in the provided
272
+ * document. *Note* that this operation is computational
273
+ * expensive and should not run in the UI thread.
274
+ */
275
+ function computeLinks(model) {
276
+ if (!model || typeof model.getLineCount !== 'function' || typeof model.getLineContent !== 'function') {
277
+ // Unknown caller!
278
+ return [];
279
+ }
280
+ return LinkComputer.computeLinks(model);
281
+ }
282
+ //# sourceMappingURL=link-computer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-computer.js","sourceRoot":"","sources":["../../src/common/link-computer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export declare const ITerminalNetwork: unique symbol;
2
+ export declare enum TerminalNetworkStatus {
3
+ DISCONNECTED = 0,
4
+ CONNECTED = 1
5
+ }
6
+ export interface ITerminalNetwork {
7
+ bindErrors(): void;
8
+ /**
9
+ * 当前网络状态
10
+ */
11
+ status: TerminalNetworkStatus;
12
+ /**
13
+ * 更新网络状态
14
+ */
15
+ setStatus(status: TerminalNetworkStatus): void;
16
+ /**
17
+ * 触发一次重连
18
+ */
19
+ reconnect(): void;
20
+ /**
21
+ * 重连 sessionId 指定的 client
22
+ */
23
+ reconnectClient(sessionId: string): Promise<void>;
24
+ /**
25
+ * 安排重连任务,具体的触发时机由底层决定。
26
+ * 此方法可以多次调用,不会频繁触发重连。
27
+ */
28
+ scheduleReconnection(): void;
29
+ /**
30
+ * 是否准备重试
31
+ */
32
+ shouldReconnect(sessionId: string): boolean;
33
+ /**
34
+ * 获取当前的重试信息
35
+ */
36
+ getReconnectInfo(sessionId: string): ITerminalReconnectInfo;
37
+ }
38
+ export interface ITerminalReconnectInfo {
39
+ /**
40
+ * 重试次数
41
+ */
42
+ times: number;
43
+ /**
44
+ * 下一次重试的时间
45
+ */
46
+ nextRetry: number;
47
+ }
48
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/common/network.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D,oBAAY,qBAAqB;IAC/B,YAAY,IAAI;IAChB,SAAS,IAAI;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAE/C;;OAEG;IACH,SAAS,IAAI,IAAI,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD;;;OAGG;IACH,oBAAoB,IAAI,IAAI,CAAC;IAE7B;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5C;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB,CAAC;CAC7D;AAED,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TerminalNetworkStatus = exports.ITerminalNetwork = void 0;
4
+ exports.ITerminalNetwork = Symbol('ITerminalNetwork');
5
+ var TerminalNetworkStatus;
6
+ (function (TerminalNetworkStatus) {
7
+ TerminalNetworkStatus[TerminalNetworkStatus["DISCONNECTED"] = 0] = "DISCONNECTED";
8
+ TerminalNetworkStatus[TerminalNetworkStatus["CONNECTED"] = 1] = "CONNECTED";
9
+ })(TerminalNetworkStatus || (exports.TerminalNetworkStatus = TerminalNetworkStatus = {}));
10
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/common/network.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE3D,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,iFAAgB,CAAA;IAChB,2EAAa,CAAA;AACf,CAAC,EAHW,qBAAqB,qCAArB,qBAAqB,QAGhC"}
@@ -0,0 +1,134 @@
1
+ import { Event } from '@opensumi/ide-core-common';
2
+ import { PreferenceSchema } from '@opensumi/ide-core-common/lib/preferences';
3
+ export interface IPreferenceValue {
4
+ name: string;
5
+ value: string | number | boolean | Array<string | number | boolean>;
6
+ }
7
+ export declare const ITerminalPreference: unique symbol;
8
+ export interface ITerminalPreference {
9
+ get<T = any>(key: string): T;
10
+ onChange: Event<IPreferenceValue>;
11
+ toJSON(): any;
12
+ }
13
+ export interface SupportedOptions {
14
+ allowTransparency: boolean;
15
+ macOptionIsMeta: boolean;
16
+ cursorBlink: boolean;
17
+ scrollback: number;
18
+ tabStopWidth: number;
19
+ fontSize: number;
20
+ copyOnSelection: boolean;
21
+ fontFamily: string;
22
+ cursorStyle: 'block' | 'underline' | 'bar';
23
+ }
24
+ export declare const SupportedOptionsName: {
25
+ type: string;
26
+ fontFamily: string;
27
+ fontSize: string;
28
+ fontWeight: string;
29
+ lineHeight: string;
30
+ cursorBlink: string;
31
+ scrollback: string;
32
+ copyOnSelection: string;
33
+ cursorStyle: string;
34
+ };
35
+ export declare const enum CodeTerminalSettingPrefix {
36
+ Shell = "terminal.integrated.shell.",
37
+ ShellArgs = "terminal.integrated.shellArgs.",
38
+ DefaultProfile = "terminal.integrated.defaultProfile.",
39
+ Profiles = "terminal.integrated.profiles."
40
+ }
41
+ export declare const enum CodeTerminalSettingId {
42
+ ShellLinux = "terminal.integrated.shell.linux",
43
+ ShellMacOs = "terminal.integrated.shell.osx",
44
+ ShellWindows = "terminal.integrated.shell.windows",
45
+ SendKeybindingsToShell = "terminal.integrated.sendKeybindingsToShell",
46
+ AutomationShellLinux = "terminal.integrated.automationShell.linux",
47
+ AutomationShellMacOs = "terminal.integrated.automationShell.osx",
48
+ AutomationShellWindows = "terminal.integrated.automationShell.windows",
49
+ AutomationProfileLinux = "terminal.integrated.automationProfile.linux",
50
+ AutomationProfileMacOs = "terminal.integrated.automationProfile.osx",
51
+ AutomationProfileWindows = "terminal.integrated.automationProfile.windows",
52
+ ShellArgsLinux = "terminal.integrated.shellArgs.linux",
53
+ ShellArgsMacOs = "terminal.integrated.shellArgs.osx",
54
+ ShellArgsWindows = "terminal.integrated.shellArgs.windows",
55
+ ProfilesWindows = "terminal.integrated.profiles.windows",
56
+ ProfilesMacOs = "terminal.integrated.profiles.osx",
57
+ ProfilesLinux = "terminal.integrated.profiles.linux",
58
+ DefaultProfileLinux = "terminal.integrated.defaultProfile.linux",
59
+ DefaultProfileMacOs = "terminal.integrated.defaultProfile.osx",
60
+ DefaultProfileWindows = "terminal.integrated.defaultProfile.windows",
61
+ UseWslProfiles = "terminal.integrated.useWslProfiles",
62
+ TabsEnabled = "terminal.integrated.tabs.enabled",
63
+ TabsEnableAnimation = "terminal.integrated.tabs.enableAnimation",
64
+ TabsHideCondition = "terminal.integrated.tabs.hideCondition",
65
+ TabsShowActiveTerminal = "terminal.integrated.tabs.showActiveTerminal",
66
+ TabsShowActions = "terminal.integrated.tabs.showActions",
67
+ TabsLocation = "terminal.integrated.tabs.location",
68
+ TabsFocusMode = "terminal.integrated.tabs.focusMode",
69
+ MacOptionIsMeta = "terminal.integrated.macOptionIsMeta",
70
+ MacOptionClickForcesSelection = "terminal.integrated.macOptionClickForcesSelection",
71
+ AltClickMovesCursor = "terminal.integrated.altClickMovesCursor",
72
+ CopyOnSelection = "terminal.integrated.copyOnSelection",
73
+ DrawBoldTextInBrightColors = "terminal.integrated.drawBoldTextInBrightColors",
74
+ FontFamily = "terminal.integrated.fontFamily",
75
+ FontSize = "terminal.integrated.fontSize",
76
+ LetterSpacing = "terminal.integrated.letterSpacing",
77
+ LineHeight = "terminal.integrated.lineHeight",
78
+ MinimumContrastRatio = "terminal.integrated.minimumContrastRatio",
79
+ FastScrollSensitivity = "terminal.integrated.fastScrollSensitivity",
80
+ MouseWheelScrollSensitivity = "terminal.integrated.mouseWheelScrollSensitivity",
81
+ BellDuration = "terminal.integrated.bellDuration",
82
+ FontWeight = "terminal.integrated.fontWeight",
83
+ FontWeightBold = "terminal.integrated.fontWeightBold",
84
+ CursorBlinking = "terminal.integrated.cursorBlinking",
85
+ CursorStyle = "terminal.integrated.cursorStyle",
86
+ CursorWidth = "terminal.integrated.cursorWidth",
87
+ Scrollback = "terminal.integrated.scrollback",
88
+ DetectLocale = "terminal.integrated.detectLocale",
89
+ DefaultLocation = "terminal.integrated.defaultLocation",
90
+ GpuAcceleration = "terminal.integrated.gpuAcceleration",
91
+ TerminalTitleSeparator = "terminal.integrated.tabs.separator",
92
+ TerminalTitle = "terminal.integrated.tabs.title",
93
+ TerminalDescription = "terminal.integrated.tabs.description",
94
+ RightClickBehavior = "terminal.integrated.rightClickBehavior",
95
+ Cwd = "terminal.integrated.cwd",
96
+ ConfirmOnExit = "terminal.integrated.confirmOnExit",
97
+ ConfirmOnKill = "terminal.integrated.confirmOnKill",
98
+ EnableBell = "terminal.integrated.enableBell",
99
+ CommandsToSkipShell = "terminal.integrated.commandsToSkipShell",
100
+ AllowChords = "terminal.integrated.allowChords",
101
+ AllowMnemonics = "terminal.integrated.allowMnemonics",
102
+ EnvMacOs = "terminal.integrated.env.osx",
103
+ EnvLinux = "terminal.integrated.env.linux",
104
+ EnvWindows = "terminal.integrated.env.windows",
105
+ EnvironmentChangesIndicator = "terminal.integrated.environmentChangesIndicator",
106
+ EnvironmentChangesRelaunch = "terminal.integrated.environmentChangesRelaunch",
107
+ ShowExitAlert = "terminal.integrated.showExitAlert",
108
+ SplitCwd = "terminal.integrated.splitCwd",
109
+ WindowsEnableConpty = "terminal.integrated.windowsEnableConpty",
110
+ WordSeparators = "terminal.integrated.wordSeparators",
111
+ EnableFileLinks = "terminal.integrated.enableFileLinks",
112
+ UnicodeVersion = "terminal.integrated.unicodeVersion",
113
+ ExperimentalLinkProvider = "terminal.integrated.experimentalLinkProvider",
114
+ LocalEchoLatencyThreshold = "terminal.integrated.localEchoLatencyThreshold",
115
+ LocalEchoEnabled = "terminal.integrated.localEchoEnabled",
116
+ LocalEchoExcludePrograms = "terminal.integrated.localEchoExcludePrograms",
117
+ LocalEchoStyle = "terminal.integrated.localEchoStyle",
118
+ XtermRenderType = "terminal.integrated.xtermRenderType",
119
+ EnablePersistentSessions = "terminal.integrated.enablePersistentSessions",
120
+ PersistentSessionReviveProcess = "terminal.integrated.persistentSessionReviveProcess",
121
+ CustomGlyphs = "terminal.integrated.customGlyphs",
122
+ PersistentSessionScrollback = "terminal.integrated.persistentSessionScrollback",
123
+ InheritEnv = "terminal.integrated.inheritEnv",
124
+ ShowLinkHover = "terminal.integrated.showLinkHover",
125
+ IgnoreProcessNames = "terminal.integrated.ignoreProcessNames",
126
+ AutoReplies = "terminal.integrated.autoReplies"
127
+ }
128
+ export declare const TerminalCursorStyle: {
129
+ BLOCK: string;
130
+ LINE: string;
131
+ UNDERLINE: string;
132
+ };
133
+ export declare const terminalPreferenceSchema: PreferenceSchema;
134
+ //# sourceMappingURL=preference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preference.d.ts","sourceRoot":"","sources":["../../src/common/preference.ts"],"names":[],"mappings":"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"}