@opensumi/ide-debug 2.24.6-next-1686045771.0 → 2.24.6

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 (238) hide show
  1. package/lib/browser/breakpoint/breakpoint-manager.d.ts +3 -4
  2. package/lib/browser/breakpoint/breakpoint-manager.d.ts.map +1 -1
  3. package/lib/browser/breakpoint/breakpoint-manager.js +0 -7
  4. package/lib/browser/breakpoint/breakpoint-manager.js.map +1 -1
  5. package/lib/browser/components/floating-click-widget/index.d.ts.map +1 -1
  6. package/lib/browser/components/floating-click-widget/index.js +2 -3
  7. package/lib/browser/components/floating-click-widget/index.js.map +1 -1
  8. package/lib/browser/components/floating-click-widget/index.module.less +0 -4
  9. package/lib/browser/contextkeys/debug-contextkey.service.d.ts +0 -1
  10. package/lib/browser/contextkeys/debug-contextkey.service.d.ts.map +1 -1
  11. package/lib/browser/contextkeys/debug-contextkey.service.js +1 -2
  12. package/lib/browser/contextkeys/debug-contextkey.service.js.map +1 -1
  13. package/lib/browser/debug-configuration-manager.d.ts +0 -6
  14. package/lib/browser/debug-configuration-manager.d.ts.map +1 -1
  15. package/lib/browser/debug-configuration-manager.js +17 -64
  16. package/lib/browser/debug-configuration-manager.js.map +1 -1
  17. package/lib/browser/debug-contribution.d.ts.map +1 -1
  18. package/lib/browser/debug-contribution.js +7 -53
  19. package/lib/browser/debug-contribution.js.map +1 -1
  20. package/lib/browser/{debug-schema-manager.d.ts → debug-schema-updater.d.ts} +2 -2
  21. package/lib/browser/debug-schema-updater.d.ts.map +1 -0
  22. package/lib/browser/{debug-schema-manager.js → debug-schema-updater.js} +10 -10
  23. package/lib/browser/debug-schema-updater.js.map +1 -0
  24. package/lib/browser/debug-style.less +5 -34
  25. package/lib/browser/debugUtils.d.ts +0 -1
  26. package/lib/browser/debugUtils.d.ts.map +1 -1
  27. package/lib/browser/debugUtils.js +1 -22
  28. package/lib/browser/debugUtils.js.map +1 -1
  29. package/lib/browser/editor/debug-hover-model.d.ts +3 -0
  30. package/lib/browser/editor/debug-hover-model.d.ts.map +1 -1
  31. package/lib/browser/editor/debug-hover-model.js +5 -0
  32. package/lib/browser/editor/debug-hover-model.js.map +1 -1
  33. package/lib/browser/editor/debug-hover-tree.model.service.d.ts.map +1 -1
  34. package/lib/browser/editor/debug-hover-tree.model.service.js +9 -0
  35. package/lib/browser/editor/debug-hover-tree.model.service.js.map +1 -1
  36. package/lib/browser/editor/debug-model.d.ts +0 -2
  37. package/lib/browser/editor/debug-model.d.ts.map +1 -1
  38. package/lib/browser/editor/debug-model.js +2 -31
  39. package/lib/browser/editor/debug-model.js.map +1 -1
  40. package/lib/browser/editor/debug-styles.d.ts +0 -1
  41. package/lib/browser/editor/debug-styles.d.ts.map +1 -1
  42. package/lib/browser/editor/debug-styles.js +1 -7
  43. package/lib/browser/editor/debug-styles.js.map +1 -1
  44. package/lib/browser/index.d.ts.map +1 -1
  45. package/lib/browser/index.js +0 -5
  46. package/lib/browser/index.js.map +1 -1
  47. package/lib/browser/preferences/launch-preferences-contribution.d.ts +2 -14
  48. package/lib/browser/preferences/launch-preferences-contribution.d.ts.map +1 -1
  49. package/lib/browser/preferences/launch-preferences-contribution.js +2 -61
  50. package/lib/browser/preferences/launch-preferences-contribution.js.map +1 -1
  51. package/lib/browser/view/breakpoints/debug-breakpoints.module.less +8 -64
  52. package/lib/browser/view/breakpoints/debug-breakpoints.service.d.ts +1 -10
  53. package/lib/browser/view/breakpoints/debug-breakpoints.service.d.ts.map +1 -1
  54. package/lib/browser/view/breakpoints/debug-breakpoints.service.js +0 -5
  55. package/lib/browser/view/breakpoints/debug-breakpoints.service.js.map +1 -1
  56. package/lib/browser/view/breakpoints/debug-breakpoints.view.d.ts +0 -7
  57. package/lib/browser/view/breakpoints/debug-breakpoints.view.d.ts.map +1 -1
  58. package/lib/browser/view/breakpoints/debug-breakpoints.view.js +26 -80
  59. package/lib/browser/view/breakpoints/debug-breakpoints.view.js.map +1 -1
  60. package/lib/browser/view/configuration/debug-configuration.service.d.ts +0 -1
  61. package/lib/browser/view/configuration/debug-configuration.service.d.ts.map +1 -1
  62. package/lib/browser/view/configuration/debug-configuration.service.js +0 -3
  63. package/lib/browser/view/configuration/debug-configuration.service.js.map +1 -1
  64. package/lib/browser/view/console/debug-console-model.d.ts +3 -0
  65. package/lib/browser/view/console/debug-console-model.d.ts.map +1 -1
  66. package/lib/browser/view/console/debug-console-model.js +5 -0
  67. package/lib/browser/view/console/debug-console-model.js.map +1 -1
  68. package/lib/browser/view/console/debug-console-tree.model.service.d.ts.map +1 -1
  69. package/lib/browser/view/console/debug-console-tree.model.service.js +9 -0
  70. package/lib/browser/view/console/debug-console-tree.model.service.js.map +1 -1
  71. package/lib/browser/view/variables/debug-variables-model.d.ts +3 -0
  72. package/lib/browser/view/variables/debug-variables-model.d.ts.map +1 -1
  73. package/lib/browser/view/variables/debug-variables-model.js +5 -0
  74. package/lib/browser/view/variables/debug-variables-model.js.map +1 -1
  75. package/lib/browser/view/variables/debug-variables-tree.model.service.d.ts.map +1 -1
  76. package/lib/browser/view/variables/debug-variables-tree.model.service.js +9 -0
  77. package/lib/browser/view/variables/debug-variables-tree.model.service.js.map +1 -1
  78. package/lib/browser/view/watch/debug-watch-model.d.ts +3 -0
  79. package/lib/browser/view/watch/debug-watch-model.d.ts.map +1 -1
  80. package/lib/browser/view/watch/debug-watch-model.js +5 -0
  81. package/lib/browser/view/watch/debug-watch-model.js.map +1 -1
  82. package/lib/browser/view/watch/debug-watch-tree.model.service.d.ts.map +1 -1
  83. package/lib/browser/view/watch/debug-watch-tree.model.service.js +9 -0
  84. package/lib/browser/view/watch/debug-watch-tree.model.service.js.map +1 -1
  85. package/lib/common/commands.d.ts +0 -2
  86. package/lib/common/commands.d.ts.map +1 -1
  87. package/lib/common/commands.js +0 -6
  88. package/lib/common/commands.js.map +1 -1
  89. package/lib/common/constants.d.ts +0 -3
  90. package/lib/common/constants.d.ts.map +1 -1
  91. package/lib/common/constants.js +2 -5
  92. package/lib/common/constants.js.map +1 -1
  93. package/lib/common/debug-schema-updater.d.ts +3 -0
  94. package/lib/common/debug-schema-updater.d.ts.map +1 -0
  95. package/lib/common/debug-schema-updater.js +5 -0
  96. package/lib/common/debug-schema-updater.js.map +1 -0
  97. package/lib/common/debug-service.d.ts +0 -10
  98. package/lib/common/debug-service.d.ts.map +1 -1
  99. package/lib/common/debug-service.js +1 -8
  100. package/lib/common/debug-service.js.map +1 -1
  101. package/lib/common/index.d.ts +1 -1
  102. package/lib/common/index.d.ts.map +1 -1
  103. package/lib/common/index.js +1 -1
  104. package/lib/common/index.js.map +1 -1
  105. package/package.json +23 -26
  106. package/src/browser/breakpoint/breakpoint-manager.ts +3 -8
  107. package/src/browser/components/floating-click-widget/index.module.less +0 -4
  108. package/src/browser/components/floating-click-widget/index.tsx +1 -4
  109. package/src/browser/contextkeys/debug-contextkey.service.ts +1 -4
  110. package/src/browser/debug-configuration-manager.ts +18 -82
  111. package/src/browser/debug-contribution.ts +8 -59
  112. package/src/browser/{debug-schema-manager.ts → debug-schema-updater.ts} +4 -5
  113. package/src/browser/debug-style.less +5 -34
  114. package/src/browser/debugUtils.ts +0 -23
  115. package/src/browser/editor/debug-hover-model.ts +6 -0
  116. package/src/browser/editor/debug-hover-tree.model.service.ts +10 -0
  117. package/src/browser/editor/debug-model.ts +3 -35
  118. package/src/browser/editor/debug-styles.ts +0 -7
  119. package/src/browser/index.ts +0 -6
  120. package/src/browser/preferences/launch-preferences-contribution.ts +3 -84
  121. package/src/browser/view/breakpoints/debug-breakpoints.module.less +8 -64
  122. package/src/browser/view/breakpoints/debug-breakpoints.service.ts +0 -8
  123. package/src/browser/view/breakpoints/debug-breakpoints.view.tsx +32 -139
  124. package/src/browser/view/configuration/debug-configuration.service.ts +0 -4
  125. package/src/browser/view/console/debug-console-model.ts +6 -0
  126. package/src/browser/view/console/debug-console-tree.model.service.ts +10 -0
  127. package/src/browser/view/variables/debug-variables-model.ts +6 -0
  128. package/src/browser/view/variables/debug-variables-tree.model.service.ts +10 -0
  129. package/src/browser/view/watch/debug-watch-model.ts +6 -0
  130. package/src/browser/view/watch/debug-watch-tree.model.service.ts +10 -0
  131. package/src/common/commands.ts +0 -6
  132. package/src/common/constants.ts +0 -5
  133. package/src/common/debug-schema-updater.ts +3 -0
  134. package/src/common/debug-service.ts +0 -13
  135. package/src/common/index.ts +1 -1
  136. package/lib/browser/debug-schema-manager.d.ts.map +0 -1
  137. package/lib/browser/debug-schema-manager.js.map +0 -1
  138. package/lib/browser/preferences/components/checkbox-widget.d.ts +0 -4
  139. package/lib/browser/preferences/components/checkbox-widget.d.ts.map +0 -1
  140. package/lib/browser/preferences/components/checkbox-widget.js +0 -27
  141. package/lib/browser/preferences/components/checkbox-widget.js.map +0 -1
  142. package/lib/browser/preferences/components/fields/any-of-field.d.ts +0 -4
  143. package/lib/browser/preferences/components/fields/any-of-field.d.ts.map +0 -1
  144. package/lib/browser/preferences/components/fields/any-of-field.js +0 -28
  145. package/lib/browser/preferences/components/fields/any-of-field.js.map +0 -1
  146. package/lib/browser/preferences/components/fields/array-field.d.ts +0 -5
  147. package/lib/browser/preferences/components/fields/array-field.d.ts.map +0 -1
  148. package/lib/browser/preferences/components/fields/array-field.js +0 -19
  149. package/lib/browser/preferences/components/fields/array-field.js.map +0 -1
  150. package/lib/browser/preferences/components/fields/object-filed.d.ts +0 -5
  151. package/lib/browser/preferences/components/fields/object-filed.d.ts.map +0 -1
  152. package/lib/browser/preferences/components/fields/object-filed.js +0 -26
  153. package/lib/browser/preferences/components/fields/object-filed.js.map +0 -1
  154. package/lib/browser/preferences/components/fields/title-field.d.ts +0 -4
  155. package/lib/browser/preferences/components/fields/title-field.d.ts.map +0 -1
  156. package/lib/browser/preferences/components/fields/title-field.js +0 -12
  157. package/lib/browser/preferences/components/fields/title-field.js.map +0 -1
  158. package/lib/browser/preferences/components/json-widget.module.less +0 -36
  159. package/lib/browser/preferences/components/select-widget.d.ts +0 -4
  160. package/lib/browser/preferences/components/select-widget.d.ts.map +0 -1
  161. package/lib/browser/preferences/components/select-widget.js +0 -28
  162. package/lib/browser/preferences/components/select-widget.js.map +0 -1
  163. package/lib/browser/preferences/components/text-widget.d.ts +0 -4
  164. package/lib/browser/preferences/components/text-widget.d.ts.map +0 -1
  165. package/lib/browser/preferences/components/text-widget.js +0 -41
  166. package/lib/browser/preferences/components/text-widget.js.map +0 -1
  167. package/lib/browser/preferences/launch.module.less +0 -102
  168. package/lib/browser/preferences/launch.service.d.ts +0 -31
  169. package/lib/browser/preferences/launch.service.d.ts.map +0 -1
  170. package/lib/browser/preferences/launch.service.js +0 -109
  171. package/lib/browser/preferences/launch.service.js.map +0 -1
  172. package/lib/browser/preferences/launch.view.d.ts +0 -3
  173. package/lib/browser/preferences/launch.view.d.ts.map +0 -1
  174. package/lib/browser/preferences/launch.view.js +0 -287
  175. package/lib/browser/preferences/launch.view.js.map +0 -1
  176. package/lib/browser/preferences/model/configuration-items.d.ts +0 -12
  177. package/lib/browser/preferences/model/configuration-items.d.ts.map +0 -1
  178. package/lib/browser/preferences/model/configuration-items.js +0 -22
  179. package/lib/browser/preferences/model/configuration-items.js.map +0 -1
  180. package/lib/browser/preferences/templates/additional-template.d.ts +0 -4
  181. package/lib/browser/preferences/templates/additional-template.d.ts.map +0 -1
  182. package/lib/browser/preferences/templates/additional-template.js +0 -30
  183. package/lib/browser/preferences/templates/additional-template.js.map +0 -1
  184. package/lib/browser/preferences/templates/array-field-item-template.d.ts +0 -4
  185. package/lib/browser/preferences/templates/array-field-item-template.d.ts.map +0 -1
  186. package/lib/browser/preferences/templates/array-field-item-template.js +0 -31
  187. package/lib/browser/preferences/templates/array-field-item-template.js.map +0 -1
  188. package/lib/browser/preferences/templates/array-field-template.d.ts +0 -4
  189. package/lib/browser/preferences/templates/array-field-template.d.ts.map +0 -1
  190. package/lib/browser/preferences/templates/array-field-template.js +0 -31
  191. package/lib/browser/preferences/templates/array-field-template.js.map +0 -1
  192. package/lib/browser/preferences/templates/base-input-template.d.ts +0 -4
  193. package/lib/browser/preferences/templates/base-input-template.d.ts.map +0 -1
  194. package/lib/browser/preferences/templates/base-input-template.js +0 -29
  195. package/lib/browser/preferences/templates/base-input-template.js.map +0 -1
  196. package/lib/browser/preferences/templates/button-template.d.ts +0 -12
  197. package/lib/browser/preferences/templates/button-template.d.ts.map +0 -1
  198. package/lib/browser/preferences/templates/button-template.js +0 -71
  199. package/lib/browser/preferences/templates/button-template.js.map +0 -1
  200. package/lib/browser/preferences/templates/description-field-template.d.ts +0 -4
  201. package/lib/browser/preferences/templates/description-field-template.d.ts.map +0 -1
  202. package/lib/browser/preferences/templates/description-field-template.js +0 -16
  203. package/lib/browser/preferences/templates/description-field-template.js.map +0 -1
  204. package/lib/browser/preferences/templates/field-template.d.ts +0 -4
  205. package/lib/browser/preferences/templates/field-template.d.ts.map +0 -1
  206. package/lib/browser/preferences/templates/field-template.js +0 -19
  207. package/lib/browser/preferences/templates/field-template.js.map +0 -1
  208. package/lib/browser/preferences/templates/json-templates.module.less +0 -133
  209. package/lib/browser/preferences/templates/object-field-template.d.ts +0 -4
  210. package/lib/browser/preferences/templates/object-field-template.d.ts.map +0 -1
  211. package/lib/browser/preferences/templates/object-field-template.js +0 -74
  212. package/lib/browser/preferences/templates/object-field-template.js.map +0 -1
  213. package/lib/common/debug-schema.d.ts +0 -5
  214. package/lib/common/debug-schema.d.ts.map +0 -1
  215. package/lib/common/debug-schema.js +0 -7
  216. package/lib/common/debug-schema.js.map +0 -1
  217. package/src/browser/preferences/components/checkbox-widget.tsx +0 -78
  218. package/src/browser/preferences/components/fields/any-of-field.tsx +0 -90
  219. package/src/browser/preferences/components/fields/array-field.tsx +0 -25
  220. package/src/browser/preferences/components/fields/object-filed.tsx +0 -33
  221. package/src/browser/preferences/components/fields/title-field.tsx +0 -16
  222. package/src/browser/preferences/components/json-widget.module.less +0 -36
  223. package/src/browser/preferences/components/select-widget.tsx +0 -68
  224. package/src/browser/preferences/components/text-widget.tsx +0 -114
  225. package/src/browser/preferences/launch.module.less +0 -102
  226. package/src/browser/preferences/launch.service.ts +0 -133
  227. package/src/browser/preferences/launch.view.tsx +0 -494
  228. package/src/browser/preferences/model/configuration-items.ts +0 -24
  229. package/src/browser/preferences/templates/additional-template.tsx +0 -77
  230. package/src/browser/preferences/templates/array-field-item-template.tsx +0 -90
  231. package/src/browser/preferences/templates/array-field-template.tsx +0 -92
  232. package/src/browser/preferences/templates/base-input-template.tsx +0 -79
  233. package/src/browser/preferences/templates/button-template.tsx +0 -107
  234. package/src/browser/preferences/templates/description-field-template.tsx +0 -29
  235. package/src/browser/preferences/templates/field-template.tsx +0 -71
  236. package/src/browser/preferences/templates/json-templates.module.less +0 -133
  237. package/src/browser/preferences/templates/object-field-template.tsx +0 -156
  238. package/src/common/debug-schema.ts +0 -5
@@ -20,22 +20,19 @@ import {
20
20
  CommonLanguageId,
21
21
  } from '@opensumi/ide-core-browser';
22
22
  import { WorkbenchEditorService, IOpenResourceResult } from '@opensumi/ide-editor';
23
- import { EditorCollectionService, IEditorDocumentModelService } from '@opensumi/ide-editor/lib/browser/index';
24
23
  import { IFileServiceClient } from '@opensumi/ide-file-service';
25
24
  import { FileSystemError } from '@opensumi/ide-file-service';
26
- import { EOL } from '@opensumi/ide-monaco';
27
25
  import { ITextModel } from '@opensumi/ide-monaco/lib/browser/monaco-api/types';
28
26
  import { QuickPickService } from '@opensumi/ide-quick-open';
29
27
  import { IWorkspaceService } from '@opensumi/ide-workspace';
30
28
  import { WorkspaceVariableContribution } from '@opensumi/ide-workspace/lib/browser/workspace-variable-contribution';
31
- import { EditOperation } from '@opensumi/monaco-editor-core/esm/vs/editor/common/core/editOperation';
32
29
  import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
33
30
 
34
31
  import { DebugServer, IDebugServer, IDebuggerContribution, launchSchemaUri } from '../common';
35
32
  import { DebugSessionOptions } from '../common';
36
33
  import { DebugConfiguration } from '../common';
37
34
 
38
- import { CONTEXT_DEBUGGERS_AVAILABLE, LAUNCH_VIEW_SCHEME } from './../common/constants';
35
+ import { CONTEXT_DEBUGGERS_AVAILABLE } from './../common/constants';
39
36
  import { DebugConfigurationModel } from './debug-configuration-model';
40
37
  import { DebugPreferences } from './debug-preferences';
41
38
 
@@ -90,12 +87,6 @@ export class DebugConfigurationManager {
90
87
  @Autowired(DebugPreferences)
91
88
  protected readonly debugPreferences: DebugPreferences;
92
89
 
93
- @Autowired(IEditorDocumentModelService)
94
- protected readonly documentService: IEditorDocumentModelService;
95
-
96
- @Autowired(EditorCollectionService)
97
- protected readonly editorCollectionService: EditorCollectionService;
98
-
99
90
  private contextDebuggersAvailable: IContextKey<boolean>;
100
91
 
101
92
  // 用于存储支持断点的语言
@@ -275,76 +266,6 @@ export class DebugConfigurationManager {
275
266
  }
276
267
  }
277
268
 
278
- async openLaunchEditor(): Promise<void> {
279
- if (!this.model) {
280
- return;
281
- }
282
-
283
- const uri = this.model.uri;
284
- if (!uri) {
285
- return;
286
- }
287
-
288
- await this.workbenchEditorService.open(uri.withScheme(LAUNCH_VIEW_SCHEME), {
289
- disableNavigate: true,
290
- });
291
- }
292
-
293
- private visitConfigurationsEditor(model: ITextModel): monaco.Position | undefined {
294
- let position: monaco.Position | undefined;
295
- let depthInArray = 0;
296
- let lastProperty = '';
297
- visit(model.getValue(), {
298
- onObjectProperty: (property) => {
299
- lastProperty = property;
300
- },
301
- onArrayBegin: (offset) => {
302
- if (lastProperty === 'configurations' && depthInArray === 0) {
303
- position = model.getPositionAt(offset + 1);
304
- }
305
- depthInArray++;
306
- },
307
- onArrayEnd: () => {
308
- depthInArray--;
309
- },
310
- });
311
-
312
- return position;
313
- }
314
-
315
- async insertConfiguration(uri: URI, configuration: DebugConfiguration): Promise<void> {
316
- let ref = this.documentService.getModelReference(uri);
317
- if (!ref) {
318
- ref = await this.documentService.createModelReference(uri);
319
- }
320
-
321
- const model = ref.instance.getMonacoModel();
322
- const eol = model.getEOL();
323
- const position: monaco.Position | undefined = this.visitConfigurationsEditor(model);
324
- if (!position) {
325
- return;
326
- }
327
-
328
- const { indentSize, insertSpaces } = model.getOptions();
329
- // 获取 configurations 字符串前面的空格个数
330
- const spacesMatch = model.getLineContent(position.lineNumber).match(/^\s*/);
331
- const leadingSpaces = spacesMatch ? spacesMatch[0].length : 0;
332
- const indent = insertSpaces ? ' '.repeat(indentSize + leadingSpaces) : '\t';
333
-
334
- const decompose = JSON.stringify(configuration, null, indentSize).split(EOL.LF);
335
- const length = decompose.length;
336
- const indentContent = decompose.reduce(
337
- (pre, cur, index) => pre + indent + cur + (index === length - 1 ? '' : EOL.LF),
338
- '',
339
- );
340
-
341
- model.pushEditOperations(
342
- null,
343
- [EditOperation.insert(position, eol), EditOperation.insert(position, indentContent + ',')],
344
- () => null,
345
- );
346
- }
347
-
348
269
  async addConfiguration(uri?: string): Promise<void> {
349
270
  let model: DebugConfigurationModel | undefined;
350
271
  if (uri) {
@@ -365,11 +286,26 @@ export class DebugConfigurationManager {
365
286
  return;
366
287
  }
367
288
 
368
- const position: monaco.Position | undefined = this.visitConfigurationsEditor(editor.getModel()!);
289
+ let position: monaco.Position | undefined;
290
+ let depthInArray = 0;
291
+ let lastProperty = '';
292
+ visit(editor.getValue(), {
293
+ onObjectProperty: (property) => {
294
+ lastProperty = property;
295
+ },
296
+ onArrayBegin: (offset) => {
297
+ if (lastProperty === 'configurations' && depthInArray === 0) {
298
+ position = editor.getModel()!.getPositionAt(offset + 1);
299
+ }
300
+ depthInArray++;
301
+ },
302
+ onArrayEnd: () => {
303
+ depthInArray--;
304
+ },
305
+ });
369
306
  if (!position) {
370
307
  return;
371
308
  }
372
-
373
309
  // 判断在"configurations": [后是否有字符,如果有则新建一行
374
310
  if (editor.getModel()!.getLineLastNonWhitespaceColumn(position.lineNumber) > position.column) {
375
311
  editor.setPosition(position);
@@ -40,6 +40,7 @@ import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
40
40
 
41
41
  import {
42
42
  IDebugSessionManager,
43
+ launchSchemaUri,
43
44
  DEBUG_CONTAINER_ID,
44
45
  DEBUG_WATCH_ID,
45
46
  DEBUG_VARIABLES_ID,
@@ -52,7 +53,6 @@ import {
52
53
  TSourceBrekpointProperties,
53
54
  DEBUG_COMMANDS,
54
55
  IDebugModelManager,
55
- launchDefaultSchemaUri,
56
56
  } from '../common';
57
57
 
58
58
  import {
@@ -60,7 +60,6 @@ import {
60
60
  CONTEXT_IN_DEBUG_MODE,
61
61
  CONTEXT_BREAKPOINT_INPUT_FOCUSED,
62
62
  CONTEXT_EXCEPTION_WIDGET_VISIBLE,
63
- CONTEXT_ACTIVE_BREAKPOINTS,
64
63
  } from './../common/constants';
65
64
  import { BreakpointManager, SelectedBreakpoint } from './breakpoint';
66
65
  import { FloatingClickWidget } from './components/floating-click-widget';
@@ -68,12 +67,11 @@ import { DebugContextKey } from './contextkeys/debug-contextkey.service';
68
67
  import { DebugConfigurationManager } from './debug-configuration-manager';
69
68
  import { DebugPreferences, debugPreferencesSchema } from './debug-preferences';
70
69
  import { DebugProgressService } from './debug-progress.service';
71
- import { launchSchema } from './debug-schema-manager';
70
+ import { launchSchema } from './debug-schema-updater';
72
71
  import { DebugSession } from './debug-session';
73
72
  import { DebugSessionManager } from './debug-session-manager';
74
73
  import { DebugEditorContribution } from './editor/debug-editor-contribution';
75
74
  import { DebugRunToCursorService } from './editor/debug-run-to-cursor.service';
76
- import breakpointViewStyles from './view/breakpoints/debug-breakpoints.module.less';
77
75
  import { DebugBreakpointsService } from './view/breakpoints/debug-breakpoints.service';
78
76
  import { DebugBreakpointView } from './view/breakpoints/debug-breakpoints.view';
79
77
  import { DebugConfigurationService } from './view/configuration/debug-configuration.service';
@@ -86,10 +84,6 @@ import { DebugVariableView } from './view/variables/debug-variables.view';
86
84
  import { DebugWatchView } from './view/watch/debug-watch.view';
87
85
 
88
86
  const LAUNCH_JSON_REGEX = /launch\.json$/;
89
- enum LAUNCH_OPEN {
90
- json,
91
- editor,
92
- }
93
87
 
94
88
  export namespace DebugBreakpointWidgetCommands {
95
89
  export const ACCEPT = {
@@ -361,11 +355,7 @@ export class DebugContribution
361
355
 
362
356
  registerCommands(commands: CommandRegistry) {
363
357
  commands.registerCommand(COMMON_COMMANDS.OPEN_LAUNCH_CONFIGURATION, {
364
- execute: (type: LAUNCH_OPEN = LAUNCH_OPEN.json) => {
365
- if (type === LAUNCH_OPEN.editor) {
366
- return this.debugConfigurationService.openLaunchEditor();
367
- }
368
-
358
+ execute: () => {
369
359
  this.debugConfigurationService.openConfiguration();
370
360
  },
371
361
  });
@@ -419,42 +409,10 @@ export class DebugContribution
419
409
  this.debugBreakpointsService.toggleBreakpoints();
420
410
  },
421
411
  });
422
- commands.registerCommand(DEBUG_COMMANDS.ACTIVE_BREAKPOINTS, {
423
- execute: () => {
424
- const { enable } = this.debugBreakpointsService;
425
- if (!enable) {
426
- this.debugBreakpointsService.toggleBreakpoints();
427
- }
428
- },
429
- });
430
- commands.registerCommand(DEBUG_COMMANDS.DEACTIVE_BREAKPOINTS, {
431
- execute: () => {
432
- const { enable } = this.debugBreakpointsService;
433
- if (enable) {
434
- this.debugBreakpointsService.toggleBreakpoints();
435
- }
436
- },
437
- });
438
412
  commands.registerCommand(DEBUG_COMMANDS.EDIT_BREAKPOINT, {
439
413
  execute: async (position: monaco.Position) => {
440
414
  this.reporterService.point(DEBUG_REPORT_NAME?.DEBUG_BREAKPOINT, 'edit');
441
- const model = this.debugEditorController.model;
442
- if (!model) {
443
- return;
444
- }
445
-
446
- const { uri } = model;
447
- const breakpoint = this.breakpointManager.getBreakpoint(uri, position!.lineNumber);
448
- // 更新当前选中的断点
449
- if (breakpoint) {
450
- this.breakpointManager.selectedBreakpoint = {
451
- breakpoint,
452
- model,
453
- };
454
- }
455
-
456
415
  const { selectedBreakpoint } = this;
457
-
458
416
  if (selectedBreakpoint) {
459
417
  const { openBreakpointView } = selectedBreakpoint.model;
460
418
  let defaultContext: TSourceBrekpointProperties = 'condition';
@@ -476,6 +434,7 @@ export class DebugContribution
476
434
  }
477
435
  },
478
436
  isVisible: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
437
+ isEnabled: () => !!this.selectedBreakpoint && !!this.selectedBreakpoint.breakpoint,
479
438
  });
480
439
  commands.registerCommand(DEBUG_COMMANDS.DISABLE_BREAKPOINT, {
481
440
  execute: async (position: monaco.Position) => {
@@ -639,21 +598,11 @@ export class DebugContribution
639
598
  });
640
599
 
641
600
  registry.registerItem({
642
- id: DEBUG_COMMANDS.DEACTIVE_BREAKPOINTS.id,
643
- command: DEBUG_COMMANDS.DEACTIVE_BREAKPOINTS.id,
601
+ id: DEBUG_COMMANDS.TOGGLE_BREAKPOINTS.id,
602
+ command: DEBUG_COMMANDS.TOGGLE_BREAKPOINTS.id,
644
603
  iconClass: getIcon('deactivate-breakpoints'),
645
604
  viewId: DEBUG_BREAKPOINTS_ID,
646
- tooltip: localize('debug.breakpoint.deactive'),
647
- when: CONTEXT_ACTIVE_BREAKPOINTS.equalsTo(true),
648
- });
649
-
650
- registry.registerItem({
651
- id: DEBUG_COMMANDS.ACTIVE_BREAKPOINTS.id,
652
- command: DEBUG_COMMANDS.ACTIVE_BREAKPOINTS.id,
653
- iconClass: `${getIcon('activate-breakpoints')} ${breakpointViewStyles.debug_activate_breakpoints_icon}`,
654
- viewId: DEBUG_BREAKPOINTS_ID,
655
- tooltip: localize('debug.breakpoint.active'),
656
- when: CONTEXT_ACTIVE_BREAKPOINTS.equalsTo(false),
605
+ tooltip: localize('debug.breakpoint.toggle'),
657
606
  });
658
607
  /**
659
608
  * end
@@ -661,7 +610,7 @@ export class DebugContribution
661
610
  }
662
611
 
663
612
  registerSchema(registry: IJSONSchemaRegistry) {
664
- registry.registerSchema(launchDefaultSchemaUri, launchSchema, ['launch.json']);
613
+ registry.registerSchema(`${launchSchemaUri}/default`, launchSchema, ['launch.json']);
665
614
  }
666
615
 
667
616
  registerKeybindings(keybindings: KeybindingRegistry) {
@@ -1,7 +1,7 @@
1
1
  import { Injectable, Autowired } from '@opensumi/di';
2
2
  import { objects, IJSONSchema, IJSONSchemaRegistry } from '@opensumi/ide-core-browser';
3
3
 
4
- import { launchExtensionSchemaUri, launchSchemaUri } from '../common';
4
+ import { launchSchemaUri } from '../common';
5
5
  import { DebugServer, IDebugServer } from '../common/debug-service';
6
6
 
7
7
  import { DebugConfigurationManager } from './debug-configuration-manager';
@@ -9,7 +9,7 @@ import { DebugConfigurationManager } from './debug-configuration-manager';
9
9
  const { deepClone } = objects;
10
10
 
11
11
  @Injectable()
12
- export class DebugSchemaManager {
12
+ export class DebugSchemaUpdater {
13
13
  @Autowired(IDebugServer)
14
14
  protected readonly debug: DebugServer;
15
15
 
@@ -19,7 +19,7 @@ export class DebugSchemaManager {
19
19
  @Autowired(DebugConfigurationManager)
20
20
  private config: DebugConfigurationManager;
21
21
 
22
- public async update(): Promise<void> {
22
+ async update(): Promise<void> {
23
23
  const debuggers = this.config.getDebuggers();
24
24
  const schema = { ...deepClone(launchSchema) };
25
25
  const items = schema!.properties!.configurations.items as IJSONSchema;
@@ -38,8 +38,7 @@ export class DebugSchemaManager {
38
38
  items.defaultSnippets.push(...configurationSnippets);
39
39
  }
40
40
  }
41
-
42
- this.schemaRegistry.registerSchema(launchExtensionSchemaUri, schema, ['launch.json']);
41
+ this.schemaRegistry.registerSchema(`${launchSchemaUri}/extension`, schema, ['launch.json']);
43
42
  }
44
43
  }
45
44
 
@@ -1,9 +1,3 @@
1
- @top_stack_frame_line_bg_color: #ffff6673;
2
- @dark_top_stack_frame_line_bg_color: #ffff0033;
3
- @focused_stack_frame_line_bg_color: #cee7ce73;
4
- @dark_focused_stack_frame_line_bg_color: #7abd7a4d;
5
- @dark_exception_line_bg_color: #6c2022;
6
-
7
1
  .sumi-breakpoint-icon-size {
8
2
  background-size: 16px 16px;
9
3
  cursor: pointer;
@@ -79,34 +73,11 @@
79
73
  }
80
74
 
81
75
  .monaco-editor .view-overlays .sumi-debug-top-stack-frame-line {
82
- background-color: @top_stack_frame_line_bg_color;
76
+ background: #ffff6673;
83
77
  }
84
78
 
85
79
  .monaco-editor.vs-dark .view-overlays .sumi-debug-top-stack-frame-line {
86
- background-color: @dark_top_stack_frame_line_bg_color;
87
- }
88
-
89
- @keyframes slide-out {
90
- 100% {
91
- background-color: transparent;
92
- }
93
- }
94
-
95
- .monaco-editor .view-overlays .sumi-focus-breakpoints-stack-frame-line,
96
- .monaco-editor.vs-dark .view-overlays .sumi-focus-breakpoints-stack-frame-line {
97
- animation: slide-out 0.3s;
98
- animation-iteration-count: 1;
99
- animation-timing-function: ease-in;
100
- animation-fill-mode: forwards;
101
- -webkit-animation-fill-mode: forwards;
102
- }
103
-
104
- .monaco-editor .view-overlays .sumi-focus-breakpoints-stack-frame-line {
105
- background-color: @top_stack_frame_line_bg_color;
106
- }
107
-
108
- .monaco-editor.vs-dark .view-overlays .sumi-focus-breakpoints-stack-frame-line {
109
- background-color: @dark_top_stack_frame_line_bg_color;
80
+ background: #ffff0033;
110
81
  }
111
82
 
112
83
  .monaco-editor .sumi-debug-focused-stack-frame {
@@ -120,15 +91,15 @@
120
91
  }
121
92
 
122
93
  .monaco-editor .view-overlays .sumi-debug-focused-stack-frame-line {
123
- background-color: @focused_stack_frame_line_bg_color;
94
+ background: #cee7ce73;
124
95
  }
125
96
 
126
97
  .monaco-editor.vs-dark .view-overlays .sumi-debug-focused-stack-frame-line {
127
- background-color: @dark_focused_stack_frame_line_bg_color;
98
+ background: #7abd7a4d;
128
99
  }
129
100
 
130
101
  .monaco-editor.vs-dark .view-overlays .sumi-debug-top-stack-frame-exception-line {
131
- background-color: @dark_exception_line_bg_color;
102
+ background-color: #6c2022;
132
103
  }
133
104
 
134
105
  .inline-breakpoint-widget.codicon {
@@ -1,5 +1,4 @@
1
1
  import { strings } from '@opensumi/ide-core-browser';
2
- import { SnippetParser } from '@opensumi/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetParser';
3
2
 
4
3
  import { DebugConfiguration } from '../common';
5
4
 
@@ -109,25 +108,3 @@ export class CharWidthReader {
109
108
  return width;
110
109
  }
111
110
  }
112
-
113
- export const parseSnippet = (value: string) => {
114
- /**
115
- * 在 Windows 中, 直接使用 \" 来转义双引号可能会被解析为文件路径中的反斜杠,从而导致路径错误。
116
- * 为了避免这个问题,一些插件内使用 ^\" 来表示转义的双引号,这样就不会被解析为文件路径中的反斜杠了。
117
- * 当调试器解析 launch.json 文件并读取字符串值时,它会将 ^" 转换为双引号。
118
- * 而我们在这里为了需要把转义后的字符串能正确展示,就需要用正则去剔除
119
- */
120
- const doubleQuotesRegex = new RegExp(/^\^\"(.*)\"/gm);
121
- /**
122
- * 使用 monaco 内部的 SnippetParser 来转换形如 ${1:xxxx} 这样的符号
123
- */
124
- const snippet = new SnippetParser();
125
- const isHasSnippetRegex = new RegExp(/\${\d+:(.*)/);
126
-
127
- if (isHasSnippetRegex.test(value) || doubleQuotesRegex.test(value)) {
128
- const snippetParse = snippet.text(value);
129
- return snippetParse.replace(doubleQuotesRegex, '$1');
130
- }
131
-
132
- return value;
133
- };
@@ -9,12 +9,17 @@ export class DebugHoverModel extends TreeModel {
9
9
  static DEFAULT_FLUSH_DELAY = 100;
10
10
 
11
11
  private flushDispatchChangeDelayer = new ThrottledDelayer<void>(DebugHoverModel.DEFAULT_FLUSH_DELAY);
12
+ private onWillUpdateEmitter: Emitter<void> = new Emitter();
12
13
 
13
14
  constructor(@Optional() root: ExpressionContainer) {
14
15
  super();
15
16
  this.init(root);
16
17
  }
17
18
 
19
+ get onWillUpdate(): Event<void> {
20
+ return this.onWillUpdateEmitter.event;
21
+ }
22
+
18
23
  init(root: CompositeTreeNode) {
19
24
  this.root = root;
20
25
  // 分支更新时通知树刷新, 不是立即更新,而是延迟更新,待树稳定后再更新
@@ -25,6 +30,7 @@ export class DebugHoverModel extends TreeModel {
25
30
  this.flushDispatchChangeDelayer.cancel();
26
31
  }
27
32
  this.flushDispatchChangeDelayer.trigger(async () => {
33
+ await this.onWillUpdateEmitter.fireAndAwait();
28
34
  this.dispatchChange();
29
35
  });
30
36
  });
@@ -134,6 +134,16 @@ export class DebugHoverTreeModelService {
134
134
  this.loadingDecoration.removeTarget(target);
135
135
  }),
136
136
  );
137
+ this.disposableCollection.push(
138
+ this.treeModel!.onWillUpdate(() => {
139
+ // 更新树前更新下选中节点
140
+ if (this.selectedNodes.length !== 0) {
141
+ // 仅处理一下单选情况
142
+ const node = this.treeModel?.root.getTreeNodeByPath(this.selectedNodes[0].path);
143
+ this.selectedDecoration.addTarget(node as ExpressionNode);
144
+ }
145
+ }),
146
+ );
137
147
  }
138
148
 
139
149
  async initTreeModel(root: ExpressionVariable) {
@@ -1,7 +1,7 @@
1
1
  import debounce from 'lodash/debounce';
2
2
 
3
3
  import { Injector, Injectable, Autowired } from '@opensumi/di';
4
- import { DomListener, IContextKeyService, IReporterService, PreferenceService } from '@opensumi/ide-core-browser';
4
+ import { DomListener, IContextKeyService, IReporterService } from '@opensumi/ide-core-browser';
5
5
  import {
6
6
  ICtxMenuRenderer,
7
7
  generateMergedCtxMenu,
@@ -26,7 +26,6 @@ import { BreakpointManager } from '../breakpoint';
26
26
  import { DebugBreakpoint, isDebugBreakpoint } from '../breakpoint';
27
27
  import { DebugDecorator } from '../breakpoint/breakpoint-decoration';
28
28
  import { DebugSessionManager } from '../debug-session-manager';
29
- import { DebugBreakpointsService } from '../view/breakpoints/debug-breakpoints.service';
30
29
 
31
30
  import { DebugBreakpointWidget } from './debug-breakpoint-widget';
32
31
  import { DebugHoverWidget } from './debug-hover-widget';
@@ -48,9 +47,6 @@ export class DebugModel implements IDebugModel {
48
47
  @Autowired(IDebugSessionManager)
49
48
  private debugSessionManager: DebugSessionManager;
50
49
 
51
- @Autowired(DebugBreakpointsService)
52
- private debugBreakpointsService: DebugBreakpointsService;
53
-
54
50
  @Autowired(BreakpointManager)
55
51
  private breakpointManager: BreakpointManager;
56
52
 
@@ -66,9 +62,6 @@ export class DebugModel implements IDebugModel {
66
62
  @Autowired(IReporterService)
67
63
  private readonly reporterService: IReporterService;
68
64
 
69
- @Autowired(PreferenceService)
70
- private readonly preferenceService: PreferenceService;
71
-
72
65
  protected frameDecorations: string[] = [];
73
66
  protected topFrameRange: monaco.Range | undefined;
74
67
 
@@ -122,38 +115,13 @@ export class DebugModel implements IDebugModel {
122
115
 
123
116
  async init() {
124
117
  const model = this.editor.getModel()!;
125
- let timer: number | undefined;
126
118
  this._uri = new URI(model.uri.toString());
127
119
  this.decorator = new DebugDecorator();
128
-
129
120
  this.toDispose.pushAll([
130
121
  this.breakpointWidget,
131
122
  this.editor.onKeyDown(() => this.debugHoverWidget.hide({ immediate: false })),
132
123
  this.editor.onDidChangeModelContent(() => this.renderFrames()),
133
124
  this.debugSessionManager.onDidChange(() => this.renderFrames()),
134
- this.debugBreakpointsService.onDidFocusedBreakpoints(({ range }) => {
135
- const enableHint = this.preferenceService.getValid('debug.breakpoint.editorHint', true);
136
-
137
- if (!enableHint) {
138
- return;
139
- }
140
-
141
- this.renderFrames([
142
- {
143
- options: options.FOCUS_BREAKPOINTS_STACK_FRAME_DECORATION,
144
- range,
145
- },
146
- ]);
147
-
148
- if (timer) {
149
- clearTimeout(timer);
150
- }
151
-
152
- timer = window.setTimeout(() => {
153
- this.renderFrames();
154
- clearTimeout(timer);
155
- }, 300);
156
- }),
157
125
  this.editor.getModel()!.onDidChangeContent(() => this.updateBreakpoints()),
158
126
  this.editor.onDidChangeModel(() => {
159
127
  this.closeBreakpointView();
@@ -188,14 +156,14 @@ export class DebugModel implements IDebugModel {
188
156
  * @type {*}
189
157
  * @memberof DebugModel
190
158
  */
191
- protected readonly renderFrames: any = debounce((inflowDecorations: monaco.editor.IModelDeltaDecoration[] = []) => {
159
+ protected readonly renderFrames: any = debounce(() => {
192
160
  if (this.toDispose.disposed) {
193
161
  return;
194
162
  }
195
163
  if (this.editor.getModel()?.uri.toString() !== this._uri.toString()) {
196
164
  return;
197
165
  }
198
- const decorations = this.createFrameDecorations().concat(inflowDecorations);
166
+ const decorations = this.createFrameDecorations();
199
167
  this.frameDecorations = this.deltaDecorations(this.frameDecorations, decorations);
200
168
  }, 100);
201
169
 
@@ -28,13 +28,6 @@ export const TOP_STACK_FRAME_DECORATION: monaco.editor.IModelDecorationOptions =
28
28
  stickiness: STICKINESS,
29
29
  };
30
30
 
31
- export const FOCUS_BREAKPOINTS_STACK_FRAME_DECORATION: monaco.editor.IModelDecorationOptions = {
32
- description: 'focus-breakpoints-stack-frame-line',
33
- isWholeLine: true,
34
- className: 'sumi-focus-breakpoints-stack-frame-line',
35
- stickiness: STICKINESS,
36
- };
37
-
38
31
  export const TOP_STACK_FRAME_EXCEPTION_DECORATION: monaco.editor.IModelDecorationOptions = {
39
32
  description: 'debug-top-stack-frame-exception-line',
40
33
  isWholeLine: true,
@@ -10,7 +10,6 @@ import {
10
10
  IDebugProgress,
11
11
  IDebugService,
12
12
  IDebugSessionManager,
13
- ILaunchService,
14
13
  } from '../common';
15
14
 
16
15
  import { BreakpointManager } from './breakpoint';
@@ -31,7 +30,6 @@ import { DebugHoverSource } from './editor/debug-hover-source';
31
30
  import { EvaluatableExpressionServiceImpl, IEvaluatableExpressionService } from './editor/evaluatable-expression';
32
31
  import { LaunchFolderPreferenceProvider } from './preferences/launch-folder-preference-provider';
33
32
  import { LaunchPreferencesContribution } from './preferences/launch-preferences-contribution';
34
- import { LaunchService } from './preferences/launch.service';
35
33
  import { DebugToolbarOverlayWidget } from './view/configuration/debug-toolbar.view';
36
34
  import { DebugConsoleModelService } from './view/console/debug-console-tree.model.service';
37
35
  import { DebugConsoleContribution } from './view/console/debug-console.contribution';
@@ -90,10 +88,6 @@ export class DebugModule extends BrowserModule {
90
88
  token: IDebugService,
91
89
  useClass: DebugService,
92
90
  },
93
- {
94
- token: ILaunchService,
95
- useClass: LaunchService,
96
- },
97
91
  {
98
92
  token: IDebugProgress,
99
93
  useClass: DebugProgressService,