@opensumi/ide-debug 2.21.13 → 2.22.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 (338) hide show
  1. package/lib/browser/breakpoint/breakpoint-manager.js.map +1 -1
  2. package/lib/browser/breakpoint/breakpoint-marker.d.ts +1 -1
  3. package/lib/browser/breakpoint/breakpoint-marker.d.ts.map +1 -1
  4. package/lib/browser/breakpoint/breakpoint-marker.js +3 -2
  5. package/lib/browser/breakpoint/breakpoint-marker.js.map +1 -1
  6. package/lib/browser/contextkeys/debug-call-stack-item-type-key.d.ts +1 -1
  7. package/lib/browser/contextkeys/debug-call-stack-item-type-key.d.ts.map +1 -1
  8. package/lib/browser/contextkeys/debug-contextkey.service.js.map +1 -1
  9. package/lib/browser/debug-configuration-manager.d.ts +2 -2
  10. package/lib/browser/debug-configuration-manager.d.ts.map +1 -1
  11. package/lib/browser/debug-configuration-manager.js +2 -2
  12. package/lib/browser/debug-configuration-manager.js.map +1 -1
  13. package/lib/browser/debug-contribution.d.ts +2 -147
  14. package/lib/browser/debug-contribution.d.ts.map +1 -1
  15. package/lib/browser/debug-contribution.js +50 -200
  16. package/lib/browser/debug-contribution.js.map +1 -1
  17. package/lib/browser/debug-exception-widget.js.map +1 -1
  18. package/lib/browser/debug-link-detector.js.map +1 -1
  19. package/lib/browser/debug-memory.js +4 -4
  20. package/lib/browser/debug-memory.js.map +1 -1
  21. package/lib/browser/debug-preferences.d.ts +1 -1
  22. package/lib/browser/debug-preferences.d.ts.map +1 -1
  23. package/lib/browser/debug-progress.service.js.map +1 -1
  24. package/lib/browser/debug-schema-updater.js.map +1 -1
  25. package/lib/browser/debug-service.js.map +1 -1
  26. package/lib/browser/debug-session-connection.d.ts +2 -3
  27. package/lib/browser/debug-session-connection.d.ts.map +1 -1
  28. package/lib/browser/debug-session-connection.js.map +1 -1
  29. package/lib/browser/debug-session-contribution.js.map +1 -1
  30. package/lib/browser/debug-session-manager.d.ts +3 -4
  31. package/lib/browser/debug-session-manager.d.ts.map +1 -1
  32. package/lib/browser/debug-session-manager.js +7 -8
  33. package/lib/browser/debug-session-manager.js.map +1 -1
  34. package/lib/browser/debug-session.d.ts +3 -4
  35. package/lib/browser/debug-session.d.ts.map +1 -1
  36. package/lib/browser/debug-session.js +15 -11
  37. package/lib/browser/debug-session.js.map +1 -1
  38. package/lib/browser/debugUtils.js +4 -4
  39. package/lib/browser/debugUtils.js.map +1 -1
  40. package/lib/browser/editor/debug-breakpoint-widget.js.map +1 -1
  41. package/lib/browser/editor/debug-breakpoint-zone-widget.js +7 -7
  42. package/lib/browser/editor/debug-breakpoint-zone-widget.js.map +1 -1
  43. package/lib/browser/editor/debug-breakpoint.module.less +3 -4
  44. package/lib/browser/editor/debug-editor-contribution.d.ts +2 -2
  45. package/lib/browser/editor/debug-editor-contribution.d.ts.map +1 -1
  46. package/lib/browser/editor/debug-editor-contribution.js +3 -4
  47. package/lib/browser/editor/debug-editor-contribution.js.map +1 -1
  48. package/lib/browser/editor/debug-expression-provider.js.map +1 -1
  49. package/lib/browser/editor/debug-hover-model.js.map +1 -1
  50. package/lib/browser/editor/debug-hover-source.d.ts +1 -1
  51. package/lib/browser/editor/debug-hover-source.d.ts.map +1 -1
  52. package/lib/browser/editor/debug-hover-source.js.map +1 -1
  53. package/lib/browser/editor/debug-hover-tree.model.service.js.map +1 -1
  54. package/lib/browser/editor/debug-hover-widget.js.map +1 -1
  55. package/lib/browser/editor/debug-model-manager.d.ts +2 -9
  56. package/lib/browser/editor/debug-model-manager.d.ts.map +1 -1
  57. package/lib/browser/editor/debug-model-manager.js +8 -15
  58. package/lib/browser/editor/debug-model-manager.js.map +1 -1
  59. package/lib/browser/editor/debug-model.d.ts +2 -2
  60. package/lib/browser/editor/debug-model.d.ts.map +1 -1
  61. package/lib/browser/editor/debug-model.js +27 -27
  62. package/lib/browser/editor/debug-model.js.map +1 -1
  63. package/lib/browser/editor/debug-run-to-cursor.service.js +7 -7
  64. package/lib/browser/editor/debug-run-to-cursor.service.js.map +1 -1
  65. package/lib/browser/editor/evaluatable-expression.js.map +1 -1
  66. package/lib/browser/index.d.ts +0 -14
  67. package/lib/browser/index.d.ts.map +1 -1
  68. package/lib/browser/index.js +8 -24
  69. package/lib/browser/index.js.map +1 -1
  70. package/lib/browser/markers/marker-manager.js.map +1 -1
  71. package/lib/browser/model/debug-source.d.ts +3 -3
  72. package/lib/browser/model/debug-source.d.ts.map +1 -1
  73. package/lib/browser/model/debug-source.js.map +1 -1
  74. package/lib/browser/model/debug-thread.d.ts +1 -1
  75. package/lib/browser/model/debug-thread.d.ts.map +1 -1
  76. package/lib/browser/model/debug-watch.d.ts.map +1 -1
  77. package/lib/browser/model/debug-watch.js +1 -2
  78. package/lib/browser/model/debug-watch.js.map +1 -1
  79. package/lib/browser/preferences/launch-folder-preference-provider.d.ts +2 -2
  80. package/lib/browser/preferences/launch-folder-preference-provider.d.ts.map +1 -1
  81. package/lib/browser/preferences/launch-folder-preference-provider.js +2 -2
  82. package/lib/browser/preferences/launch-folder-preference-provider.js.map +1 -1
  83. package/lib/browser/preferences/launch-preferences-contribution.js.map +1 -1
  84. package/lib/browser/tree/debug-console-tree-node.define.js +6 -6
  85. package/lib/browser/tree/debug-console-tree-node.define.js.map +1 -1
  86. package/lib/browser/tree/debug-tree-node.define.js +18 -18
  87. package/lib/browser/tree/debug-tree-node.define.js.map +1 -1
  88. package/lib/browser/view/breakpoints/debug-breakpoints.service.js +3 -3
  89. package/lib/browser/view/breakpoints/debug-breakpoints.service.js.map +1 -1
  90. package/lib/browser/view/configuration/debug-configuration.module.less +5 -5
  91. package/lib/browser/view/configuration/debug-configuration.service.d.ts +1 -2
  92. package/lib/browser/view/configuration/debug-configuration.service.d.ts.map +1 -1
  93. package/lib/browser/view/configuration/debug-configuration.service.js.map +1 -1
  94. package/lib/browser/view/configuration/debug-configuration.view.d.ts.map +1 -1
  95. package/lib/browser/view/configuration/debug-configuration.view.js +1 -1
  96. package/lib/browser/view/configuration/debug-configuration.view.js.map +1 -1
  97. package/lib/browser/view/configuration/debug-toolbar.service.js.map +1 -1
  98. package/lib/browser/view/configuration/debug-toolbar.view.js +2 -2
  99. package/lib/browser/view/configuration/debug-toolbar.view.js.map +1 -1
  100. package/lib/browser/view/console/debug-console-filter.model.js.map +1 -1
  101. package/lib/browser/view/console/debug-console-filter.service.js.map +1 -1
  102. package/lib/browser/view/console/debug-console-model.js.map +1 -1
  103. package/lib/browser/view/console/debug-console-session.d.ts +3 -2
  104. package/lib/browser/view/console/debug-console-session.d.ts.map +1 -1
  105. package/lib/browser/view/console/debug-console-session.js.map +1 -1
  106. package/lib/browser/view/console/debug-console-tree.model.service.d.ts +1 -1
  107. package/lib/browser/view/console/debug-console-tree.model.service.d.ts.map +1 -1
  108. package/lib/browser/view/console/debug-console-tree.model.service.js +5 -3
  109. package/lib/browser/view/console/debug-console-tree.model.service.js.map +1 -1
  110. package/lib/browser/view/console/debug-console.contribution.d.ts.map +1 -1
  111. package/lib/browser/view/console/debug-console.contribution.js +21 -23
  112. package/lib/browser/view/console/debug-console.contribution.js.map +1 -1
  113. package/lib/browser/view/console/debug-console.module.less +2 -3
  114. package/lib/browser/view/console/debug-console.service.js +7 -7
  115. package/lib/browser/view/console/debug-console.service.js.map +1 -1
  116. package/lib/browser/view/console/debug-console.view.d.ts +1 -1
  117. package/lib/browser/view/console/debug-console.view.d.ts.map +1 -1
  118. package/lib/browser/view/console/debug-console.view.js +15 -3
  119. package/lib/browser/view/console/debug-console.view.js.map +1 -1
  120. package/lib/browser/view/debug-view-model.js.map +1 -1
  121. package/lib/browser/view/frames/debug-call-stack-frame.view.d.ts.map +1 -1
  122. package/lib/browser/view/frames/debug-call-stack-frame.view.js +25 -24
  123. package/lib/browser/view/frames/debug-call-stack-frame.view.js.map +1 -1
  124. package/lib/browser/view/frames/debug-call-stack-session.view.d.ts.map +1 -1
  125. package/lib/browser/view/frames/debug-call-stack-session.view.js +8 -5
  126. package/lib/browser/view/frames/debug-call-stack-session.view.js.map +1 -1
  127. package/lib/browser/view/frames/debug-call-stack-thread.view.d.ts.map +1 -1
  128. package/lib/browser/view/frames/debug-call-stack-thread.view.js +12 -7
  129. package/lib/browser/view/frames/debug-call-stack-thread.view.js.map +1 -1
  130. package/lib/browser/view/frames/debug-call-stack.contribution.js +5 -5
  131. package/lib/browser/view/frames/debug-call-stack.contribution.js.map +1 -1
  132. package/lib/browser/view/frames/debug-call-stack.service.js.map +1 -1
  133. package/lib/browser/view/variables/debug-variables-model.js.map +1 -1
  134. package/lib/browser/view/variables/debug-variables-tree.model.service.d.ts +1 -1
  135. package/lib/browser/view/variables/debug-variables-tree.model.service.d.ts.map +1 -1
  136. package/lib/browser/view/variables/debug-variables-tree.model.service.js +5 -3
  137. package/lib/browser/view/variables/debug-variables-tree.model.service.js.map +1 -1
  138. package/lib/browser/view/variables/debug-variables.contribution.d.ts.map +1 -1
  139. package/lib/browser/view/variables/debug-variables.contribution.js +13 -14
  140. package/lib/browser/view/variables/debug-variables.contribution.js.map +1 -1
  141. package/lib/browser/view/variables/debug-variables.module.less +2 -11
  142. package/lib/browser/view/variables/debug-variables.view.d.ts +1 -1
  143. package/lib/browser/view/variables/debug-variables.view.d.ts.map +1 -1
  144. package/lib/browser/view/variables/debug-variables.view.js +1 -1
  145. package/lib/browser/view/variables/debug-variables.view.js.map +1 -1
  146. package/lib/browser/view/watch/debug-watch-model.js.map +1 -1
  147. package/lib/browser/view/watch/debug-watch-tree.model.service.d.ts +2 -2
  148. package/lib/browser/view/watch/debug-watch-tree.model.service.d.ts.map +1 -1
  149. package/lib/browser/view/watch/debug-watch-tree.model.service.js +5 -3
  150. package/lib/browser/view/watch/debug-watch-tree.model.service.js.map +1 -1
  151. package/lib/browser/view/watch/debug-watch.contribution.d.ts.map +1 -1
  152. package/lib/browser/view/watch/debug-watch.contribution.js +21 -19
  153. package/lib/browser/view/watch/debug-watch.contribution.js.map +1 -1
  154. package/lib/browser/view/watch/debug-watch.module.less +2 -12
  155. package/lib/browser/view/watch/debug-watch.view.d.ts +1 -1
  156. package/lib/browser/view/watch/debug-watch.view.d.ts.map +1 -1
  157. package/lib/browser/view/watch/debug-watch.view.js +1 -1
  158. package/lib/browser/view/watch/debug-watch.view.js.map +1 -1
  159. package/lib/common/commands.d.ts +46 -0
  160. package/lib/common/commands.d.ts.map +1 -0
  161. package/lib/common/commands.js +149 -0
  162. package/lib/common/commands.js.map +1 -0
  163. package/lib/common/debug-breakpoint.d.ts +3 -3
  164. package/lib/common/debug-breakpoint.d.ts.map +1 -1
  165. package/lib/common/debug-configuration.d.ts +1 -1
  166. package/lib/common/debug-configuration.d.ts.map +1 -1
  167. package/lib/common/debug-console.d.ts +18 -0
  168. package/lib/common/debug-console.d.ts.map +1 -0
  169. package/lib/common/debug-console.js +5 -0
  170. package/lib/common/debug-console.js.map +1 -0
  171. package/lib/common/debug-editor.d.ts +1 -1
  172. package/lib/common/debug-editor.d.ts.map +1 -1
  173. package/lib/common/debug-model.d.ts +19 -4
  174. package/lib/common/debug-model.d.ts.map +1 -1
  175. package/lib/common/debug-model.js +14 -6
  176. package/lib/common/debug-model.js.map +1 -1
  177. package/lib/common/debug-schema-updater.d.ts +2 -1
  178. package/lib/common/debug-schema-updater.d.ts.map +1 -1
  179. package/lib/common/debug-schema-updater.js +1 -1
  180. package/lib/common/debug-schema-updater.js.map +1 -1
  181. package/lib/common/debug-service.d.ts +1 -1
  182. package/lib/common/debug-service.d.ts.map +1 -1
  183. package/lib/common/debug-session.d.ts +1 -1
  184. package/lib/common/debug-session.d.ts.map +1 -1
  185. package/lib/common/index.d.ts +2 -0
  186. package/lib/common/index.d.ts.map +1 -1
  187. package/lib/common/index.js +2 -0
  188. package/lib/common/index.js.map +1 -1
  189. package/lib/common/inline-values.d.ts +1 -1
  190. package/lib/common/inline-values.d.ts.map +1 -1
  191. package/lib/common/terminal.js +10 -10
  192. package/lib/common/terminal.js.map +1 -1
  193. package/package.json +27 -26
  194. package/src/browser/assets/breakpoint-conditional-disabled.svg +4 -0
  195. package/src/browser/assets/breakpoint-conditional-unverified.svg +4 -0
  196. package/src/browser/assets/breakpoint-conditional.svg +4 -0
  197. package/src/browser/assets/breakpoint-disabled.svg +4 -0
  198. package/src/browser/assets/breakpoint-hint.svg +4 -0
  199. package/src/browser/assets/breakpoint-log-disabled.svg +4 -0
  200. package/src/browser/assets/breakpoint-log-unverified.svg +4 -0
  201. package/src/browser/assets/breakpoint-log.svg +4 -0
  202. package/src/browser/assets/breakpoint-unsupported.svg +4 -0
  203. package/src/browser/assets/breakpoint-unverified.svg +4 -0
  204. package/src/browser/assets/breakpoint.svg +4 -0
  205. package/src/browser/assets/breakpoints-activate-inverse.svg +4 -0
  206. package/src/browser/assets/breakpoints-activate.svg +4 -0
  207. package/src/browser/assets/configure-inverse.svg +4 -0
  208. package/src/browser/assets/configure.svg +4 -0
  209. package/src/browser/assets/continue-inverse.svg +4 -0
  210. package/src/browser/assets/current-and-breakpoint.svg +4 -0
  211. package/src/browser/assets/current-arrow.svg +4 -0
  212. package/src/browser/assets/remove-all-inverse.svg +4 -0
  213. package/src/browser/assets/remove-all.svg +4 -0
  214. package/src/browser/assets/repl-inverse.svg +4 -0
  215. package/src/browser/assets/repl.svg +4 -0
  216. package/src/browser/assets/restart-inverse.svg +4 -0
  217. package/src/browser/assets/stackframe-and-breakpoint.svg +4 -0
  218. package/src/browser/assets/stackframe-arrow.svg +4 -0
  219. package/src/browser/assets/start-inverse.svg +4 -0
  220. package/src/browser/breakpoint/breakpoint-decoration.ts +57 -0
  221. package/src/browser/breakpoint/breakpoint-manager.ts +348 -0
  222. package/src/browser/breakpoint/breakpoint-marker.ts +70 -0
  223. package/src/browser/breakpoint/index.ts +3 -0
  224. package/src/browser/components/debug-action/index.module.less +73 -0
  225. package/src/browser/components/debug-action/index.tsx +40 -0
  226. package/src/browser/components/debug-exception-widget.less +42 -0
  227. package/src/browser/components/floating-click-widget/index.module.less +5 -0
  228. package/src/browser/components/floating-click-widget/index.tsx +21 -0
  229. package/src/browser/components/index.ts +1 -0
  230. package/src/browser/contextkeys/debug-call-stack-item-type-key.ts +4 -0
  231. package/src/browser/contextkeys/debug-contextkey.service.ts +54 -0
  232. package/src/browser/contextkeys/index.ts +1 -0
  233. package/src/browser/debug-ansi-handle.ts +521 -0
  234. package/src/browser/debug-configuration-manager.ts +514 -0
  235. package/src/browser/debug-configuration-model.ts +66 -0
  236. package/src/browser/debug-contribution.ts +756 -0
  237. package/src/browser/debug-exception-widget.tsx +89 -0
  238. package/src/browser/debug-link-detector.ts +234 -0
  239. package/src/browser/debug-memory.ts +220 -0
  240. package/src/browser/debug-preferences.ts +70 -0
  241. package/src/browser/debug-progress.service.ts +122 -0
  242. package/src/browser/debug-schema-updater.ts +67 -0
  243. package/src/browser/debug-service.ts +42 -0
  244. package/src/browser/debug-session-connection.ts +331 -0
  245. package/src/browser/debug-session-contribution.ts +57 -0
  246. package/src/browser/debug-session-manager.ts +622 -0
  247. package/src/browser/debug-session.ts +1181 -0
  248. package/src/browser/debug-style.less +128 -0
  249. package/src/browser/debugUtils.ts +110 -0
  250. package/src/browser/editor/debug-breakpoint-widget.ts +99 -0
  251. package/src/browser/editor/debug-breakpoint-zone-widget.tsx +262 -0
  252. package/src/browser/editor/debug-breakpoint.module.less +30 -0
  253. package/src/browser/editor/debug-editor-contribution.ts +589 -0
  254. package/src/browser/editor/debug-expression-provider.ts +101 -0
  255. package/src/browser/editor/debug-hover-model.ts +38 -0
  256. package/src/browser/editor/debug-hover-source.ts +107 -0
  257. package/src/browser/editor/debug-hover-tree.model.service.ts +332 -0
  258. package/src/browser/editor/debug-hover-widget.tsx +200 -0
  259. package/src/browser/editor/debug-hover.module.less +29 -0
  260. package/src/browser/editor/debug-hover.view.tsx +147 -0
  261. package/src/browser/editor/debug-model-manager.ts +219 -0
  262. package/src/browser/editor/debug-model.ts +853 -0
  263. package/src/browser/editor/debug-run-to-cursor.service.ts +180 -0
  264. package/src/browser/editor/debug-styles.ts +66 -0
  265. package/src/browser/editor/evaluatable-expression.ts +47 -0
  266. package/src/browser/editor/index.ts +6 -0
  267. package/src/browser/index.ts +119 -0
  268. package/src/browser/markers/index.ts +2 -0
  269. package/src/browser/markers/marker-manager.ts +201 -0
  270. package/src/browser/markers/marker.ts +20 -0
  271. package/src/browser/model/debug-source.ts +144 -0
  272. package/src/browser/model/debug-stack-frame.ts +111 -0
  273. package/src/browser/model/debug-thread.ts +186 -0
  274. package/src/browser/model/debug-watch.ts +129 -0
  275. package/src/browser/model/index.ts +4 -0
  276. package/src/browser/preferences/launch-folder-preference-provider.ts +23 -0
  277. package/src/browser/preferences/launch-preferences-contribution.ts +9 -0
  278. package/src/browser/preferences/launch-preferences.ts +16 -0
  279. package/src/browser/tree/debug-console-tree-node.define.tsx +76 -0
  280. package/src/browser/tree/debug-tree-node.define.ts +768 -0
  281. package/src/browser/tree/index.ts +2 -0
  282. package/src/browser/view/breakpoints/debug-breakpoints.module.less +72 -0
  283. package/src/browser/view/breakpoints/debug-breakpoints.service.ts +217 -0
  284. package/src/browser/view/breakpoints/debug-breakpoints.view.tsx +174 -0
  285. package/src/browser/view/configuration/debug-configuration.module.less +110 -0
  286. package/src/browser/view/configuration/debug-configuration.service.ts +170 -0
  287. package/src/browser/view/configuration/debug-configuration.view.tsx +252 -0
  288. package/src/browser/view/configuration/debug-toolbar.service.ts +167 -0
  289. package/src/browser/view/configuration/debug-toolbar.view.tsx +335 -0
  290. package/src/browser/view/console/debug-console-filter.model.ts +49 -0
  291. package/src/browser/view/console/debug-console-filter.service.ts +81 -0
  292. package/src/browser/view/console/debug-console-filter.view.tsx +78 -0
  293. package/src/browser/view/console/debug-console-model.ts +48 -0
  294. package/src/browser/view/console/debug-console-session.ts +165 -0
  295. package/src/browser/view/console/debug-console-toolbar.view.tsx +28 -0
  296. package/src/browser/view/console/debug-console-tree.model.service.ts +553 -0
  297. package/src/browser/view/console/debug-console.contribution.ts +179 -0
  298. package/src/browser/view/console/debug-console.module.less +371 -0
  299. package/src/browser/view/console/debug-console.service.ts +433 -0
  300. package/src/browser/view/console/debug-console.view.tsx +511 -0
  301. package/src/browser/view/debug-view-model.ts +182 -0
  302. package/src/browser/view/frames/debug-call-stack-frame.view.tsx +230 -0
  303. package/src/browser/view/frames/debug-call-stack-session.view.tsx +253 -0
  304. package/src/browser/view/frames/debug-call-stack-thread.view.tsx +103 -0
  305. package/src/browser/view/frames/debug-call-stack.contribution.ts +88 -0
  306. package/src/browser/view/frames/debug-call-stack.module.less +193 -0
  307. package/src/browser/view/frames/debug-call-stack.operation.tsx +97 -0
  308. package/src/browser/view/frames/debug-call-stack.service.ts +105 -0
  309. package/src/browser/view/frames/debug-call-stack.view.tsx +43 -0
  310. package/src/browser/view/variables/debug-variables-model.ts +38 -0
  311. package/src/browser/view/variables/debug-variables-tree.model.service.ts +470 -0
  312. package/src/browser/view/variables/debug-variables.contribution.ts +244 -0
  313. package/src/browser/view/variables/debug-variables.module.less +139 -0
  314. package/src/browser/view/variables/debug-variables.view.tsx +303 -0
  315. package/src/browser/view/watch/debug-watch-model.ts +38 -0
  316. package/src/browser/view/watch/debug-watch-tree.model.service.ts +570 -0
  317. package/src/browser/view/watch/debug-watch.contribution.ts +170 -0
  318. package/src/browser/view/watch/debug-watch.module.less +178 -0
  319. package/src/browser/view/watch/debug-watch.view.tsx +337 -0
  320. package/src/common/commands.ts +146 -0
  321. package/src/common/constants.ts +81 -0
  322. package/src/common/debug-breakpoint.ts +43 -0
  323. package/src/common/debug-configuration.ts +68 -0
  324. package/src/common/debug-console.ts +20 -0
  325. package/src/common/debug-editor.ts +4 -0
  326. package/src/common/debug-hover.ts +31 -0
  327. package/src/common/debug-model.ts +272 -0
  328. package/src/common/debug-progress.ts +8 -0
  329. package/src/common/debug-schema-updater.ts +3 -0
  330. package/src/common/debug-service.ts +176 -0
  331. package/src/common/debug-session-options.ts +19 -0
  332. package/src/common/debug-session.ts +200 -0
  333. package/src/common/evaluatable-expression.ts +43 -0
  334. package/src/common/index.ts +16 -0
  335. package/src/common/inline-values.ts +77 -0
  336. package/src/common/terminal.ts +163 -0
  337. package/src/common/types.ts +86 -0
  338. package/src/index.ts +1 -0
@@ -0,0 +1,521 @@
1
+ /* ---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ // Some code copied and modified from https://github.com/microsoft/vscode/blob/main/src/vs/workbench/contrib/debug/browser/debugANSIHandling.ts
6
+
7
+ import { ansiColorIdentifiers } from '@opensumi/ide-terminal-next/lib/browser/terminal.color';
8
+ import { Color, IThemeService, RGBA } from '@opensumi/ide-theme';
9
+ import { IWorkspaceFolder } from '@opensumi/monaco-editor-core/esm/vs/platform/workspace/common/workspace';
10
+
11
+ import { LinkDetector } from './debug-link-detector';
12
+ import styles from './view/console/debug-console.module.less';
13
+
14
+ /**
15
+ * @param text
16
+ * @returns 返回带有 style 样式和 linkDetector 的 span 标签
17
+ */
18
+ export async function handleANSIOutput(
19
+ text: string,
20
+ linkDetector: LinkDetector,
21
+ themeService: IThemeService,
22
+ workspaceFolder: IWorkspaceFolder | undefined,
23
+ ): Promise<HTMLSpanElement> {
24
+ const root: HTMLSpanElement = document.createElement('span');
25
+ const textLength: number = text.length;
26
+
27
+ let styleNames: string[] = [];
28
+ let customFgColor: RGBA | undefined;
29
+ let customBgColor: RGBA | undefined;
30
+ let customUnderlineColor: RGBA | undefined;
31
+ let colorsInverted = false;
32
+ let currentPos = 0;
33
+ let buffer = '';
34
+
35
+ while (currentPos < textLength) {
36
+ let isSequenceFound = false;
37
+
38
+ /**
39
+ * 可能是 ANSI 转义序列.
40
+ * @see {@link https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97 }
41
+ */
42
+ if (text.charCodeAt(currentPos) === 27 && text.charAt(currentPos + 1) === '[') {
43
+ const startPos: number = currentPos;
44
+ currentPos += 2; // 忽略 'Esc[', 因为每个序列都有它
45
+
46
+ let ansiSequence = '';
47
+
48
+ while (currentPos < textLength) {
49
+ const char: string = text.charAt(currentPos);
50
+ ansiSequence += char;
51
+
52
+ currentPos++;
53
+
54
+ // 序列终止字符
55
+ if (char.match(/^[ABCDHIJKfhmpsu]$/)) {
56
+ isSequenceFound = true;
57
+ break;
58
+ }
59
+ }
60
+
61
+ if (isSequenceFound) {
62
+ appendStylizedStringToContainer(
63
+ root,
64
+ buffer,
65
+ styleNames,
66
+ linkDetector,
67
+ workspaceFolder,
68
+ customFgColor,
69
+ customBgColor,
70
+ customUnderlineColor,
71
+ );
72
+
73
+ buffer = '';
74
+
75
+ if (
76
+ ansiSequence.match(
77
+ /^(?:[34][0-8]|9[0-7]|10[0-7]|[0-9]|2[1-5,7-9]|[34]9|5[8,9]|1[0-9])(?:;[349][0-7]|10[0-7]|[013]|[245]|[34]9)?(?:;[012]?[0-9]?[0-9])*;?m$/,
78
+ )
79
+ ) {
80
+ /**
81
+ * 例如: '\033[41m' + 'code' + '\033[0;39m'
82
+ * 表示 'code' 这个字符串是红色的
83
+ */
84
+ const styleCodes: number[] = ansiSequence
85
+ .slice(0, -1) // 删除最后的 'm' 字符
86
+ .split(';') // 分隔 ';'
87
+ .filter((elem) => elem !== '') // 过滤空元素: [39:m] => ['39', '']
88
+ .map((elem) => parseInt(elem, 10));
89
+
90
+ if (styleCodes[0] === 38 || styleCodes[0] === 48 || styleCodes[0] === 58) {
91
+ /**
92
+ * 代表 xterm-256 高级颜色
93
+ * 38 表示前景色
94
+ * 48 表示背景色
95
+ * * @see {@link https://tintin.mudhalla.net/info/xterm/ }
96
+ */
97
+ const colorType = styleCodes[0] === 38 ? 'foreground' : styleCodes[0] === 48 ? 'background' : 'underline';
98
+
99
+ if (styleCodes[1] === 5) {
100
+ // 8位色
101
+ await set8BitColor(styleCodes, colorType);
102
+ } else if (styleCodes[1] === 2) {
103
+ // 24位色
104
+ set24BitColor(styleCodes, colorType);
105
+ }
106
+ } else {
107
+ await setBasicFormatters(styleCodes);
108
+ }
109
+ }
110
+ } else {
111
+ currentPos = startPos;
112
+ }
113
+ }
114
+
115
+ if (isSequenceFound === false) {
116
+ buffer += text.charAt(currentPos);
117
+ currentPos++;
118
+ }
119
+ }
120
+
121
+ if (buffer) {
122
+ appendStylizedStringToContainer(
123
+ root,
124
+ buffer,
125
+ styleNames,
126
+ linkDetector,
127
+ workspaceFolder,
128
+ customFgColor,
129
+ customBgColor,
130
+ customUnderlineColor,
131
+ );
132
+ }
133
+
134
+ return root;
135
+
136
+ /**
137
+ * 修改前景色、背景色和下划线颜色
138
+ */
139
+ function changeColor(colorType: 'foreground' | 'background' | 'underline', color?: RGBA | undefined): void {
140
+ switch (colorType) {
141
+ case 'foreground':
142
+ customFgColor = color;
143
+ break;
144
+ case 'background':
145
+ customBgColor = color;
146
+ break;
147
+ case 'underline':
148
+ customUnderlineColor = color;
149
+ break;
150
+ default:
151
+ break;
152
+ }
153
+
154
+ styleNames = styleNames.filter((style) => style !== `code-${colorType}-colored`);
155
+ if (color !== undefined) {
156
+ styleNames.push(`code-${colorType}-colored`);
157
+ }
158
+ }
159
+
160
+ /**
161
+ * 转换前景色和背景色
162
+ */
163
+ function reverseForegroundAndBackgroundColors(): void {
164
+ let oldFgColor: RGBA | undefined;
165
+ oldFgColor = customFgColor;
166
+ changeColor('foreground', customBgColor);
167
+ changeColor('background', oldFgColor);
168
+ }
169
+
170
+ /**
171
+ * 计算并设置 ANSI 基本样式.
172
+ * 支持的样式看下面的文档👇
173
+ * @see {@link https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#%E9%80%89%E6%8B%A9%E5%9B%BE%E5%BD%A2%E5%86%8D%E7%8E%B0%EF%BC%88SGR%EF%BC%89%E5%8F%82%E6%95%B0 }
174
+ */
175
+ async function setBasicFormatters(styleCodes: number[]): Promise<void> {
176
+ for (const code of styleCodes) {
177
+ switch (code) {
178
+ case 0: {
179
+ // 重置
180
+ styleNames = [];
181
+ customFgColor = undefined;
182
+ customBgColor = undefined;
183
+ break;
184
+ }
185
+ case 1: {
186
+ // 变粗
187
+ styleNames = styleNames.filter((style) => style !== styles['code-bold']);
188
+ styleNames.push(styles['code-bold']);
189
+ break;
190
+ }
191
+ case 2: {
192
+ // 降低透明度
193
+ styleNames = styleNames.filter((style) => style !== styles['code-dim']);
194
+ styleNames.push(styles['code-dim']);
195
+ break;
196
+ }
197
+ case 3: {
198
+ // 斜体
199
+ styleNames = styleNames.filter((style) => style !== styles['code-italic']);
200
+ styleNames.push(styles['code-italic']);
201
+ break;
202
+ }
203
+ case 4: {
204
+ // 下划线
205
+ styleNames = styleNames.filter(
206
+ (style) => style !== styles['code-underline'] && style !== styles['code-double-underline'],
207
+ );
208
+ styleNames.push(styles['code-underline']);
209
+ break;
210
+ }
211
+ case 5: {
212
+ // 缓慢闪烁
213
+ styleNames = styleNames.filter((style) => style !== styles['code-blink']);
214
+ styleNames.push(styles['code-blink']);
215
+ break;
216
+ }
217
+ case 6: {
218
+ // 快速闪烁
219
+ styleNames = styleNames.filter((style) => style !== styles['code-rapid-blink']);
220
+ styleNames.push(styles['code-rapid-blink']);
221
+ break;
222
+ }
223
+ case 7: {
224
+ // 前景色和背景色交换
225
+ if (!colorsInverted) {
226
+ colorsInverted = true;
227
+ reverseForegroundAndBackgroundColors();
228
+ }
229
+ break;
230
+ }
231
+ case 8: {
232
+ // 隐藏
233
+ styleNames = styleNames.filter((style) => style !== styles['code-hidden']);
234
+ styleNames.push(styles['code-hidden']);
235
+ break;
236
+ }
237
+ case 9: {
238
+ // 划除,在字符中间增加横线
239
+ styleNames = styleNames.filter((style) => style !== styles['code-strike-through']);
240
+ styleNames.push(styles['code-strike-through']);
241
+ break;
242
+ }
243
+ case 10: {
244
+ // 默认字体
245
+ styleNames = styleNames.filter((style) => !style.startsWith(styles['code-font']));
246
+ break;
247
+ }
248
+ case 11:
249
+ case 12:
250
+ case 13:
251
+ case 14:
252
+ case 15:
253
+ case 16:
254
+ case 17:
255
+ case 18:
256
+ case 19:
257
+ case 20: {
258
+ // 字体代码
259
+ styleNames = styleNames.filter((style) => !style.startsWith(styles['code-font']));
260
+ styleNames.push(styles[`code-font-${code - 10}`]);
261
+ break;
262
+ }
263
+ case 21: {
264
+ // 双下划线
265
+ styleNames = styleNames.filter(
266
+ (style) => style !== styles['code-underline'] && style !== styles['code-double-underline'],
267
+ );
268
+ styleNames.push(styles['code-double-underline']);
269
+ break;
270
+ }
271
+ case 22: {
272
+ // 正常强度的字体(不强不弱)
273
+ styleNames = styleNames.filter((style) => style !== styles['code-bold'] && style !== styles['code-dim']);
274
+ break;
275
+ }
276
+ case 23: {
277
+ // 既不是斜体也不是黑体(字体 10)
278
+ styleNames = styleNames.filter(
279
+ (style) => style !== styles['code-italic'] && style !== styles['code-font-10'],
280
+ );
281
+ break;
282
+ }
283
+ case 24: {
284
+ // 去除下划线
285
+ styleNames = styleNames.filter(
286
+ (style) => style !== styles['code-underline'] && style !== styles['code-double-underline'],
287
+ );
288
+ break;
289
+ }
290
+ case 25: {
291
+ // 关闭闪烁
292
+ styleNames = styleNames.filter(
293
+ (style) => style !== styles['code-blink'] && style !== styles['code-rapid-blink'],
294
+ );
295
+ break;
296
+ }
297
+ case 27: {
298
+ // 关闭前景色和背景色反转
299
+ if (colorsInverted) {
300
+ colorsInverted = false;
301
+ reverseForegroundAndBackgroundColors();
302
+ }
303
+ break;
304
+ }
305
+ case 28: {
306
+ // 不隐藏
307
+ styleNames = styleNames.filter((style) => style !== styles['code-hidden']);
308
+ break;
309
+ }
310
+ case 29: {
311
+ // 关闭划除
312
+ styleNames = styleNames.filter((style) => style !== styles['code-strike-through']);
313
+ break;
314
+ }
315
+ case 53: {
316
+ // 上划线
317
+ styleNames = styleNames.filter((style) => style !== styles['code-overline']);
318
+ styleNames.push(styles['code-overline']);
319
+ break;
320
+ }
321
+ case 55: {
322
+ // 关闭上划线
323
+ styleNames = styleNames.filter((style) => style !== styles['code-overline']);
324
+ break;
325
+ }
326
+ case 39: {
327
+ // 默认前景色
328
+ changeColor('foreground', undefined);
329
+ break;
330
+ }
331
+ case 49: {
332
+ // 默认背景色
333
+ changeColor('background', undefined);
334
+ break;
335
+ }
336
+ case 59: {
337
+ // 默认下划线
338
+ changeColor('underline', undefined);
339
+ break;
340
+ }
341
+ case 73: {
342
+ // 上标(向上靠)
343
+ styleNames = styleNames.filter(
344
+ (style) => style !== styles['code-superscript'] && style !== styles['code-subscript'],
345
+ );
346
+ styleNames.push(styles['code-superscript']);
347
+ break;
348
+ }
349
+ case 74: {
350
+ // 下标(向下靠)
351
+ styleNames = styleNames.filter(
352
+ (style) => style !== styles['code-superscript'] && style !== styles['code-subscript'],
353
+ );
354
+ styleNames.push(styles['code-subscript']);
355
+ break;
356
+ }
357
+ case 75: {
358
+ styleNames = styleNames.filter(
359
+ (style) => style !== styles['code-superscript'] && style !== styles['code-subscript'],
360
+ );
361
+ break;
362
+ }
363
+ default: {
364
+ await setBasicColor(code);
365
+ break;
366
+ }
367
+ }
368
+ }
369
+ }
370
+
371
+ /**
372
+ * 计算和设置 24 位 ANSI 颜色代码的样式。
373
+ * @see {@link https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#24%E4%BD%8D }
374
+ */
375
+ function set24BitColor(styleCodes: number[], colorType: 'foreground' | 'background' | 'underline'): void {
376
+ if (
377
+ styleCodes.length >= 5 &&
378
+ styleCodes[2] >= 0 &&
379
+ styleCodes[2] <= 255 &&
380
+ styleCodes[3] >= 0 &&
381
+ styleCodes[3] <= 255 &&
382
+ styleCodes[4] >= 0 &&
383
+ styleCodes[4] <= 255
384
+ ) {
385
+ const customColor = new RGBA(styleCodes[2], styleCodes[3], styleCodes[4]);
386
+ changeColor(colorType, customColor);
387
+ }
388
+ }
389
+
390
+ /**
391
+ * 计算和设置 8 位 ANSI 颜色代码的样式。
392
+ * @see {@link https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#8%E4%BD%8D }
393
+ */
394
+ async function set8BitColor(
395
+ styleCodes: number[],
396
+ colorType: 'foreground' | 'background' | 'underline',
397
+ ): Promise<void> {
398
+ let colorNumber = styleCodes[2];
399
+ const color = calcANSI8bitColor(colorNumber);
400
+
401
+ if (color) {
402
+ changeColor(colorType, color);
403
+ } else if (colorNumber >= 0 && colorNumber <= 15) {
404
+ if (colorType === 'underline') {
405
+ // 对于下划线颜色,我们只需将 0-15 颜色编号解码为主题颜色,设置并返回
406
+ const theme = await themeService.getCurrentTheme();
407
+ const colorName = ansiColorIdentifiers[colorNumber];
408
+ const color = theme.getColor(colorName);
409
+ if (color) {
410
+ changeColor(colorType, color.rgba);
411
+ }
412
+ return;
413
+ }
414
+ // 映射到四种基本色的范围之一(30-37、90-97、40-47、100-107)
415
+ colorNumber += 30;
416
+ if (colorNumber >= 38) {
417
+ // 亮色
418
+ colorNumber += 52;
419
+ }
420
+ if (colorType === 'background') {
421
+ colorNumber += 10;
422
+ }
423
+ await setBasicColor(colorNumber);
424
+ }
425
+ }
426
+
427
+ /**
428
+ * 计算和设置基本明亮和暗色 ANSI 颜色代码的样式
429
+ */
430
+ async function setBasicColor(styleCode: number): Promise<void> {
431
+ const theme = await themeService.getCurrentTheme();
432
+ let colorType: 'foreground' | 'background' | undefined;
433
+ let colorIndex: number | undefined;
434
+
435
+ if (styleCode >= 30 && styleCode <= 37) {
436
+ colorIndex = styleCode - 30;
437
+ colorType = 'foreground';
438
+ } else if (styleCode >= 90 && styleCode <= 97) {
439
+ colorIndex = styleCode - 90 + 8; // 亮色
440
+ colorType = 'foreground';
441
+ } else if (styleCode >= 40 && styleCode <= 47) {
442
+ colorIndex = styleCode - 40;
443
+ colorType = 'background';
444
+ } else if (styleCode >= 100 && styleCode <= 107) {
445
+ colorIndex = styleCode - 100 + 8; // 亮色
446
+ colorType = 'background';
447
+ }
448
+
449
+ if (colorIndex !== undefined && colorType) {
450
+ const colorName = ansiColorIdentifiers[colorIndex];
451
+ const color = theme.getColor(colorName);
452
+ if (color) {
453
+ changeColor(colorType, color.rgba);
454
+ }
455
+ }
456
+ }
457
+ }
458
+
459
+ export function appendStylizedStringToContainer(
460
+ root: HTMLElement,
461
+ stringContent: string,
462
+ cssClasses: string[],
463
+ linkDetector: LinkDetector,
464
+ workspaceFolder: IWorkspaceFolder | undefined,
465
+ customTextColor?: RGBA,
466
+ customBackgroundColor?: RGBA,
467
+ customUnderlineColor?: RGBA,
468
+ ): void {
469
+ if (!root || !stringContent) {
470
+ return;
471
+ }
472
+
473
+ const container = linkDetector.linkify(stringContent, true, workspaceFolder);
474
+
475
+ container.className = cssClasses.join(' ');
476
+ if (customTextColor) {
477
+ container.style.color = Color.Format.CSS.formatRGB(new Color(customTextColor));
478
+ }
479
+ if (customBackgroundColor) {
480
+ container.style.backgroundColor = Color.Format.CSS.formatRGB(new Color(customBackgroundColor));
481
+ }
482
+ if (customUnderlineColor) {
483
+ container.style.textDecorationColor = Color.Format.CSS.formatRGB(new Color(customUnderlineColor));
484
+ }
485
+ root.appendChild(container);
486
+ }
487
+
488
+ /**
489
+ * 根据 ANSI 8 位标准中定义的颜色集计算颜色。
490
+ * @see {@link https://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#8%E4%BD%8D }
491
+ */
492
+ export function calcANSI8bitColor(colorNumber: number): RGBA | undefined {
493
+ if (colorNumber % 1 !== 0) {
494
+ return;
495
+ }
496
+ if (colorNumber >= 16 && colorNumber <= 231) {
497
+ // 转换为 216 种 RGB 颜色之一
498
+ colorNumber -= 16;
499
+
500
+ let blue: number = colorNumber % 6;
501
+ colorNumber = (colorNumber - blue) / 6;
502
+ let green: number = colorNumber % 6;
503
+ colorNumber = (colorNumber - green) / 6;
504
+ let red: number = colorNumber;
505
+
506
+ // 将三原色从 [0, 5] 映射为 [0, 255]
507
+ const convFactor: number = 255 / 5;
508
+ blue = Math.round(blue * convFactor);
509
+ green = Math.round(green * convFactor);
510
+ red = Math.round(red * convFactor);
511
+
512
+ return new RGBA(red, green, blue);
513
+ } else if (colorNumber >= 232 && colorNumber <= 255) {
514
+ // 转换为灰色值
515
+ colorNumber -= 232;
516
+ const colorLevel: number = Math.round((colorNumber / 23) * 255);
517
+ return new RGBA(colorLevel, colorLevel, colorLevel);
518
+ } else {
519
+ return;
520
+ }
521
+ }