@opensumi/ide-debug 2.21.13-rc-1673328992.0 → 2.21.13

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 (334) 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 +2 -3
  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 +1 -1
  12. package/lib/browser/debug-configuration-manager.js.map +1 -1
  13. package/lib/browser/debug-contribution.d.ts +147 -2
  14. package/lib/browser/debug-contribution.d.ts.map +1 -1
  15. package/lib/browser/debug-contribution.js +200 -50
  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 +3 -2
  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 +4 -3
  31. package/lib/browser/debug-session-manager.d.ts.map +1 -1
  32. package/lib/browser/debug-session-manager.js +8 -7
  33. package/lib/browser/debug-session-manager.js.map +1 -1
  34. package/lib/browser/debug-session.d.ts +4 -3
  35. package/lib/browser/debug-session.d.ts.map +1 -1
  36. package/lib/browser/debug-session.js +11 -15
  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 +4 -3
  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 +4 -3
  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 +9 -2
  56. package/lib/browser/editor/debug-model-manager.d.ts.map +1 -1
  57. package/lib/browser/editor/debug-model-manager.js +15 -8
  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 +14 -0
  67. package/lib/browser/index.d.ts.map +1 -1
  68. package/lib/browser/index.js +24 -8
  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 +2 -1
  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 +2 -1
  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 +2 -3
  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 +3 -5
  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 +23 -21
  112. package/lib/browser/view/console/debug-console.contribution.js.map +1 -1
  113. package/lib/browser/view/console/debug-console.module.less +1 -2
  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 +3 -15
  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 +24 -25
  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 +5 -8
  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 +7 -12
  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 +3 -5
  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 -12
  140. package/lib/browser/view/variables/debug-variables.contribution.js.map +1 -1
  141. package/lib/browser/view/variables/debug-variables.module.less +1 -2
  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 +3 -5
  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 +19 -21
  153. package/lib/browser/view/watch/debug-watch.contribution.js.map +1 -1
  154. package/lib/browser/view/watch/debug-watch.module.less +1 -2
  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/debug-breakpoint.d.ts +3 -3
  160. package/lib/common/debug-breakpoint.d.ts.map +1 -1
  161. package/lib/common/debug-configuration.d.ts +1 -1
  162. package/lib/common/debug-configuration.d.ts.map +1 -1
  163. package/lib/common/debug-editor.d.ts +1 -1
  164. package/lib/common/debug-editor.d.ts.map +1 -1
  165. package/lib/common/debug-model.d.ts +4 -19
  166. package/lib/common/debug-model.d.ts.map +1 -1
  167. package/lib/common/debug-model.js +6 -14
  168. package/lib/common/debug-model.js.map +1 -1
  169. package/lib/common/debug-service.d.ts +1 -1
  170. package/lib/common/debug-service.d.ts.map +1 -1
  171. package/lib/common/debug-session.d.ts +1 -1
  172. package/lib/common/debug-session.d.ts.map +1 -1
  173. package/lib/common/index.d.ts +0 -2
  174. package/lib/common/index.d.ts.map +1 -1
  175. package/lib/common/index.js +0 -2
  176. package/lib/common/index.js.map +1 -1
  177. package/lib/common/inline-values.d.ts +1 -1
  178. package/lib/common/inline-values.d.ts.map +1 -1
  179. package/lib/common/terminal.js +10 -10
  180. package/lib/common/terminal.js.map +1 -1
  181. package/package.json +26 -27
  182. package/lib/common/commands.d.ts +0 -46
  183. package/lib/common/commands.d.ts.map +0 -1
  184. package/lib/common/commands.js +0 -149
  185. package/lib/common/commands.js.map +0 -1
  186. package/lib/common/debug-console.d.ts +0 -18
  187. package/lib/common/debug-console.d.ts.map +0 -1
  188. package/lib/common/debug-console.js +0 -5
  189. package/lib/common/debug-console.js.map +0 -1
  190. package/src/browser/assets/breakpoint-conditional-disabled.svg +0 -4
  191. package/src/browser/assets/breakpoint-conditional-unverified.svg +0 -4
  192. package/src/browser/assets/breakpoint-conditional.svg +0 -4
  193. package/src/browser/assets/breakpoint-disabled.svg +0 -4
  194. package/src/browser/assets/breakpoint-hint.svg +0 -4
  195. package/src/browser/assets/breakpoint-log-disabled.svg +0 -4
  196. package/src/browser/assets/breakpoint-log-unverified.svg +0 -4
  197. package/src/browser/assets/breakpoint-log.svg +0 -4
  198. package/src/browser/assets/breakpoint-unsupported.svg +0 -4
  199. package/src/browser/assets/breakpoint-unverified.svg +0 -4
  200. package/src/browser/assets/breakpoint.svg +0 -4
  201. package/src/browser/assets/breakpoints-activate-inverse.svg +0 -4
  202. package/src/browser/assets/breakpoints-activate.svg +0 -4
  203. package/src/browser/assets/configure-inverse.svg +0 -4
  204. package/src/browser/assets/configure.svg +0 -4
  205. package/src/browser/assets/continue-inverse.svg +0 -4
  206. package/src/browser/assets/current-and-breakpoint.svg +0 -4
  207. package/src/browser/assets/current-arrow.svg +0 -4
  208. package/src/browser/assets/remove-all-inverse.svg +0 -4
  209. package/src/browser/assets/remove-all.svg +0 -4
  210. package/src/browser/assets/repl-inverse.svg +0 -4
  211. package/src/browser/assets/repl.svg +0 -4
  212. package/src/browser/assets/restart-inverse.svg +0 -4
  213. package/src/browser/assets/stackframe-and-breakpoint.svg +0 -4
  214. package/src/browser/assets/stackframe-arrow.svg +0 -4
  215. package/src/browser/assets/start-inverse.svg +0 -4
  216. package/src/browser/breakpoint/breakpoint-decoration.ts +0 -57
  217. package/src/browser/breakpoint/breakpoint-manager.ts +0 -348
  218. package/src/browser/breakpoint/breakpoint-marker.ts +0 -70
  219. package/src/browser/breakpoint/index.ts +0 -3
  220. package/src/browser/components/debug-action/index.module.less +0 -73
  221. package/src/browser/components/debug-action/index.tsx +0 -40
  222. package/src/browser/components/debug-exception-widget.less +0 -42
  223. package/src/browser/components/floating-click-widget/index.module.less +0 -5
  224. package/src/browser/components/floating-click-widget/index.tsx +0 -21
  225. package/src/browser/components/index.ts +0 -1
  226. package/src/browser/contextkeys/debug-call-stack-item-type-key.ts +0 -4
  227. package/src/browser/contextkeys/debug-contextkey.service.ts +0 -54
  228. package/src/browser/contextkeys/index.ts +0 -1
  229. package/src/browser/debug-ansi-handle.ts +0 -521
  230. package/src/browser/debug-configuration-manager.ts +0 -513
  231. package/src/browser/debug-configuration-model.ts +0 -66
  232. package/src/browser/debug-contribution.ts +0 -756
  233. package/src/browser/debug-exception-widget.tsx +0 -89
  234. package/src/browser/debug-link-detector.ts +0 -234
  235. package/src/browser/debug-memory.ts +0 -220
  236. package/src/browser/debug-preferences.ts +0 -70
  237. package/src/browser/debug-progress.service.ts +0 -122
  238. package/src/browser/debug-schema-updater.ts +0 -67
  239. package/src/browser/debug-service.ts +0 -42
  240. package/src/browser/debug-session-connection.ts +0 -331
  241. package/src/browser/debug-session-contribution.ts +0 -57
  242. package/src/browser/debug-session-manager.ts +0 -622
  243. package/src/browser/debug-session.ts +0 -1181
  244. package/src/browser/debug-style.less +0 -128
  245. package/src/browser/debugUtils.ts +0 -110
  246. package/src/browser/editor/debug-breakpoint-widget.ts +0 -99
  247. package/src/browser/editor/debug-breakpoint-zone-widget.tsx +0 -262
  248. package/src/browser/editor/debug-breakpoint.module.less +0 -30
  249. package/src/browser/editor/debug-editor-contribution.ts +0 -589
  250. package/src/browser/editor/debug-expression-provider.ts +0 -101
  251. package/src/browser/editor/debug-hover-model.ts +0 -38
  252. package/src/browser/editor/debug-hover-source.ts +0 -107
  253. package/src/browser/editor/debug-hover-tree.model.service.ts +0 -332
  254. package/src/browser/editor/debug-hover-widget.tsx +0 -200
  255. package/src/browser/editor/debug-hover.module.less +0 -29
  256. package/src/browser/editor/debug-hover.view.tsx +0 -147
  257. package/src/browser/editor/debug-model-manager.ts +0 -219
  258. package/src/browser/editor/debug-model.ts +0 -853
  259. package/src/browser/editor/debug-run-to-cursor.service.ts +0 -180
  260. package/src/browser/editor/debug-styles.ts +0 -66
  261. package/src/browser/editor/evaluatable-expression.ts +0 -47
  262. package/src/browser/editor/index.ts +0 -6
  263. package/src/browser/index.ts +0 -119
  264. package/src/browser/markers/index.ts +0 -2
  265. package/src/browser/markers/marker-manager.ts +0 -201
  266. package/src/browser/markers/marker.ts +0 -20
  267. package/src/browser/model/debug-source.ts +0 -144
  268. package/src/browser/model/debug-stack-frame.ts +0 -111
  269. package/src/browser/model/debug-thread.ts +0 -186
  270. package/src/browser/model/debug-watch.ts +0 -129
  271. package/src/browser/model/index.ts +0 -4
  272. package/src/browser/preferences/launch-folder-preference-provider.ts +0 -23
  273. package/src/browser/preferences/launch-preferences-contribution.ts +0 -9
  274. package/src/browser/preferences/launch-preferences.ts +0 -16
  275. package/src/browser/tree/debug-console-tree-node.define.tsx +0 -76
  276. package/src/browser/tree/debug-tree-node.define.ts +0 -768
  277. package/src/browser/tree/index.ts +0 -2
  278. package/src/browser/view/breakpoints/debug-breakpoints.module.less +0 -72
  279. package/src/browser/view/breakpoints/debug-breakpoints.service.ts +0 -217
  280. package/src/browser/view/breakpoints/debug-breakpoints.view.tsx +0 -174
  281. package/src/browser/view/configuration/debug-configuration.module.less +0 -110
  282. package/src/browser/view/configuration/debug-configuration.service.ts +0 -170
  283. package/src/browser/view/configuration/debug-configuration.view.tsx +0 -252
  284. package/src/browser/view/configuration/debug-toolbar.service.ts +0 -167
  285. package/src/browser/view/configuration/debug-toolbar.view.tsx +0 -335
  286. package/src/browser/view/console/debug-console-filter.model.ts +0 -49
  287. package/src/browser/view/console/debug-console-filter.service.ts +0 -81
  288. package/src/browser/view/console/debug-console-filter.view.tsx +0 -78
  289. package/src/browser/view/console/debug-console-model.ts +0 -48
  290. package/src/browser/view/console/debug-console-session.ts +0 -165
  291. package/src/browser/view/console/debug-console-toolbar.view.tsx +0 -28
  292. package/src/browser/view/console/debug-console-tree.model.service.ts +0 -553
  293. package/src/browser/view/console/debug-console.contribution.ts +0 -179
  294. package/src/browser/view/console/debug-console.module.less +0 -373
  295. package/src/browser/view/console/debug-console.service.ts +0 -433
  296. package/src/browser/view/console/debug-console.view.tsx +0 -511
  297. package/src/browser/view/debug-view-model.ts +0 -182
  298. package/src/browser/view/frames/debug-call-stack-frame.view.tsx +0 -230
  299. package/src/browser/view/frames/debug-call-stack-session.view.tsx +0 -253
  300. package/src/browser/view/frames/debug-call-stack-thread.view.tsx +0 -103
  301. package/src/browser/view/frames/debug-call-stack.contribution.ts +0 -88
  302. package/src/browser/view/frames/debug-call-stack.module.less +0 -193
  303. package/src/browser/view/frames/debug-call-stack.operation.tsx +0 -97
  304. package/src/browser/view/frames/debug-call-stack.service.ts +0 -105
  305. package/src/browser/view/frames/debug-call-stack.view.tsx +0 -43
  306. package/src/browser/view/variables/debug-variables-model.ts +0 -38
  307. package/src/browser/view/variables/debug-variables-tree.model.service.ts +0 -470
  308. package/src/browser/view/variables/debug-variables.contribution.ts +0 -243
  309. package/src/browser/view/variables/debug-variables.module.less +0 -149
  310. package/src/browser/view/variables/debug-variables.view.tsx +0 -303
  311. package/src/browser/view/watch/debug-watch-model.ts +0 -38
  312. package/src/browser/view/watch/debug-watch-tree.model.service.ts +0 -570
  313. package/src/browser/view/watch/debug-watch.contribution.ts +0 -170
  314. package/src/browser/view/watch/debug-watch.module.less +0 -189
  315. package/src/browser/view/watch/debug-watch.view.tsx +0 -337
  316. package/src/common/commands.ts +0 -146
  317. package/src/common/constants.ts +0 -81
  318. package/src/common/debug-breakpoint.ts +0 -43
  319. package/src/common/debug-configuration.ts +0 -68
  320. package/src/common/debug-console.ts +0 -20
  321. package/src/common/debug-editor.ts +0 -4
  322. package/src/common/debug-hover.ts +0 -31
  323. package/src/common/debug-model.ts +0 -272
  324. package/src/common/debug-progress.ts +0 -8
  325. package/src/common/debug-schema-updater.ts +0 -1
  326. package/src/common/debug-service.ts +0 -176
  327. package/src/common/debug-session-options.ts +0 -19
  328. package/src/common/debug-session.ts +0 -200
  329. package/src/common/evaluatable-expression.ts +0 -43
  330. package/src/common/index.ts +0 -16
  331. package/src/common/inline-values.ts +0 -77
  332. package/src/common/terminal.ts +0 -163
  333. package/src/common/types.ts +0 -86
  334. package/src/index.ts +0 -1
@@ -1,511 +0,0 @@
1
- import cls from 'classnames';
2
- import debounce from 'lodash/debounce';
3
- import { observer } from 'mobx-react-lite';
4
- import React from 'react';
5
-
6
- import {
7
- RecycleTree,
8
- IRecycleTreeHandle,
9
- TreeNodeType,
10
- INodeRendererWrapProps,
11
- ClasslistComposite,
12
- INodeRendererProps,
13
- CompositeTreeNode,
14
- TreeNode,
15
- TreeNodeEvent,
16
- } from '@opensumi/ide-components';
17
- import { Loading } from '@opensumi/ide-components';
18
- import { useInjectable, ViewState, getIcon } from '@opensumi/ide-core-browser';
19
- import { PreferenceService, PreferenceChange, CoreConfiguration } from '@opensumi/ide-core-browser';
20
- import { Disposable } from '@opensumi/ide-core-common';
21
- import { IMainLayoutService } from '@opensumi/ide-main-layout/lib/common/main-layout.definition';
22
-
23
- import { DEBUG_CONSOLE_CONTAINER_ID } from '../../../common';
24
- import { LinkDetector } from '../../debug-link-detector';
25
- import { CharWidthReader } from '../../debugUtils';
26
- import { DebugConsoleNode, AnsiConsoleNode, DebugVariableContainer, TreeWithLinkWrapper } from '../../tree';
27
-
28
- import { DebugConsoleFilterService } from './debug-console-filter.service';
29
- import { IDebugConsoleModel } from './debug-console-tree.model.service';
30
- import styles from './debug-console.module.less';
31
- import { DebugConsoleService } from './debug-console.service';
32
-
33
- declare const ResizeObserver: any;
34
-
35
- export const DebugConsoleView = observer(({ viewState }: { viewState: ViewState }) => {
36
- const debugConsoleService = useInjectable<DebugConsoleService>(DebugConsoleService);
37
- const debugConsoleFilterService = useInjectable<DebugConsoleFilterService>(DebugConsoleFilterService);
38
- const preferenceService = useInjectable<PreferenceService>(PreferenceService);
39
- const { consoleModel } = debugConsoleService;
40
- const debugInputRef = React.createRef<HTMLDivElement>();
41
- const { height, width } = viewState;
42
- const [model, setModel] = React.useState<IDebugConsoleModel>();
43
- const [consoleHeight, setConsoleHeight] = React.useState<number>(26);
44
- const [filterValue, setFilterValue] = React.useState<string>('');
45
- const [isWordWrap, setIsWordWrap] = React.useState<boolean>(true);
46
- const disposer = new Disposable();
47
- const wrapperRef: React.RefObject<HTMLDivElement> = React.createRef();
48
- const layoutService = useInjectable<IMainLayoutService>(IMainLayoutService);
49
-
50
- React.useEffect(() => {
51
- const handler = layoutService.getTabbarHandler(DEBUG_CONSOLE_CONTAINER_ID);
52
- if (handler?.isActivated()) {
53
- debugConsoleService.init(debugInputRef.current);
54
- } else {
55
- const dispose = handler?.onActivate(() => {
56
- debugConsoleService.init(debugInputRef.current);
57
- dispose?.dispose();
58
- });
59
- }
60
- }, [debugInputRef.current]);
61
-
62
- React.useEffect(() => {
63
- disposer.addDispose(
64
- consoleModel.onDidUpdateTreeModel(async (model: IDebugConsoleModel) => {
65
- if (model) {
66
- await model.treeModel.ensureReady;
67
- disposer.addDispose(
68
- model.treeModel.root.watcher.on(TreeNodeEvent.WillChangeExpansionState, () => {
69
- consoleModel.treeHandle.layoutItem();
70
- }),
71
- );
72
- }
73
- setModel(model);
74
- }),
75
- );
76
-
77
- disposer.addDispose(
78
- debugConsoleFilterService.onDidValueChange((value: string) => {
79
- setFilterValue(value);
80
- }),
81
- );
82
-
83
- disposer.addDispose(
84
- debugConsoleService.onInputHeightChange((height: number) => {
85
- setConsoleHeight(height);
86
- }),
87
- );
88
-
89
- disposer.addDispose(
90
- preferenceService.onSpecificPreferenceChange('debug.console.wordWrap', (change: PreferenceChange) => {
91
- const { newValue } = change;
92
- setIsWordWrap(newValue);
93
- }),
94
- );
95
-
96
- setIsWordWrap(!!preferenceService.get('debug.console.wordWrap', isWordWrap));
97
-
98
- return () => {
99
- consoleModel.removeNodeDecoration();
100
- disposer.dispose();
101
- };
102
- }, []);
103
-
104
- React.useEffect(() => {
105
- if (wrapperRef.current && isWordWrap) {
106
- let animationFrame: number;
107
- const layoutDebounce = debounce(() => consoleModel.treeHandle?.layoutItem(), 10);
108
- const resizeObserver = new ResizeObserver(() => {
109
- animationFrame = window.requestAnimationFrame(() => layoutDebounce());
110
- });
111
- resizeObserver.observe(wrapperRef.current);
112
- return () => {
113
- if (wrapperRef.current) {
114
- resizeObserver?.unobserve(wrapperRef.current);
115
- }
116
- if (animationFrame) {
117
- window.cancelAnimationFrame(animationFrame);
118
- }
119
- };
120
- }
121
- }, [wrapperRef.current]);
122
-
123
- React.useEffect(() => {
124
- if (model && isWordWrap) {
125
- disposer.addDispose(
126
- model.treeModel.state.onChangeScrollOffset(() => {
127
- consoleModel.treeHandle.layoutItem();
128
- }),
129
- );
130
- }
131
- }, [model, isWordWrap]);
132
-
133
- const handleTreeReady = (handle: IRecycleTreeHandle) => {
134
- consoleModel.handleTreeHandler({
135
- ...handle,
136
- getModel: () => model?.treeModel!,
137
- hasDirectFocus: () => wrapperRef.current === document.activeElement,
138
- });
139
- };
140
-
141
- const handleTwistierClick = (ev: React.MouseEvent, item: AnsiConsoleNode | DebugConsoleNode, type: TreeNodeType) => {
142
- const selection = window.getSelection();
143
- if (selection && selection.type === 'Range' && selection.rangeCount > 0) {
144
- // 当用户有选中日志内容时阻止冒泡,防止在选中之后 focus 到 debug console input
145
- ev.stopPropagation();
146
- }
147
-
148
- const { handleTwistierClick } = consoleModel;
149
- if (!item) {
150
- return;
151
- }
152
- handleTwistierClick(item, type);
153
- };
154
-
155
- const handlerContextMenu = (ev: React.MouseEvent, node: AnsiConsoleNode | DebugConsoleNode) => {
156
- const { handleContextMenu } = consoleModel;
157
- handleContextMenu(ev, node);
158
- };
159
-
160
- const handleOuterContextMenu = (ev: React.MouseEvent) => {
161
- const { handleContextMenu } = consoleModel;
162
- // 空白区域右键菜单
163
- handleContextMenu(ev);
164
- };
165
-
166
- const handleConsoleClick = (ev: React.MouseEvent) => {
167
- // 空白区域点击,取消焦点状态
168
- const { enactiveNodeDecoration } = consoleModel;
169
- enactiveNodeDecoration();
170
-
171
- debugConsoleService.focusInput();
172
- };
173
-
174
- const handleOuterBlur = (ev: React.FocusEvent) => {
175
- // 空白区域点击,取消焦点状态
176
- const { enactiveNodeDecoration } = consoleModel;
177
- enactiveNodeDecoration();
178
- };
179
-
180
- const filterMode = (): CoreConfiguration['debug.console.filter.mode'] => 'filter';
181
-
182
- const fuzzyOptions = () => ({
183
- pre: '<match>',
184
- post: '</match>',
185
- extract: (node: DebugConsoleNode | AnsiConsoleNode | DebugVariableContainer) =>
186
- node.description ? node.description : node.name,
187
- });
188
-
189
- const renderOutputNode = React.useCallback(
190
- (props: INodeRendererWrapProps) => {
191
- const decorations = consoleModel.decorations.getDecorations(props.item as any);
192
- return (
193
- <DebugConsoleRenderedNode
194
- item={props.item}
195
- itemType={props.itemType}
196
- decorations={decorations}
197
- filterValue={filterValue}
198
- filterMode={filterMode()}
199
- onClick={handleTwistierClick}
200
- onTwistierClick={handleTwistierClick}
201
- onContextMenu={handlerContextMenu}
202
- defaultLeftPadding={14}
203
- isWordWrap={isWordWrap}
204
- leftPadding={8}
205
- />
206
- );
207
- },
208
- [model, filterValue, isWordWrap],
209
- );
210
-
211
- const renderOutputContent = () => {
212
- if (!model) {
213
- return null;
214
- }
215
- return (
216
- <RecycleTree
217
- height={Math.max(height - consoleHeight, 26)}
218
- width={width}
219
- itemHeight={DEBUG_CONSOLE_TREE_NODE_HEIGHT}
220
- onReady={handleTreeReady}
221
- overScanCount={10}
222
- filter={filterMode() === 'filter' ? filterValue : ''}
223
- filterProvider={{ fuzzyOptions, filterAlways: true }}
224
- model={model!.treeModel}
225
- overflow={'auto'}
226
- supportDynamicHeights={isWordWrap}
227
- >
228
- {renderOutputNode}
229
- </RecycleTree>
230
- );
231
- };
232
-
233
- return (
234
- <div className={styles.debug_console} onContextMenu={handleOuterContextMenu} onClick={handleConsoleClick}>
235
- <div
236
- className={styles.debug_console_output}
237
- tabIndex={-1}
238
- onBlur={handleOuterBlur}
239
- ref={wrapperRef}
240
- data-name={DEBUG_CONSOLE_TREE_FIELD_NAME}
241
- >
242
- {renderOutputContent()}
243
- </div>
244
- <div className={styles.variable_repl_bar} style={{ maxHeight: height - 26 + 'px' }}>
245
- <div className={styles.variable_repl_bar_icon}>
246
- <span className={getIcon('right')}></span>
247
- </div>
248
- <div className={styles.variable_repl_editor} ref={debugInputRef}></div>
249
- </div>
250
- </div>
251
- );
252
- });
253
-
254
- export interface IDebugConsoleNodeProps {
255
- item: any;
256
- defaultLeftPadding?: number;
257
- leftPadding?: number;
258
- filterValue?: string;
259
- filterMode?: CoreConfiguration['debug.console.filter.mode'];
260
- decorations?: ClasslistComposite;
261
- isWordWrap?: boolean;
262
- onClick: (ev: React.MouseEvent, item: AnsiConsoleNode | DebugConsoleNode | TreeNode, type: TreeNodeType) => void;
263
- onTwistierClick: (
264
- ev: React.MouseEvent,
265
- item: AnsiConsoleNode | DebugConsoleNode | TreeNode,
266
- type: TreeNodeType,
267
- ) => void;
268
- onContextMenu?: (
269
- ev: React.MouseEvent,
270
- item: AnsiConsoleNode | DebugConsoleNode | TreeNode,
271
- type: TreeNodeType,
272
- ) => void;
273
- }
274
-
275
- export type IDebugConsoleNodeRenderedProps = IDebugConsoleNodeProps & INodeRendererProps;
276
-
277
- export const DebugConsoleRenderedNode: React.FC<IDebugConsoleNodeRenderedProps> = ({
278
- item,
279
- decorations,
280
- defaultLeftPadding,
281
- leftPadding,
282
- filterMode,
283
- filterValue,
284
- onClick,
285
- onTwistierClick,
286
- onContextMenu,
287
- isWordWrap,
288
- itemType,
289
- }: IDebugConsoleNodeRenderedProps) => {
290
- const debugConsoleFilterService = useInjectable<DebugConsoleFilterService>(DebugConsoleFilterService);
291
- const linkDetector: LinkDetector = useInjectable<LinkDetector>(LinkDetector);
292
- const [computedStyle, setComputedStyle] = React.useState<string>();
293
-
294
- React.useEffect(() => {
295
- const computed = window.getComputedStyle(
296
- AnsiConsoleNode.is(item) ? item.el : linkDetector.linkify((item as DebugConsoleNode).description),
297
- null,
298
- );
299
- const fontStyle = `${computed.fontStyle} ${computed.fontWeight} ${computed.fontSize}/${computed.lineHeight} ${computed.fontFamily}`;
300
- setComputedStyle(fontStyle);
301
- }, [item]);
302
-
303
- const handleClick = (ev: React.MouseEvent) => {
304
- onClick(ev, item, CompositeTreeNode.is(item) ? TreeNodeType.CompositeTreeNode : TreeNodeType.TreeNode);
305
- };
306
-
307
- const handleContextMenu = (ev: React.MouseEvent) => {
308
- if (ev.nativeEvent.which === 0) {
309
- return;
310
- }
311
- if (itemType === TreeNodeType.TreeNode || itemType === TreeNodeType.CompositeTreeNode) {
312
- onContextMenu && onContextMenu(ev, item as AnsiConsoleNode, itemType);
313
- }
314
- };
315
-
316
- const acquireVariableName = () => {
317
- if (AnsiConsoleNode.is(item)) {
318
- return '';
319
- }
320
- return (
321
- (DebugConsoleNode.is(item) ? '' : (item as any).name) +
322
- (item.description && !DebugConsoleNode.is(item) ? ': ' : '')
323
- );
324
- };
325
-
326
- const getTextWidth = (char: string, font: string): number => CharWidthReader.getInstance().getCharWidth(char, font);
327
-
328
- const renderSelectionFilter = React.useCallback(() => {
329
- if (!computedStyle) {
330
- return;
331
- }
332
-
333
- const desc = acquireVariableName() + item.description;
334
- const matchers = debugConsoleFilterService.findMatches(desc || '');
335
- const toNumFixed = (n: number) => Number(n.toFixed(4));
336
-
337
- const calcWidth = (index: number, count: number) =>
338
- Array.from({ length: count }, (_, i) => i).reduce(
339
- (pre: number, cur: number) => pre + toNumFixed(getTextWidth(desc.charAt(index + cur), computedStyle)),
340
- 0,
341
- );
342
-
343
- // 在每次计算 left 的时候临时存储上一次的结果(这在每次计算大量日志内容的时候很有用)
344
- const cacheLeftMap: Map<number, { startIndex: number; left: number }> = new Map();
345
-
346
- const calcLeft = (startIndex: number, preIndex: number) => {
347
- if (startIndex > 0) {
348
- const excute = (len: number, start: number, initial: number) =>
349
- Array.from({ length: len - start }, (_, i) => start + i).reduce(
350
- (pre: number, cur: number) => toNumFixed(pre + getTextWidth(desc.charAt(cur), computedStyle)),
351
- initial,
352
- );
353
-
354
- let left: number;
355
- if (preIndex !== 0 && cacheLeftMap.has(matchers[preIndex].startIndex)) {
356
- const pre = cacheLeftMap.get(matchers[preIndex].startIndex)!;
357
- left = excute(startIndex, pre.startIndex, pre.left);
358
- } else {
359
- left = excute(startIndex, 0, 0);
360
- }
361
- cacheLeftMap.set(startIndex, { startIndex, left });
362
- return left;
363
- }
364
- return 0;
365
- };
366
-
367
- const matStyles: React.CSSProperties[] = matchers.map((m, i) => ({
368
- height: 16,
369
- top: 3,
370
- width: calcWidth(m.startIndex, m.count),
371
- left: calcLeft(m.startIndex, Math.max(0, i - 1)),
372
- }));
373
-
374
- return matStyles.map((s) => <div key={s.left} className={styles.block} style={s}></div>);
375
- }, [filterValue, computedStyle]);
376
-
377
- const renderDisplayName = (node: DebugConsoleNode | AnsiConsoleNode) => {
378
- if (AnsiConsoleNode.is(node)) {
379
- return null;
380
- }
381
- if (node instanceof DebugConsoleNode && node.variablesReference === 0) {
382
- return null;
383
- }
384
- return (
385
- <div
386
- className={cls(
387
- styles.debug_console_node_segment,
388
- !DebugConsoleNode.is(node) && styles.debug_console_node_displayname,
389
- styles.debug_console_variable,
390
- (item as DebugConsoleNode).description ? styles.name : styles.info,
391
- )}
392
- >
393
- {<TreeWithLinkWrapper html={linkDetector.linkify(acquireVariableName())}></TreeWithLinkWrapper>}
394
- </div>
395
- );
396
- };
397
-
398
- const renderDescription = (node: DebugConsoleNode | AnsiConsoleNode) => {
399
- const booleanRegex = /^true|false$/i;
400
- const stringRegex = /^(['"]).*\1$/;
401
- const description = (node as DebugConsoleNode).description || '';
402
- const addonClass = [styles.debug_console_variable];
403
- if (AnsiConsoleNode.is(node)) {
404
- return (
405
- <div className={cls(styles.debug_console_node_segment, styles.debug_console_node_displayname)}>
406
- {(node as AnsiConsoleNode).template()}
407
- </div>
408
- );
409
- }
410
- if (item.variableType === 'number' || item.variableType === 'boolean' || item.variableType === 'string') {
411
- addonClass.push(styles[item.variableType]);
412
- } else if (!isNaN(+description)) {
413
- addonClass.push(styles.number);
414
- } else if (booleanRegex.test(description)) {
415
- addonClass.push(styles.boolean);
416
- } else if (stringRegex.test(description)) {
417
- addonClass.push(styles.string);
418
- }
419
- return (
420
- <div
421
- className={cls(styles.debug_console_node_segment_grow, styles.debug_console_node_description, ...addonClass)}
422
- >
423
- <TreeWithLinkWrapper html={linkDetector.linkify(description)}></TreeWithLinkWrapper>
424
- </div>
425
- );
426
- };
427
-
428
- const renderStatusTail = () => (
429
- <div className={cls(styles.debug_console_node_segment, styles.debug_console_node_tail)}>{renderBadge()}</div>
430
- );
431
-
432
- const renderBadge = () => {
433
- if (AnsiConsoleNode.is(item)) {
434
- return (
435
- <div className={styles.debug_console_node_status} title={item.source?.path}>
436
- {item.source?.name ? `${item.source?.name}:${item.line}` : ''}
437
- </div>
438
- );
439
- }
440
- return <div className={styles.debug_console_node_status}>{item.badge}</div>;
441
- };
442
-
443
- const getItemTooltip = () => {
444
- const tooltip = item.tooltip;
445
- return tooltip;
446
- };
447
-
448
- const renderToggle = (node: DebugConsoleNode, clickHandler: any) => {
449
- const handleTwiceClick = (ev: React.MouseEvent) => {
450
- clickHandler(ev, node, itemType);
451
- };
452
- if (decorations && decorations?.classlist.indexOf(styles.mod_loading) > -1) {
453
- return (
454
- <div className={cls(styles.debug_console_node_segment, styles.expansion_toggle)}>
455
- <Loading />
456
- </div>
457
- );
458
- }
459
- if (node instanceof DebugConsoleNode && (node as DebugConsoleNode).variablesReference === 0) {
460
- return null;
461
- }
462
-
463
- return (
464
- <div
465
- onClick={handleTwiceClick}
466
- className={cls(styles.debug_console_node_segment, styles.expansion_toggle, getIcon('right'), {
467
- [`${styles.mod_collapsed}`]: !(node as DebugConsoleNode).expanded,
468
- })}
469
- />
470
- );
471
- };
472
-
473
- const renderTwice = (item) => {
474
- if (CompositeTreeNode.is(item)) {
475
- return renderToggle(item as DebugConsoleNode, onTwistierClick);
476
- }
477
- };
478
-
479
- return (
480
- <div
481
- key={item.id}
482
- onClick={handleClick}
483
- onContextMenu={handleContextMenu}
484
- title={getItemTooltip()}
485
- className={cls(styles.debug_console_node, decorations ? decorations.classlist : null)}
486
- style={{
487
- paddingLeft: `${(defaultLeftPadding || 8) + (item.depth || 0) * (leftPadding || 0)}px`,
488
- }}
489
- data-id={item.id}
490
- >
491
- <div className={cls(styles.debug_console_node_content)}>
492
- {renderTwice(item)}
493
- <div
494
- className={styles.debug_console_node_overflow_wrap}
495
- style={{
496
- whiteSpace: isWordWrap ? 'pre-wrap' : 'nowrap',
497
- cursor: item instanceof DebugVariableContainer ? 'pointer' : 'initial',
498
- }}
499
- >
500
- {renderDisplayName(item)}
501
- {renderDescription(item)}
502
- </div>
503
- {renderStatusTail()}
504
- </div>
505
- <div className={styles.debug_console_selection}>{filterMode === 'matcher' && renderSelectionFilter()}</div>
506
- </div>
507
- );
508
- };
509
-
510
- export const DEBUG_CONSOLE_TREE_NODE_HEIGHT = 22;
511
- export const DEBUG_CONSOLE_TREE_FIELD_NAME = 'DEBUG_CONSOLE_TREE_FIELD';
@@ -1,182 +0,0 @@
1
- /** ******************************************************************************
2
- * Copyright (C) 2018 Red Hat, Inc. and others.
3
- *
4
- * This program and the accompanying materials are made available under the
5
- * terms of the Eclipse Public License v. 2.0 which is available at
6
- * http://www.eclipse.org/legal/epl-2.0.
7
- *
8
- * This Source Code may also be made available under the following Secondary
9
- * Licenses when the conditions for such availability set forth in the Eclipse
10
- * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- * with the GNU Classpath Exception which is available at
12
- * https://www.gnu.org/software/classpath/license.html.
13
- *
14
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
- ********************************************************************************/
16
- // Some code copied and modified from https://github.com/eclipse-theia/theia/tree/v1.14.0/packages/debug/src/browser/view/debug-view-model.ts
17
-
18
- import { Injectable, Autowired } from '@opensumi/di';
19
- import { URI, IDisposable, DisposableCollection, Event, Emitter } from '@opensumi/ide-core-browser';
20
-
21
- import { DebugState, IDebugSessionManager } from '../../common/debug-session';
22
- import { DebugSession } from '../debug-session';
23
- import { DebugSessionManager } from '../debug-session-manager';
24
- import { DebugStackFrame } from '../model/debug-stack-frame';
25
- import { DebugThread } from '../model/debug-thread';
26
-
27
-
28
- @Injectable()
29
- export class DebugViewModel implements IDisposable {
30
- @Autowired(IDebugSessionManager)
31
- protected readonly manager: DebugSessionManager;
32
-
33
- protected readonly onDidChangeEmitter = new Emitter<void>();
34
- readonly onDidChange: Event<void> = this.onDidChangeEmitter.event;
35
- protected fireDidChange(): void {
36
- this.onDidChangeEmitter.fire(undefined);
37
- }
38
-
39
- protected readonly onDidChangeBreakpointsEmitter = new Emitter<URI>();
40
- readonly onDidChangeBreakpoints: Event<URI> = this.onDidChangeBreakpointsEmitter.event;
41
- protected fireDidChangeBreakpoints(uri: URI): void {
42
- this.onDidChangeBreakpointsEmitter.fire(uri);
43
- }
44
-
45
- protected readonly toDispose = new DisposableCollection(this.onDidChangeEmitter, this.onDidChangeBreakpointsEmitter);
46
-
47
- protected readonly _sessions = new Set<DebugSession>();
48
-
49
- get sessions(): IterableIterator<DebugSession> {
50
- return this._sessions.values();
51
- }
52
-
53
- get sessionCount(): number {
54
- return this._sessions.size;
55
- }
56
-
57
- push(session: DebugSession): void {
58
- if (this._sessions.has(session)) {
59
- return;
60
- }
61
- this._sessions.add(session);
62
- this.fireDidChange();
63
- }
64
-
65
- delete(session: DebugSession): boolean {
66
- if (this._sessions.delete(session)) {
67
- this.fireDidChange();
68
- return true;
69
- }
70
- return false;
71
- }
72
-
73
- get session(): DebugSession | undefined {
74
- return this.sessions.next().value;
75
- }
76
-
77
- get id(): string {
78
- return (this.session && this.session.id) || '-1';
79
- }
80
- get label(): string {
81
- return (this.session && this.session.label) || 'Unknown Session';
82
- }
83
- has(session: DebugSession | undefined): session is DebugSession {
84
- return !!session && this._sessions.has(session);
85
- }
86
-
87
- init(seesion: DebugSession): void {
88
- if (seesion) {
89
- this.push(seesion);
90
- }
91
- this.toDispose.push(
92
- this.manager.onDidChangeActiveDebugSession(({ previous, current }) => {
93
- if (this.has(previous) && !this.has(current)) {
94
- this.fireDidChange();
95
- }
96
- }),
97
- );
98
- this.toDispose.push(
99
- this.manager.onDidChange((current) => {
100
- if (this.has(current)) {
101
- this.fireDidChange();
102
- }
103
- }),
104
- );
105
- this.toDispose.push(
106
- this.manager.onDidDestroyDebugSession((current) => {
107
- if (this.has(current)) {
108
- this.fireDidChange();
109
- }
110
- }),
111
- );
112
- }
113
-
114
- dispose(): void {
115
- this.toDispose.dispose();
116
- }
117
-
118
- get threads(): IterableIterator<DebugThread> | undefined {
119
- if (this.manager.currentSession) {
120
- return this.manager.currentSession.getThreads(() => true);
121
- }
122
- }
123
- get currentSession(): DebugSession | undefined {
124
- const { currentSession } = this.manager;
125
- return (this.has(currentSession) && currentSession) || this.session;
126
- }
127
- set currentSession(currentSession: DebugSession | undefined) {
128
- this.manager.updateCurrentSession(currentSession);
129
- }
130
-
131
- get state(): DebugState {
132
- const { currentSession } = this;
133
- return (currentSession && currentSession.state) || DebugState.Inactive;
134
- }
135
- get currentThread(): DebugThread | undefined {
136
- const { currentSession } = this;
137
- return currentSession && currentSession.currentThread;
138
- }
139
- get currentFrame(): DebugStackFrame | undefined {
140
- const { currentThread } = this;
141
- return currentThread && currentThread.currentFrame;
142
- }
143
-
144
- async start(): Promise<void> {
145
- const { session } = this;
146
- if (!session) {
147
- return;
148
- }
149
- const newSession = await this.manager.start(session.options);
150
- if (newSession) {
151
- this._sessions.delete(session);
152
- this._sessions.add(newSession);
153
- this.fireDidChange();
154
- }
155
- }
156
-
157
- async restart(): Promise<void> {
158
- const { currentSession } = this;
159
- if (!currentSession) {
160
- return;
161
- }
162
-
163
- const newSession = await this.manager.restart(currentSession);
164
- if (newSession !== currentSession) {
165
- this._sessions.delete(currentSession);
166
- this._sessions.add(newSession);
167
- }
168
- this.fireDidChange();
169
- }
170
-
171
- report(name: string, msg: string | undefined, extra?: any) {
172
- return this.manager.report(name, msg, extra);
173
- }
174
-
175
- reportTime(name: string, defaults?: any) {
176
- return this.manager.reportTime(name, defaults);
177
- }
178
-
179
- reportAction(sessionId: string, threadId: number | string | undefined, action: string) {
180
- return this.manager.reportAction(sessionId, threadId, action);
181
- }
182
- }