@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,433 @@
1
+ import { Injectable, Autowired, Injector, INJECTOR_TOKEN } from '@opensumi/di';
2
+ import {
3
+ IContextKeyService,
4
+ MonacoOverrideServiceRegistry,
5
+ ServiceNames,
6
+ localize,
7
+ StorageProvider,
8
+ } from '@opensumi/ide-core-browser';
9
+ import { Schemes, URI, CommandRegistry, Emitter, Event, STORAGE_NAMESPACE } from '@opensumi/ide-core-common';
10
+ import { EditorCollectionService, IDecorationApplyOptions } from '@opensumi/ide-editor';
11
+ import { IEditorDocumentModelService, ICodeEditor, getSimpleEditorOptions } from '@opensumi/ide-editor/lib/browser';
12
+ import { MonacoCodeService } from '@opensumi/ide-editor/lib/browser/editor.override';
13
+ import { IMainLayoutService } from '@opensumi/ide-main-layout';
14
+ import { transparent, editorForeground, IThemeService } from '@opensumi/ide-theme';
15
+ import { IHistoryNavigationWidget } from '@opensumi/monaco-editor-core/esm/vs/base/browser/history';
16
+ import { HistoryNavigator } from '@opensumi/monaco-editor-core/esm/vs/base/common/history';
17
+ import { ITextModel } from '@opensumi/monaco-editor-core/esm/vs/editor/common/model';
18
+ import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
19
+
20
+ import {
21
+ DEBUG_CONSOLE_CONTAINER_ID,
22
+ IDebugSessionManager,
23
+ CONTEXT_IN_DEBUG_MODE_KEY,
24
+ DebugState,
25
+ } from '../../../common';
26
+ import { DebugSessionManager } from '../../debug-session-manager';
27
+
28
+ import { DebugContextKey } from './../../contextkeys/debug-contextkey.service';
29
+ import { DebugConsoleModelService } from './debug-console-tree.model.service';
30
+
31
+ const DECORATION_KEY = 'consoleinputdecoration';
32
+ const HISTORY_STORAGE_KEY = 'debug.console.history';
33
+ const DEBUG_CONSOLE_DEFAULT_HEIGHT = 18;
34
+
35
+ const firstUpperCase = (str: string) => str.replace(/^\S/, (s) => s.toUpperCase());
36
+
37
+ const consoleInputMonacoOptions: monaco.editor.IEditorOptions = {
38
+ ...getSimpleEditorOptions(),
39
+ scrollbar: {
40
+ horizontal: 'visible',
41
+ vertical: 'hidden',
42
+ handleMouseWheel: true,
43
+ },
44
+ acceptSuggestionOnEnter: 'on',
45
+ readOnly: true,
46
+ };
47
+
48
+ @Injectable()
49
+ export class DebugConsoleService implements IHistoryNavigationWidget {
50
+ @Autowired(DebugConsoleModelService)
51
+ protected readonly debugConsoleModelService: DebugConsoleModelService;
52
+
53
+ @Autowired(IMainLayoutService)
54
+ protected readonly mainLayoutService: IMainLayoutService;
55
+
56
+ @Autowired(IEditorDocumentModelService)
57
+ protected readonly documentService: IEditorDocumentModelService;
58
+
59
+ @Autowired(EditorCollectionService)
60
+ protected readonly editorService: EditorCollectionService;
61
+
62
+ @Autowired(CommandRegistry)
63
+ protected readonly commands: CommandRegistry;
64
+
65
+ @Autowired(IContextKeyService)
66
+ protected readonly contextKeyService: IContextKeyService;
67
+
68
+ @Autowired(IDebugSessionManager)
69
+ protected readonly manager: DebugSessionManager;
70
+
71
+ @Autowired(IThemeService)
72
+ protected readonly themeService: IThemeService;
73
+
74
+ @Autowired(MonacoOverrideServiceRegistry)
75
+ private readonly overrideServicesRegistry: MonacoOverrideServiceRegistry;
76
+
77
+ @Autowired(StorageProvider)
78
+ private readonly storageProvider: StorageProvider;
79
+
80
+ @Autowired(INJECTOR_TOKEN)
81
+ private readonly injector: Injector;
82
+
83
+ private debugContextKey: DebugContextKey;
84
+
85
+ protected history: HistoryNavigator<string>;
86
+ protected _consoleInputElement: HTMLDivElement | null = null;
87
+ protected _updateDisposable: monaco.IDisposable | null = null;
88
+ protected _consoleModel: ITextModel;
89
+ protected get _isReadonly(): boolean {
90
+ const session = this.manager.currentSession;
91
+ if (session && session.state !== DebugState.Inactive) {
92
+ return false;
93
+ }
94
+
95
+ return true;
96
+ }
97
+
98
+ private inputEditor?: ICodeEditor;
99
+
100
+ public static keySet = new Set([CONTEXT_IN_DEBUG_MODE_KEY]);
101
+
102
+ constructor() {
103
+ this.contextKeyService.onDidChangeContext((e) => {
104
+ if (e.payload.affectsSome(DebugConsoleService.keySet)) {
105
+ const inDebugMode = this.contextKeyService.match(CONTEXT_IN_DEBUG_MODE_KEY);
106
+ if (inDebugMode) {
107
+ this.updateReadOnly(false);
108
+ this.updateInputDecoration();
109
+ this.debugContextKey.contextInDdebugMode.set(true);
110
+ } else {
111
+ this.updateReadOnly(true);
112
+ if (this.debugContextKey) {
113
+ this.debugContextKey.contextInDdebugMode.set(false);
114
+ }
115
+ }
116
+ }
117
+ });
118
+ }
119
+
120
+ // FIXME: 需要实现新增的属性及事件
121
+ element: HTMLElement;
122
+ onDidFocus: Event<void>;
123
+ onDidBlur: Event<void>;
124
+
125
+ private _onConsoleInputValueChange = new Emitter<URI>();
126
+ public onConsoleInputValueChange: Event<URI> = this._onConsoleInputValueChange.event;
127
+
128
+ private _onInputHeightChange = new Emitter<number>();
129
+ public onInputHeightChange: Event<number> = this._onInputHeightChange.event;
130
+
131
+ public get isVisible() {
132
+ const bottomPanelHandler = this.mainLayoutService.getTabbarHandler(DEBUG_CONSOLE_CONTAINER_ID);
133
+ return bottomPanelHandler && bottomPanelHandler.isVisible;
134
+ }
135
+
136
+ public get consoleModel(): DebugConsoleModelService {
137
+ return this.debugConsoleModelService;
138
+ }
139
+
140
+ public activate() {
141
+ const bottomPanelHandler = this.mainLayoutService.getTabbarHandler(DEBUG_CONSOLE_CONTAINER_ID);
142
+ if (bottomPanelHandler && !bottomPanelHandler.isVisible) {
143
+ bottomPanelHandler.activate();
144
+ }
145
+ }
146
+
147
+ public focusInput(): void {
148
+ if (this.inputEditor) {
149
+ this.inputEditor.monacoEditor.focus();
150
+ }
151
+ }
152
+
153
+ public async init(e: HTMLDivElement | null) {
154
+ if (!e) {
155
+ return;
156
+ }
157
+
158
+ const storage = await this.storageProvider(STORAGE_NAMESPACE.DEBUG);
159
+ this.history = new HistoryNavigator(storage.get(HISTORY_STORAGE_KEY, []), 50);
160
+
161
+ this._consoleInputElement = e;
162
+ this.inputEditor = this.editorService.createCodeEditor(this._consoleInputElement!, {
163
+ ...consoleInputMonacoOptions,
164
+ });
165
+
166
+ this.debugContextKey = this.injector.get(DebugContextKey, [
167
+ (this.inputEditor.monacoEditor as any)._contextKeyService,
168
+ ]);
169
+
170
+ this.registerDecorationType();
171
+ await this.createConsoleInput();
172
+ this.setMode();
173
+ }
174
+
175
+ public get contextInDebugRepl() {
176
+ return this.debugContextKey.contextInDebugRepl;
177
+ }
178
+
179
+ public get consoleInputValue() {
180
+ return (this._consoleModel && this._consoleModel.getValue()) || '';
181
+ }
182
+
183
+ public showPreviousValue(): void {
184
+ if (!this._isReadonly) {
185
+ this.navigateHistory(true);
186
+ }
187
+ }
188
+
189
+ public showNextValue(): void {
190
+ if (!this._isReadonly) {
191
+ this.navigateHistory(false);
192
+ }
193
+ }
194
+
195
+ public async runExecute(): Promise<void> {
196
+ if (!this.inputEditor) {
197
+ return;
198
+ }
199
+
200
+ const editor = this.inputEditor.monacoEditor;
201
+ const value = editor.getValue();
202
+ await this.consoleModel.execute(value);
203
+ this.history.add(value);
204
+ editor.setValue('');
205
+ }
206
+
207
+ private navigateHistory(previous: boolean): void {
208
+ const historyInput = previous ? this.history.previous() : this.history.next();
209
+ if (historyInput && this.inputEditor && this.inputEditor.monacoEditor) {
210
+ const { monacoEditor } = this.inputEditor;
211
+ monacoEditor.setValue(historyInput);
212
+ monacoEditor.setPosition({ lineNumber: 1, column: historyInput.length + 1 });
213
+ }
214
+ }
215
+
216
+ private get consoleInputUri() {
217
+ return new URI('debug/console/input').withScheme(Schemes.walkThroughSnippet);
218
+ }
219
+
220
+ private async createConsoleInput() {
221
+ if (!this.inputEditor?.monacoEditor) {
222
+ return;
223
+ }
224
+
225
+ const { monacoEditor } = this.inputEditor;
226
+
227
+ const docModel = await this.documentService.createModelReference(this.consoleInputUri);
228
+ const model = docModel.instance.getMonacoModel();
229
+ model.updateOptions({ tabSize: 2 });
230
+ this._consoleModel = model;
231
+ monacoEditor.setModel(model);
232
+
233
+ setTimeout(() => {
234
+ this.layoutBody();
235
+ }, 0);
236
+
237
+ monacoEditor.onDidFocusEditorText(() => {
238
+ this.contextInDebugRepl.set(true);
239
+ this.updateInputDecoration();
240
+ });
241
+ monacoEditor.onDidBlurEditorText(() => {
242
+ this.contextInDebugRepl.set(false);
243
+ this.updateInputDecoration();
244
+ });
245
+ monacoEditor.onDidChangeModelContent(() => {
246
+ const lineNum = monacoEditor.getModel()!.getLineCount();
247
+ this.layoutBody(lineNum * 18);
248
+ });
249
+
250
+ this.manager.onDidChangeActiveDebugSession(() => {
251
+ this.registerCompletion();
252
+ this.setMode();
253
+ });
254
+
255
+ await this.updateInputDecoration();
256
+ }
257
+
258
+ private layoutBody(height?: number, width?: number): void {
259
+ if (!this.inputEditor) {
260
+ return;
261
+ }
262
+
263
+ const { monacoEditor } = this.inputEditor;
264
+
265
+ const h = Math.max(height || DEBUG_CONSOLE_DEFAULT_HEIGHT, monacoEditor.getContentHeight());
266
+
267
+ monacoEditor.layout({
268
+ width: width || this._consoleInputElement?.offsetWidth!,
269
+ height: h,
270
+ });
271
+
272
+ this._onInputHeightChange.fire(h);
273
+ }
274
+
275
+ private updateReadOnly(readOnly: boolean): void {
276
+ if (this.inputEditor) {
277
+ this.inputEditor.monacoEditor.updateOptions({ readOnly });
278
+ }
279
+ }
280
+
281
+ private async updateInputDecoration(): Promise<void> {
282
+ if (!this.inputEditor) {
283
+ return;
284
+ }
285
+
286
+ const decorations: IDecorationApplyOptions[] = [];
287
+ if (this._isReadonly && this.inputEditor.monacoEditor.hasTextFocus() && !this.inputEditor.monacoEditor.getValue()) {
288
+ const transparentForeground = transparent(editorForeground, 0.4)(await this.themeService.getCurrentTheme());
289
+ decorations.push({
290
+ range: {
291
+ startLineNumber: 0,
292
+ endLineNumber: 0,
293
+ startColumn: 0,
294
+ endColumn: 1,
295
+ },
296
+ renderOptions: {
297
+ after: {
298
+ contentText: localize('debug.console.input.placeholder'),
299
+ color: transparentForeground ? transparentForeground.toString() : undefined,
300
+ },
301
+ },
302
+ });
303
+ }
304
+
305
+ this.inputEditor.monacoEditor.setDecorationsByType('debug-console-input', DECORATION_KEY, decorations as any[]);
306
+ }
307
+
308
+ private setMode(): void {
309
+ if (!this.inputEditor) {
310
+ return;
311
+ }
312
+
313
+ const session = this.manager.currentSession;
314
+ if (!session) {
315
+ return;
316
+ }
317
+
318
+ const model = session.currentEditor();
319
+
320
+ if (model) {
321
+ this.inputEditor.monacoEditor.getModel()!.setMode(model.getModel()?.getLanguageId()!);
322
+ }
323
+ }
324
+
325
+ private registerDecorationType(): void {
326
+ const codeEditorService = this.overrideServicesRegistry.getRegisteredService(
327
+ ServiceNames.CODE_EDITOR_SERVICE,
328
+ ) as MonacoCodeService;
329
+ codeEditorService.registerDecorationType('console-input-decoration', DECORATION_KEY, {});
330
+ }
331
+
332
+ private registerCompletion(): void {
333
+ if (this._updateDisposable) {
334
+ this._updateDisposable.dispose();
335
+ this._updateDisposable = null;
336
+ }
337
+
338
+ const session = this.manager.currentSession;
339
+ if (!session) {
340
+ return;
341
+ }
342
+
343
+ const model = session.currentEditor();
344
+ if (!model) {
345
+ return;
346
+ }
347
+
348
+ this._updateDisposable = monaco.languages.registerCompletionItemProvider(model.getModel()?.getLanguageId()!, {
349
+ triggerCharacters: ['.'],
350
+ provideCompletionItems: async (model, position, ctx) => {
351
+ // 仅在支持自动补全查询的调试器中启用补全逻辑
352
+ if (!this.manager.currentSession?.capabilities.supportsCompletionsRequest) {
353
+ return;
354
+ }
355
+ if (model.uri.toString() !== this.consoleInputUri.toString()) {
356
+ return null;
357
+ }
358
+
359
+ const session = this.manager.currentSession;
360
+ const { triggerCharacter } = ctx;
361
+
362
+ /**
363
+ * 代码字符串处理
364
+ */
365
+ let value = model.getWordAtPosition(position);
366
+ if (value && session) {
367
+ const { word, startColumn, endColumn } = value;
368
+ const res = await session.sendRequest('completions', {
369
+ text: word,
370
+ column: endColumn,
371
+ frameId: session.currentFrame && session.currentFrame.raw.id,
372
+ });
373
+ return {
374
+ suggestions: res.body.targets.map((item) => ({
375
+ label: item.label,
376
+ insertText: item.text || item.label,
377
+ sortText: item.sortText,
378
+ kind: monaco.languages.CompletionItemKind[firstUpperCase(item.type || 'property')],
379
+ range: {
380
+ startLineNumber: position.lineNumber,
381
+ endLineNumber: position.lineNumber,
382
+ startColumn,
383
+ endColumn,
384
+ },
385
+ })),
386
+ } as monaco.languages.CompletionList;
387
+ }
388
+
389
+ /**
390
+ * 特殊字符处理
391
+ */
392
+ value = model.getWordAtPosition({
393
+ lineNumber: position.lineNumber,
394
+ column: position.column - 1,
395
+ });
396
+ if (value && session && triggerCharacter) {
397
+ const { word, endColumn } = value;
398
+
399
+ const res = await session.sendRequest('completions', {
400
+ text: word + triggerCharacter,
401
+ column: endColumn + 1,
402
+ frameId: session.currentFrame && session.currentFrame.raw.id,
403
+ });
404
+ return {
405
+ suggestions: res.body.targets.map((item) => ({
406
+ label: item.label,
407
+ insertText: item.text || item.label,
408
+ sortText: item.sortText,
409
+ kind: monaco.languages.CompletionItemKind[firstUpperCase(item.type || 'property')],
410
+ range: {
411
+ startLineNumber: position.lineNumber,
412
+ endLineNumber: position.lineNumber,
413
+ startColumn: endColumn + 1,
414
+ endColumn: endColumn + 1,
415
+ },
416
+ })),
417
+ } as monaco.languages.CompletionList;
418
+ }
419
+
420
+ return null;
421
+ },
422
+ });
423
+ }
424
+
425
+ disable() {
426
+ if (this._updateDisposable) {
427
+ this._updateDisposable.dispose();
428
+ this._updateDisposable = null;
429
+ }
430
+ this.inputEditor?.monacoEditor.setValue('');
431
+ this.inputEditor?.monacoEditor.setModel(null);
432
+ }
433
+ }