@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,756 @@
1
+ import { Injector, Autowired, INJECTOR_TOKEN } from '@opensumi/di';
2
+ import {
3
+ Domain,
4
+ ClientAppContribution,
5
+ localize,
6
+ CommandContribution,
7
+ CommandRegistry,
8
+ KeybindingContribution,
9
+ JsonSchemaContribution,
10
+ IJSONSchemaRegistry,
11
+ PreferenceSchema,
12
+ PreferenceContribution,
13
+ CommandService,
14
+ IReporterService,
15
+ formatLocalize,
16
+ CoreConfiguration,
17
+ ComponentContribution,
18
+ ComponentRegistry,
19
+ KeybindingRegistry,
20
+ getIcon,
21
+ PreferenceService,
22
+ IPreferenceSettingsService,
23
+ COMMON_COMMANDS,
24
+ } from '@opensumi/ide-core-browser';
25
+ import { browserViews } from '@opensumi/ide-core-browser/lib/extensions/schema/browserViews';
26
+ import { ToolbarRegistry, TabBarToolbarContribution } from '@opensumi/ide-core-browser/lib/layout';
27
+ import { MenuContribution, MenuId, IMenuRegistry } from '@opensumi/ide-core-browser/lib/menu/next';
28
+ import { IExtensionsSchemaService, runWhenIdle, URI } from '@opensumi/ide-core-common';
29
+ import {
30
+ BrowserEditorContribution,
31
+ IEditorFeatureRegistry,
32
+ EditorComponentRegistry,
33
+ IEditor,
34
+ } from '@opensumi/ide-editor/lib/browser';
35
+ import { IFileServiceClient, IShadowFileProvider } from '@opensumi/ide-file-service';
36
+ import { FileServiceClient } from '@opensumi/ide-file-service/lib/browser/file-service-client';
37
+ import { IMainLayoutService, IViewsRegistry } from '@opensumi/ide-main-layout';
38
+ import { WelcomeView } from '@opensumi/ide-main-layout/lib/browser/welcome.view';
39
+ import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
40
+
41
+ import {
42
+ IDebugSessionManager,
43
+ launchSchemaUri,
44
+ DEBUG_CONTAINER_ID,
45
+ DEBUG_WATCH_ID,
46
+ DEBUG_VARIABLES_ID,
47
+ DEBUG_STACK_ID,
48
+ DEBUG_BREAKPOINTS_ID,
49
+ DEBUG_FLOATING_CLICK_WIDGET,
50
+ DEBUG_REPORT_NAME,
51
+ DEBUG_WELCOME_ID,
52
+ DEBUG_SCHEME,
53
+ TSourceBrekpointProperties,
54
+ DEBUG_COMMANDS,
55
+ IDebugModelManager,
56
+ } from '../common';
57
+
58
+ import {
59
+ CONTEXT_DEBUGGERS_AVAILABLE,
60
+ CONTEXT_IN_DEBUG_MODE,
61
+ CONTEXT_BREAKPOINT_INPUT_FOCUSED,
62
+ CONTEXT_EXCEPTION_WIDGET_VISIBLE,
63
+ } from './../common/constants';
64
+ import { BreakpointManager, SelectedBreakpoint } from './breakpoint';
65
+ import { FloatingClickWidget } from './components/floating-click-widget';
66
+ import { DebugContextKey } from './contextkeys/debug-contextkey.service';
67
+ import { DebugConfigurationManager } from './debug-configuration-manager';
68
+ import { DebugPreferences, debugPreferencesSchema } from './debug-preferences';
69
+ import { DebugProgressService } from './debug-progress.service';
70
+ import { launchSchema } from './debug-schema-updater';
71
+ import { DebugSession } from './debug-session';
72
+ import { DebugSessionManager } from './debug-session-manager';
73
+ import { DebugEditorContribution } from './editor/debug-editor-contribution';
74
+ import { DebugRunToCursorService } from './editor/debug-run-to-cursor.service';
75
+ import { DebugBreakpointsService } from './view/breakpoints/debug-breakpoints.service';
76
+ import { DebugBreakpointView } from './view/breakpoints/debug-breakpoints.view';
77
+ import { DebugConfigurationService } from './view/configuration/debug-configuration.service';
78
+ import { DebugConfigurationView } from './view/configuration/debug-configuration.view';
79
+ import { DebugToolbarService } from './view/configuration/debug-toolbar.service';
80
+ import { DebugConsoleService } from './view/console/debug-console.service';
81
+ import { DebugViewModel } from './view/debug-view-model';
82
+ import { DebugCallStackView } from './view/frames/debug-call-stack.view';
83
+ import { DebugVariableView } from './view/variables/debug-variables.view';
84
+ import { DebugWatchView } from './view/watch/debug-watch.view';
85
+
86
+ const LAUNCH_JSON_REGEX = /launch\.json$/;
87
+
88
+ export namespace DebugBreakpointWidgetCommands {
89
+ export const ACCEPT = {
90
+ id: 'debug.breakpointWidget.accept',
91
+ };
92
+ export const CLOSE = {
93
+ id: 'debug.breakpointWidget.close',
94
+ };
95
+ }
96
+
97
+ @Domain(
98
+ ClientAppContribution,
99
+ ComponentContribution,
100
+ TabBarToolbarContribution,
101
+ CommandContribution,
102
+ KeybindingContribution,
103
+ JsonSchemaContribution,
104
+ PreferenceContribution,
105
+ MenuContribution,
106
+ BrowserEditorContribution,
107
+ )
108
+ export class DebugContribution
109
+ implements
110
+ ComponentContribution,
111
+ TabBarToolbarContribution,
112
+ CommandContribution,
113
+ KeybindingContribution,
114
+ JsonSchemaContribution,
115
+ PreferenceContribution,
116
+ MenuContribution,
117
+ BrowserEditorContribution
118
+ {
119
+ schema: PreferenceSchema = debugPreferencesSchema;
120
+
121
+ @Autowired(IMainLayoutService)
122
+ protected readonly mainlayoutService: IMainLayoutService;
123
+
124
+ @Autowired(BreakpointManager)
125
+ protected readonly breakpointManager: BreakpointManager;
126
+
127
+ @Autowired(DebugConfigurationManager)
128
+ protected readonly configurations: DebugConfigurationManager;
129
+
130
+ @Autowired(IDebugModelManager)
131
+ protected debugEditorController: IDebugModelManager;
132
+
133
+ @Autowired(DebugBreakpointsService)
134
+ protected debugBreakpointsService: DebugBreakpointsService;
135
+
136
+ @Autowired(DebugViewModel)
137
+ protected readonly debugModel: DebugViewModel;
138
+
139
+ @Autowired(DebugPreferences)
140
+ protected readonly debugPreferences: DebugPreferences;
141
+
142
+ @Autowired(DebugConsoleService)
143
+ protected readonly debugConsole: DebugConsoleService;
144
+
145
+ @Autowired(DebugConfigurationService)
146
+ protected readonly debugConfigurationService: DebugConfigurationService;
147
+
148
+ @Autowired(IDebugSessionManager)
149
+ protected readonly sessionManager: DebugSessionManager;
150
+
151
+ @Autowired(CommandService)
152
+ protected readonly commandService: CommandService;
153
+
154
+ @Autowired(DebugToolbarService)
155
+ protected readonly debugToolbarService: DebugToolbarService;
156
+
157
+ @Autowired(INJECTOR_TOKEN)
158
+ private readonly injector: Injector;
159
+
160
+ @Autowired(PreferenceService)
161
+ protected readonly preferences: PreferenceService;
162
+
163
+ @Autowired(IReporterService)
164
+ private readonly reporterService: IReporterService;
165
+
166
+ @Autowired(IViewsRegistry)
167
+ private viewsRegistry: IViewsRegistry;
168
+
169
+ @Autowired(IShadowFileProvider)
170
+ private shadowFileServiceProvider: IShadowFileProvider;
171
+
172
+ @Autowired(IFileServiceClient)
173
+ protected readonly fileSystem: FileServiceClient;
174
+
175
+ @Autowired(IPreferenceSettingsService)
176
+ protected readonly preferenceSettings: IPreferenceSettingsService;
177
+
178
+ @Autowired(DebugProgressService)
179
+ protected readonly debugProgressService: DebugProgressService;
180
+
181
+ @Autowired(DebugRunToCursorService)
182
+ protected readonly debugRunToCursorService: DebugRunToCursorService;
183
+
184
+ @Autowired(DebugContextKey)
185
+ protected readonly debugContextKey: DebugContextKey;
186
+
187
+ @Autowired(IExtensionsSchemaService)
188
+ protected readonly extensionsPointService: IExtensionsSchemaService;
189
+
190
+ private firstSessionStart = true;
191
+ private openedViewSessions = new Set();
192
+
193
+ get selectedBreakpoint(): SelectedBreakpoint | undefined {
194
+ const { selectedBreakpoint } = this.breakpointManager;
195
+ return selectedBreakpoint;
196
+ }
197
+
198
+ registerEditorComponent(registry: EditorComponentRegistry) {
199
+ registry.registerEditorSideWidget({
200
+ id: DEBUG_FLOATING_CLICK_WIDGET,
201
+ component: FloatingClickWidget as any,
202
+ displaysOnResource: (r) => {
203
+ const { configUri } = this.preferences.resolve('launch');
204
+ if (!configUri) {
205
+ return false;
206
+ }
207
+ return configUri.isEqual(r.uri) && LAUNCH_JSON_REGEX.test(r.uri.toString());
208
+ },
209
+ });
210
+ }
211
+
212
+ registerComponent(registry: ComponentRegistry) {
213
+ registry.register(
214
+ '@opensumi/ide-debug',
215
+ [
216
+ {
217
+ component: DebugWatchView,
218
+ id: DEBUG_WATCH_ID,
219
+ name: localize('debug.watch.title'),
220
+ when: `${CONTEXT_DEBUGGERS_AVAILABLE.equalsTo(true)} || ${CONTEXT_IN_DEBUG_MODE.equalsTo(true)}`,
221
+ collapsed: false,
222
+ },
223
+ {
224
+ component: DebugCallStackView,
225
+ id: DEBUG_STACK_ID,
226
+ name: localize('debug.callStack.title'),
227
+ when: `${CONTEXT_DEBUGGERS_AVAILABLE.equalsTo(true)} || ${CONTEXT_IN_DEBUG_MODE.equalsTo(true)}`,
228
+ collapsed: false,
229
+ },
230
+ {
231
+ component: DebugVariableView,
232
+ id: DEBUG_VARIABLES_ID,
233
+ name: localize('debug.variables.title'),
234
+ when: `${CONTEXT_DEBUGGERS_AVAILABLE.equalsTo(true)} || ${CONTEXT_IN_DEBUG_MODE.equalsTo(true)}`,
235
+ collapsed: false,
236
+ },
237
+ {
238
+ component: DebugBreakpointView,
239
+ id: DEBUG_BREAKPOINTS_ID,
240
+ name: localize('debug.breakpoints.title'),
241
+ when: `${CONTEXT_DEBUGGERS_AVAILABLE.equalsTo(true)} || ${CONTEXT_IN_DEBUG_MODE.equalsTo(true)}`,
242
+ collapsed: false,
243
+ },
244
+ {
245
+ component: WelcomeView,
246
+ id: DEBUG_WELCOME_ID,
247
+ name: 'Debug Welcome',
248
+ when: `${CONTEXT_DEBUGGERS_AVAILABLE.equalsTo(false)} && ${CONTEXT_IN_DEBUG_MODE.equalsTo(false)}`,
249
+ initialProps: { viewId: DEBUG_WELCOME_ID },
250
+ },
251
+ ],
252
+ {
253
+ iconClass: getIcon('debug'),
254
+ priority: 7,
255
+ title: localize('debug.container.title'),
256
+ containerId: DEBUG_CONTAINER_ID,
257
+ titleComponent: DebugConfigurationView,
258
+ activateKeyBinding: 'ctrlcmd+shift+d',
259
+ },
260
+ );
261
+ }
262
+
263
+ async initialize() {
264
+ this.fileSystem.registerProvider(DEBUG_SCHEME, this.shadowFileServiceProvider);
265
+ this.debugEditorController.init();
266
+ this.debugProgressService.run(this.sessionManager);
267
+ }
268
+
269
+ onStart() {
270
+ this.viewsRegistry.registerViewWelcomeContent(DEBUG_WELCOME_ID, {
271
+ content: formatLocalize('welcome-view.noLaunchJson', DEBUG_COMMANDS.START.id),
272
+ when: 'default',
273
+ });
274
+ this.sessionManager.onDidCreateDebugSession((session: DebugSession) => {
275
+ this.debugModel.init(session);
276
+ });
277
+ this.sessionManager.onDidStartDebugSession((session: DebugSession) => {
278
+ const { internalConsoleOptions } = session.configuration;
279
+ const openDebug = session.configuration.openDebug || this.debugPreferences['debug.openDebug'];
280
+ if (openDebug === 'openOnSessionStart' || openDebug === 'openOnFirstSessionStart') {
281
+ if (this.firstSessionStart) {
282
+ this.openDebugView();
283
+ }
284
+ } else if (openDebug !== 'neverOpen') {
285
+ const parentSession = session.parentSession;
286
+ const sessionId = parentSession?.id || session.id;
287
+ if (!this.openedViewSessions.has(sessionId)) {
288
+ this.openedViewSessions.add(sessionId);
289
+ this.openDebugView();
290
+ }
291
+ }
292
+
293
+ if (
294
+ internalConsoleOptions === 'openOnSessionStart' ||
295
+ (internalConsoleOptions === 'openOnFirstSessionStart' && this.firstSessionStart)
296
+ ) {
297
+ this.openDebugConsoleView();
298
+ }
299
+ this.firstSessionStart = false;
300
+ this.commandService.tryExecuteCommand('statusbar.changeBackgroundColor', 'var(--statusBar-debuggingBackground)');
301
+ this.commandService.tryExecuteCommand('statusbar.changeColor', 'var(--statusBar-debuggingForeground)');
302
+ });
303
+ this.sessionManager.onDidStopDebugSession((session) => {
304
+ const { openDebug } = session.configuration;
305
+ if (openDebug === 'openOnDebugBreak') {
306
+ this.openDebugView();
307
+ }
308
+ });
309
+ this.sessionManager.onDidDestroyDebugSession((session) => {
310
+ if (this.sessionManager.sessions.length === 0) {
311
+ this.commandService.tryExecuteCommand('statusbar.changeBackgroundColor', 'var(--statusBar-background)');
312
+ this.commandService.tryExecuteCommand('statusbar.changeColor');
313
+ }
314
+ });
315
+ this.configurations.load();
316
+ this.breakpointManager.load();
317
+ this.configurations.onDidChange(() => this.configurations.save());
318
+ this.breakpointManager.onDidChangeBreakpoints(() => this.breakpointManager.save());
319
+ this.breakpointManager.onDidChangeExceptionsBreakpoints(() => this.breakpointManager.save());
320
+ this.breakpointManager.onDidChangeMarkers(() => this.breakpointManager.save());
321
+
322
+ this.extensionsPointService.appendExtensionPoint(['browserViews', 'properties'], {
323
+ extensionPoint: DEBUG_CONTAINER_ID,
324
+ frameworkKind: ['opensumi'],
325
+ jsonSchema: {
326
+ ...browserViews.properties,
327
+ description: formatLocalize('sumiContributes.browserViews.location.custom', localize('menu-bar.title.debug')),
328
+ },
329
+ });
330
+ }
331
+
332
+ // 左侧调试面板
333
+ openDebugView() {
334
+ const handler = this.mainlayoutService.getTabbarHandler(DEBUG_CONTAINER_ID);
335
+ if (handler && !handler.isVisible) {
336
+ handler.activate();
337
+ }
338
+ }
339
+
340
+ // 底部调试控制台面板
341
+ openDebugConsoleView() {
342
+ if (!this.debugConsole.isVisible) {
343
+ this.debugConsole.activate();
344
+ }
345
+ }
346
+
347
+ onDidRender() {
348
+ const handler = this.mainlayoutService.getTabbarHandler(DEBUG_CONTAINER_ID);
349
+ if (handler) {
350
+ handler!.setTitleComponent(DebugConfigurationView);
351
+ }
352
+ }
353
+
354
+ registerCommands(commands: CommandRegistry) {
355
+ commands.registerCommand(COMMON_COMMANDS.OPEN_LAUNCH_CONFIGURATION, {
356
+ execute: () => {
357
+ this.debugConfigurationService.openConfiguration();
358
+ },
359
+ });
360
+ commands.registerCommand(DEBUG_COMMANDS.REMOVE_ALL_BREAKPOINTS, {
361
+ execute: () => {
362
+ this.debugBreakpointsService.removeAllBreakpoints();
363
+ },
364
+ });
365
+ commands.registerCommand(DEBUG_COMMANDS.START, {
366
+ execute: () => {
367
+ this.debugConfigurationService.start();
368
+ },
369
+ });
370
+ commands.registerCommand(DEBUG_COMMANDS.STOP, {
371
+ execute: () => {
372
+ this.debugToolbarService.doStop();
373
+ },
374
+ });
375
+ commands.registerCommand(DEBUG_COMMANDS.NEXT, {
376
+ execute: () => {
377
+ this.debugToolbarService.doStepIn();
378
+ },
379
+ });
380
+ commands.registerCommand(DEBUG_COMMANDS.PREV, {
381
+ execute: () => {
382
+ this.debugToolbarService.doStepOut();
383
+ },
384
+ });
385
+ commands.registerCommand(DEBUG_COMMANDS.CONTINUE, {
386
+ execute: () => {
387
+ this.debugToolbarService.doContinue();
388
+ },
389
+ });
390
+ commands.registerCommand(DEBUG_COMMANDS.PAUSE, {
391
+ execute: () => {
392
+ this.debugToolbarService.doPause();
393
+ },
394
+ });
395
+ commands.registerCommand(DEBUG_COMMANDS.OVER, {
396
+ execute: () => {
397
+ this.debugToolbarService.doStepOver();
398
+ },
399
+ });
400
+ commands.registerCommand(DEBUG_COMMANDS.RESTART, {
401
+ execute: () => {
402
+ this.debugToolbarService.doRestart();
403
+ },
404
+ });
405
+ commands.registerCommand(DEBUG_COMMANDS.TOGGLE_BREAKPOINTS, {
406
+ execute: () => {
407
+ this.debugBreakpointsService.toggleBreakpoints();
408
+ },
409
+ });
410
+ commands.registerCommand(DEBUG_COMMANDS.EDIT_BREAKPOINT, {
411
+ execute: async (position: monaco.Position) => {
412
+ this.reporterService.point(DEBUG_REPORT_NAME?.DEBUG_BREAKPOINT, 'edit');
413
+ const { selectedBreakpoint } = this;
414
+ if (selectedBreakpoint) {
415
+ const { openBreakpointView } = selectedBreakpoint.model;
416
+ let defaultContext: TSourceBrekpointProperties = 'condition';
417
+ if (selectedBreakpoint.breakpoint) {
418
+ const raw = selectedBreakpoint.breakpoint.raw;
419
+ if (raw.condition) {
420
+ defaultContext = 'condition';
421
+ } else if (raw.hitCondition) {
422
+ defaultContext = 'hitCondition';
423
+ } else if (raw.logMessage) {
424
+ defaultContext = 'logMessage';
425
+ }
426
+ }
427
+ openBreakpointView(
428
+ position,
429
+ selectedBreakpoint.breakpoint && selectedBreakpoint.breakpoint.raw,
430
+ defaultContext,
431
+ );
432
+ }
433
+ },
434
+ isVisible: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
435
+ isEnabled: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
436
+ });
437
+ commands.registerCommand(DEBUG_COMMANDS.DISABLE_BREAKPOINT, {
438
+ execute: async (position: monaco.Position) => {
439
+ const { selectedBreakpoint } = this;
440
+ if (selectedBreakpoint) {
441
+ const { uri } = selectedBreakpoint.model;
442
+ const breakpoint = this.breakpointManager.getBreakpoint(uri, position.lineNumber);
443
+ if (breakpoint) {
444
+ breakpoint.enabled = false;
445
+ this.breakpointManager.updateBreakpoint(breakpoint);
446
+ }
447
+ }
448
+ },
449
+ isVisible: () =>
450
+ !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint && this.selectedBreakpoint.breakpoint.enabled,
451
+ isEnabled: () =>
452
+ !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint && this.selectedBreakpoint.breakpoint.enabled,
453
+ });
454
+ commands.registerCommand(DEBUG_COMMANDS.ENABLE_BREAKPOINT, {
455
+ execute: async (position: monaco.Position) => {
456
+ const { selectedBreakpoint } = this;
457
+ if (selectedBreakpoint) {
458
+ const { uri } = selectedBreakpoint.model;
459
+ const breakpoint = this.breakpointManager.getBreakpoint(uri, position.lineNumber);
460
+ if (breakpoint) {
461
+ breakpoint.enabled = true;
462
+ this.breakpointManager.updateBreakpoint(breakpoint);
463
+ }
464
+ }
465
+ },
466
+ isVisible: () =>
467
+ !!this.selectedBreakpoint &&
468
+ !!this.selectedBreakpoint.breakpoint &&
469
+ !this.selectedBreakpoint.breakpoint.enabled,
470
+ isEnabled: () =>
471
+ !!this.selectedBreakpoint &&
472
+ !!this.selectedBreakpoint.breakpoint &&
473
+ !this.selectedBreakpoint.breakpoint.enabled,
474
+ });
475
+ commands.registerCommand(DEBUG_COMMANDS.DELETE_BREAKPOINT, {
476
+ execute: async (position: monaco.Position) => {
477
+ const { selectedBreakpoint } = this;
478
+ if (selectedBreakpoint) {
479
+ const { uri } = selectedBreakpoint.model;
480
+ const breakpoint = this.breakpointManager.getBreakpoint(uri, position.lineNumber);
481
+ if (breakpoint) {
482
+ this.breakpointManager.delBreakpoint(breakpoint);
483
+ }
484
+ }
485
+ },
486
+ isVisible: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
487
+ isEnabled: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
488
+ });
489
+
490
+ commands.registerCommand(DEBUG_COMMANDS.ADD_CONDITIONAL_BREAKPOINT, {
491
+ execute: async (position: monaco.Position) => {
492
+ const { selectedBreakpoint } = this;
493
+ if (selectedBreakpoint) {
494
+ const { uri, openBreakpointView, toggleBreakpoint } = selectedBreakpoint.model;
495
+ toggleBreakpoint(position);
496
+ const breakpoint = this.breakpointManager.getBreakpoint(uri, position!.lineNumber);
497
+ // 更新当前右键选中的断点
498
+ if (breakpoint) {
499
+ this.breakpointManager.selectedBreakpoint = {
500
+ breakpoint,
501
+ model: selectedBreakpoint.model,
502
+ };
503
+ }
504
+ openBreakpointView(position, selectedBreakpoint.breakpoint && selectedBreakpoint.breakpoint.raw, 'condition');
505
+ }
506
+ },
507
+ isVisible: () => !!this.selectedBreakpoint && !this.selectedBreakpoint.breakpoint,
508
+ isEnabled: () => !!this.selectedBreakpoint && !this.selectedBreakpoint.breakpoint,
509
+ });
510
+ commands.registerCommand(DEBUG_COMMANDS.ADD_LOGPOINT, {
511
+ execute: async (position: monaco.Position) => {
512
+ const { selectedBreakpoint } = this;
513
+ if (selectedBreakpoint) {
514
+ const { openBreakpointView, toggleBreakpoint, uri } = selectedBreakpoint.model;
515
+ toggleBreakpoint(position);
516
+ const breakpoint = this.breakpointManager.getBreakpoint(uri, position!.lineNumber);
517
+ // 更新当前右键选中的断点
518
+ if (breakpoint) {
519
+ this.breakpointManager.selectedBreakpoint = {
520
+ breakpoint,
521
+ model: selectedBreakpoint.model,
522
+ };
523
+ }
524
+ openBreakpointView(
525
+ position,
526
+ selectedBreakpoint.breakpoint && selectedBreakpoint.breakpoint.raw,
527
+ 'logMessage',
528
+ );
529
+ }
530
+ },
531
+ isVisible: () => !!this.selectedBreakpoint && !this.selectedBreakpoint.breakpoint,
532
+ isEnabled: () => !!this.selectedBreakpoint && !this.selectedBreakpoint.breakpoint,
533
+ });
534
+ commands.registerCommand(DEBUG_COMMANDS.ADD_BREAKPOINT, {
535
+ execute: async (position: monaco.Position) => {
536
+ const { selectedBreakpoint } = this;
537
+ if (selectedBreakpoint) {
538
+ const { toggleBreakpoint } = selectedBreakpoint.model;
539
+ toggleBreakpoint(position);
540
+ }
541
+ },
542
+ isVisible: () => !!this.selectedBreakpoint && !this.selectedBreakpoint.breakpoint,
543
+ isEnabled: () => !!this.selectedBreakpoint && !this.selectedBreakpoint.breakpoint,
544
+ });
545
+
546
+ commands.registerCommand(DebugBreakpointWidgetCommands.ACCEPT, {
547
+ execute: () => {
548
+ const { selectedBreakpoint } = this;
549
+ if (selectedBreakpoint) {
550
+ const { acceptBreakpoint } = selectedBreakpoint.model;
551
+ acceptBreakpoint();
552
+ }
553
+ },
554
+ isVisible: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
555
+ isEnabled: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
556
+ });
557
+ commands.registerCommand(DebugBreakpointWidgetCommands.CLOSE, {
558
+ execute: () => {
559
+ const { selectedBreakpoint } = this;
560
+ if (selectedBreakpoint) {
561
+ const { closeBreakpointView } = selectedBreakpoint.model;
562
+ closeBreakpointView();
563
+ }
564
+ },
565
+ isVisible: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
566
+ isEnabled: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
567
+ });
568
+ commands.registerCommand(DEBUG_COMMANDS.RUN_TO_CURSOR, {
569
+ execute: (uri: URI) => {
570
+ this.debugRunToCursorService.run(uri);
571
+ },
572
+ isEnabled: () => this.debugContextKey.contextDebugState.get() === 'Stopped',
573
+ });
574
+ commands.registerCommand(DEBUG_COMMANDS.FORCE_RUN_TO_CURSOR, {
575
+ execute: (uri: URI) => {
576
+ this.debugRunToCursorService.run(uri, true);
577
+ },
578
+ isEnabled: () => this.debugContextKey.contextDebugState.get() === 'Stopped',
579
+ });
580
+ }
581
+
582
+ registerToolbarItems(registry: ToolbarRegistry) {
583
+ /**
584
+ * end
585
+ */
586
+
587
+ /**
588
+ * 断点面板菜单
589
+ */
590
+ registry.registerItem({
591
+ id: DEBUG_COMMANDS.REMOVE_ALL_BREAKPOINTS.id,
592
+ command: DEBUG_COMMANDS.REMOVE_ALL_BREAKPOINTS.id,
593
+ iconClass: getIcon('close-all'),
594
+ viewId: DEBUG_BREAKPOINTS_ID,
595
+ tooltip: localize('debug.breakpoint.removeAll'),
596
+ });
597
+
598
+ registry.registerItem({
599
+ id: DEBUG_COMMANDS.TOGGLE_BREAKPOINTS.id,
600
+ command: DEBUG_COMMANDS.TOGGLE_BREAKPOINTS.id,
601
+ iconClass: getIcon('deactivate-breakpoints'),
602
+ viewId: DEBUG_BREAKPOINTS_ID,
603
+ tooltip: localize('debug.breakpoint.toggle'),
604
+ });
605
+ /**
606
+ * end
607
+ */
608
+ }
609
+
610
+ registerSchema(registry: IJSONSchemaRegistry) {
611
+ registry.registerSchema(`${launchSchemaUri}/default`, launchSchema, ['launch.json']);
612
+ }
613
+
614
+ registerKeybindings(keybindings: KeybindingRegistry) {
615
+ keybindings.registerKeybinding({
616
+ command: DEBUG_COMMANDS.START.id,
617
+ keybinding: 'f5',
618
+ when: `!${CONTEXT_IN_DEBUG_MODE.raw}`,
619
+ });
620
+ keybindings.registerKeybinding({
621
+ command: DEBUG_COMMANDS.CONTINUE.id,
622
+ keybinding: 'f5',
623
+ when: CONTEXT_IN_DEBUG_MODE.raw,
624
+ });
625
+ keybindings.registerKeybinding({
626
+ command: DEBUG_COMMANDS.STOP.id,
627
+ keybinding: 'shift+f5',
628
+ when: CONTEXT_IN_DEBUG_MODE.raw,
629
+ });
630
+ keybindings.registerKeybinding({
631
+ command: DEBUG_COMMANDS.NEXT.id,
632
+ keybinding: 'f11',
633
+ when: CONTEXT_IN_DEBUG_MODE.raw,
634
+ });
635
+ keybindings.registerKeybinding({
636
+ command: DEBUG_COMMANDS.PREV.id,
637
+ keybinding: 'shift+f11',
638
+ when: CONTEXT_IN_DEBUG_MODE.raw,
639
+ });
640
+ keybindings.registerKeybinding({
641
+ command: DEBUG_COMMANDS.OVER.id,
642
+ keybinding: 'f10',
643
+ when: CONTEXT_IN_DEBUG_MODE.raw,
644
+ });
645
+ keybindings.registerKeybinding({
646
+ command: DEBUG_COMMANDS.RESTART.id,
647
+ keybinding: 'shift+ctrlcmd+f5',
648
+ when: CONTEXT_IN_DEBUG_MODE.raw,
649
+ });
650
+
651
+ keybindings.registerKeybinding({
652
+ command: DebugBreakpointWidgetCommands.ACCEPT.id,
653
+ keybinding: 'enter',
654
+ when: CONTEXT_BREAKPOINT_INPUT_FOCUSED.raw,
655
+ });
656
+ keybindings.registerKeybinding({
657
+ command: DebugBreakpointWidgetCommands.CLOSE.id,
658
+ keybinding: 'esc',
659
+ when: CONTEXT_BREAKPOINT_INPUT_FOCUSED.raw,
660
+ });
661
+ keybindings.registerKeybinding({
662
+ command: DEBUG_COMMANDS.EXCEPTION_WIDGET_CLOSE.id,
663
+ keybinding: 'esc',
664
+ when: CONTEXT_EXCEPTION_WIDGET_VISIBLE.raw,
665
+ });
666
+ }
667
+
668
+ registerMenus(menuRegistry: IMenuRegistry) {
669
+ menuRegistry.registerMenuItem(MenuId.DebugBreakpointsContext, {
670
+ command: DEBUG_COMMANDS.DELETE_BREAKPOINT.id,
671
+ group: '1_has_breakpoint',
672
+ order: 1,
673
+ });
674
+ menuRegistry.registerMenuItem(MenuId.DebugBreakpointsContext, {
675
+ command: DEBUG_COMMANDS.EDIT_BREAKPOINT.id,
676
+ group: '1_has_breakpoint',
677
+ order: 2,
678
+ });
679
+ menuRegistry.registerMenuItem(MenuId.DebugBreakpointsContext, {
680
+ command: DEBUG_COMMANDS.DISABLE_BREAKPOINT.id,
681
+ group: '1_has_breakpoint',
682
+ order: 3,
683
+ });
684
+ menuRegistry.registerMenuItem(MenuId.DebugBreakpointsContext, {
685
+ command: DEBUG_COMMANDS.ENABLE_BREAKPOINT.id,
686
+ group: '1_has_breakpoint',
687
+ order: 4,
688
+ });
689
+
690
+ menuRegistry.registerMenuItem(MenuId.DebugBreakpointsContext, {
691
+ command: DEBUG_COMMANDS.ADD_BREAKPOINT.id,
692
+ group: '2_has_not_breakpoint',
693
+ });
694
+ menuRegistry.registerMenuItem(MenuId.DebugBreakpointsContext, {
695
+ command: DEBUG_COMMANDS.ADD_CONDITIONAL_BREAKPOINT.id,
696
+ group: '2_has_not_breakpoint',
697
+ });
698
+ menuRegistry.registerMenuItem(MenuId.DebugBreakpointsContext, {
699
+ command: DEBUG_COMMANDS.ADD_LOGPOINT.id,
700
+ group: '2_has_not_breakpoint',
701
+ });
702
+
703
+ // editor/context
704
+ menuRegistry.registerMenuItem(MenuId.EditorContext, {
705
+ command: {
706
+ id: DEBUG_COMMANDS.RUN_TO_CURSOR.id,
707
+ label: DEBUG_COMMANDS.RUN_TO_CURSOR.label || '',
708
+ },
709
+ when: `${CONTEXT_IN_DEBUG_MODE.raw}`,
710
+ group: 'debug',
711
+ order: 2,
712
+ });
713
+ menuRegistry.registerMenuItem(MenuId.EditorContext, {
714
+ command: {
715
+ id: DEBUG_COMMANDS.FORCE_RUN_TO_CURSOR.id,
716
+ label: DEBUG_COMMANDS.FORCE_RUN_TO_CURSOR.label || '',
717
+ },
718
+ when: `${CONTEXT_IN_DEBUG_MODE.raw}`,
719
+ group: 'debug',
720
+ order: 2,
721
+ });
722
+
723
+ menuRegistry.registerMenuItem(MenuId.EditorTitle, {
724
+ submenu: MenuId.EditorTitleRun,
725
+ label: localize('debug.menu.title.run'),
726
+ iconClass: getIcon('start'),
727
+ group: 'navigation',
728
+ order: -1,
729
+ });
730
+ }
731
+
732
+ protected isPosition(position: monaco.Position): boolean {
733
+ return position instanceof monaco.Position;
734
+ }
735
+
736
+ registerEditorFeature(registry: IEditorFeatureRegistry) {
737
+ let debugEditorContribution: DebugEditorContribution;
738
+
739
+ registry.registerEditorFeatureContribution({
740
+ contribute: (editor: IEditor) => {
741
+ debugEditorContribution = this.injector.get(DebugEditorContribution, [editor]);
742
+ return debugEditorContribution.contribute(editor);
743
+ },
744
+ });
745
+ runWhenIdle(() => {
746
+ debugEditorContribution?.registerDecorationType();
747
+ });
748
+ this.preferenceSettings.setEnumLabels(
749
+ 'debug.console.filter.mode' as keyof CoreConfiguration,
750
+ {
751
+ filter: localize('preference.debug.console.filter.mode.filter'),
752
+ matcher: localize('preference.debug.console.filter.mode.matcher'),
753
+ } as { [key in CoreConfiguration['debug.console.filter.mode']]: string },
754
+ );
755
+ }
756
+ }