@codingame/monaco-vscode-debug-service-override 1.83.4 → 1.83.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.
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +5 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +193 -86
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +44 -10
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +254 -60
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +10 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +98 -28
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +429 -185
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +25 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +62 -11
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +130 -32
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +20 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +5 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +105 -21
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +10 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +18 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +39 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +100 -24
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +58 -26
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +17 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +12 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +80 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +15 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +8 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +36 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +24 -13
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +33 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +34 -6
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +26 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +48 -14
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +31 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +20 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +40 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +49 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +5 -60
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +18 -5
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +15 -3
- package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +32 -22
- package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +205 -41
- package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +5 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +51 -10
- package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +5 -1
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +5 -1
- package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +5 -1
- package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +18 -7
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +80 -16
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +5 -1
|
@@ -27,9 +27,17 @@ class ToggleBreakpointAction extends Action2 {
|
|
|
27
27
|
super({
|
|
28
28
|
id: 'editor.debug.action.toggleBreakpoint',
|
|
29
29
|
title: {
|
|
30
|
-
value: nls.localizeWithPath(
|
|
30
|
+
value: ( nls.localizeWithPath(
|
|
31
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
32
|
+
'toggleBreakpointAction',
|
|
33
|
+
"Debug: Toggle Breakpoint"
|
|
34
|
+
)),
|
|
31
35
|
original: 'Debug: Toggle Breakpoint',
|
|
32
|
-
mnemonicTitle: nls.localizeWithPath(
|
|
36
|
+
mnemonicTitle: ( nls.localizeWithPath(
|
|
37
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
38
|
+
{ key: 'miToggleBreakpoint', comment: ['&& denotes a mnemonic'] },
|
|
39
|
+
"Toggle &&Breakpoint"
|
|
40
|
+
)),
|
|
33
41
|
},
|
|
34
42
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE,
|
|
35
43
|
keybinding: {
|
|
@@ -85,12 +93,20 @@ class ConditionalBreakpointAction extends EditorAction {
|
|
|
85
93
|
constructor() {
|
|
86
94
|
super({
|
|
87
95
|
id: 'editor.debug.action.conditionalBreakpoint',
|
|
88
|
-
label: nls.localizeWithPath(
|
|
96
|
+
label: ( nls.localizeWithPath(
|
|
97
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
98
|
+
'conditionalBreakpointEditorAction',
|
|
99
|
+
"Debug: Add Conditional Breakpoint..."
|
|
100
|
+
)),
|
|
89
101
|
alias: 'Debug: Add Conditional Breakpoint...',
|
|
90
102
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE,
|
|
91
103
|
menuOpts: {
|
|
92
104
|
menuId: MenuId.MenubarNewBreakpointMenu,
|
|
93
|
-
title: nls.localizeWithPath(
|
|
105
|
+
title: ( nls.localizeWithPath(
|
|
106
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
107
|
+
{ key: 'miConditionalBreakpoint', comment: ['&& denotes a mnemonic'] },
|
|
108
|
+
"&&Conditional Breakpoint..."
|
|
109
|
+
)),
|
|
94
110
|
group: '1_breakpoints',
|
|
95
111
|
order: 1,
|
|
96
112
|
when: CONTEXT_DEBUGGERS_AVAILABLE
|
|
@@ -109,13 +125,21 @@ class LogPointAction extends EditorAction {
|
|
|
109
125
|
constructor() {
|
|
110
126
|
super({
|
|
111
127
|
id: 'editor.debug.action.addLogPoint',
|
|
112
|
-
label: nls.localizeWithPath(
|
|
128
|
+
label: ( nls.localizeWithPath(
|
|
129
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
130
|
+
'logPointEditorAction',
|
|
131
|
+
"Debug: Add Logpoint..."
|
|
132
|
+
)),
|
|
113
133
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE,
|
|
114
134
|
alias: 'Debug: Add Logpoint...',
|
|
115
135
|
menuOpts: [
|
|
116
136
|
{
|
|
117
137
|
menuId: MenuId.MenubarNewBreakpointMenu,
|
|
118
|
-
title: nls.localizeWithPath(
|
|
138
|
+
title: ( nls.localizeWithPath(
|
|
139
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
140
|
+
{ key: 'miLogPoint', comment: ['&& denotes a mnemonic'] },
|
|
141
|
+
"&&Logpoint..."
|
|
142
|
+
)),
|
|
119
143
|
group: '1_breakpoints',
|
|
120
144
|
order: 4,
|
|
121
145
|
when: CONTEXT_DEBUGGERS_AVAILABLE,
|
|
@@ -135,12 +159,20 @@ class EditBreakpointAction extends EditorAction {
|
|
|
135
159
|
constructor() {
|
|
136
160
|
super({
|
|
137
161
|
id: 'editor.debug.action.editBreakpoint',
|
|
138
|
-
label: nls.localizeWithPath(
|
|
162
|
+
label: ( nls.localizeWithPath(
|
|
163
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
164
|
+
'EditBreakpointEditorAction',
|
|
165
|
+
"Debug: Edit Breakpoint"
|
|
166
|
+
)),
|
|
139
167
|
alias: 'Debug: Edit Existing Breakpoint',
|
|
140
168
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE,
|
|
141
169
|
menuOpts: {
|
|
142
170
|
menuId: MenuId.MenubarNewBreakpointMenu,
|
|
143
|
-
title: nls.localizeWithPath(
|
|
171
|
+
title: ( nls.localizeWithPath(
|
|
172
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
173
|
+
{ key: 'miEditBreakpoint', comment: ['&& denotes a mnemonic'] },
|
|
174
|
+
"&&Edit Breakpoint"
|
|
175
|
+
)),
|
|
144
176
|
group: '1_breakpoints',
|
|
145
177
|
order: 1,
|
|
146
178
|
when: CONTEXT_DEBUGGERS_AVAILABLE
|
|
@@ -175,9 +207,17 @@ class OpenDisassemblyViewAction extends EditorAction2 {
|
|
|
175
207
|
super({
|
|
176
208
|
id: OpenDisassemblyViewAction.ID,
|
|
177
209
|
title: {
|
|
178
|
-
value: nls.localizeWithPath(
|
|
210
|
+
value: ( nls.localizeWithPath(
|
|
211
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
212
|
+
'openDisassemblyView',
|
|
213
|
+
"Open Disassembly View"
|
|
214
|
+
)),
|
|
179
215
|
original: 'Open Disassembly View',
|
|
180
|
-
mnemonicTitle: nls.localizeWithPath(
|
|
216
|
+
mnemonicTitle: ( nls.localizeWithPath(
|
|
217
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
218
|
+
{ key: 'miDisassemblyView', comment: ['&& denotes a mnemonic'] },
|
|
219
|
+
"&&DisassemblyView"
|
|
220
|
+
))
|
|
181
221
|
},
|
|
182
222
|
precondition: CONTEXT_FOCUSED_STACK_FRAME_HAS_INSTRUCTION_POINTER_REFERENCE,
|
|
183
223
|
menu: [
|
|
@@ -214,9 +254,17 @@ class ToggleDisassemblyViewSourceCodeAction extends Action2 {
|
|
|
214
254
|
super({
|
|
215
255
|
id: ToggleDisassemblyViewSourceCodeAction.ID,
|
|
216
256
|
title: {
|
|
217
|
-
value: nls.localizeWithPath(
|
|
257
|
+
value: ( nls.localizeWithPath(
|
|
258
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
259
|
+
'toggleDisassemblyViewSourceCode',
|
|
260
|
+
"Toggle Source Code in Disassembly View"
|
|
261
|
+
)),
|
|
218
262
|
original: 'Toggle Source Code in Disassembly View',
|
|
219
|
-
mnemonicTitle: nls.localizeWithPath(
|
|
263
|
+
mnemonicTitle: ( nls.localizeWithPath(
|
|
264
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
265
|
+
{ key: 'mitogglesource', comment: ['&& denotes a mnemonic'] },
|
|
266
|
+
"&&ToggleSource"
|
|
267
|
+
))
|
|
220
268
|
},
|
|
221
269
|
f1: true,
|
|
222
270
|
});
|
|
@@ -231,7 +279,11 @@ class ToggleDisassemblyViewSourceCodeAction extends Action2 {
|
|
|
231
279
|
}
|
|
232
280
|
class RunToCursorAction extends EditorAction {
|
|
233
281
|
static { this.ID = 'editor.debug.action.runToCursor'; }
|
|
234
|
-
static { this.LABEL = nls.localizeWithPath(
|
|
282
|
+
static { this.LABEL = ( nls.localizeWithPath(
|
|
283
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
284
|
+
'runToCursor',
|
|
285
|
+
"Run to Cursor"
|
|
286
|
+
)); }
|
|
235
287
|
constructor() {
|
|
236
288
|
super({
|
|
237
289
|
id: RunToCursorAction.ID,
|
|
@@ -264,7 +316,11 @@ class RunToCursorAction extends EditorAction {
|
|
|
264
316
|
}
|
|
265
317
|
class SelectionToReplAction extends EditorAction {
|
|
266
318
|
static { this.ID = 'editor.debug.action.selectionToRepl'; }
|
|
267
|
-
static { this.LABEL = nls.localizeWithPath(
|
|
319
|
+
static { this.LABEL = ( nls.localizeWithPath(
|
|
320
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
321
|
+
'evaluateInDebugConsole',
|
|
322
|
+
"Evaluate in Debug Console"
|
|
323
|
+
)); }
|
|
268
324
|
constructor() {
|
|
269
325
|
super({
|
|
270
326
|
id: SelectionToReplAction.ID,
|
|
@@ -299,7 +355,11 @@ class SelectionToReplAction extends EditorAction {
|
|
|
299
355
|
}
|
|
300
356
|
class SelectionToWatchExpressionsAction extends EditorAction {
|
|
301
357
|
static { this.ID = 'editor.debug.action.selectionToWatch'; }
|
|
302
|
-
static { this.LABEL = nls.localizeWithPath(
|
|
358
|
+
static { this.LABEL = ( nls.localizeWithPath(
|
|
359
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
360
|
+
'addToWatch',
|
|
361
|
+
"Add to Watch"
|
|
362
|
+
)); }
|
|
303
363
|
constructor() {
|
|
304
364
|
super({
|
|
305
365
|
id: SelectionToWatchExpressionsAction.ID,
|
|
@@ -344,7 +404,11 @@ class ShowDebugHoverAction extends EditorAction {
|
|
|
344
404
|
constructor() {
|
|
345
405
|
super({
|
|
346
406
|
id: 'editor.debug.action.showDebugHover',
|
|
347
|
-
label: nls.localizeWithPath(
|
|
407
|
+
label: ( nls.localizeWithPath(
|
|
408
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
409
|
+
'showDebugHover',
|
|
410
|
+
"Debug: Show Hover"
|
|
411
|
+
)),
|
|
348
412
|
alias: 'Debug: Show Hover',
|
|
349
413
|
precondition: CONTEXT_IN_DEBUG_MODE,
|
|
350
414
|
kbOpts: {
|
|
@@ -362,10 +426,18 @@ class ShowDebugHoverAction extends EditorAction {
|
|
|
362
426
|
return editor.getContribution(EDITOR_CONTRIBUTION_ID)?.showHover(position, true);
|
|
363
427
|
}
|
|
364
428
|
}
|
|
365
|
-
const NO_TARGETS_MESSAGE = nls.localizeWithPath(
|
|
429
|
+
const NO_TARGETS_MESSAGE = ( nls.localizeWithPath(
|
|
430
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
431
|
+
'editor.debug.action.stepIntoTargets.notAvailable',
|
|
432
|
+
"Step targets are not available here"
|
|
433
|
+
));
|
|
366
434
|
class StepIntoTargetsAction extends EditorAction {
|
|
367
435
|
static { this.ID = 'editor.debug.action.stepIntoTargets'; }
|
|
368
|
-
static { this.LABEL = nls.localizeWithPath(
|
|
436
|
+
static { this.LABEL = ( nls.localizeWithPath(
|
|
437
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
438
|
+
{ key: 'stepIntoTargets', comment: ['Step Into Targets lets the user step into an exact function he or she is interested in.'] },
|
|
439
|
+
"Step Into Target"
|
|
440
|
+
)); }
|
|
369
441
|
constructor() {
|
|
370
442
|
super({
|
|
371
443
|
id: StepIntoTargetsAction.ID,
|
|
@@ -470,7 +542,11 @@ class GoToNextBreakpointAction extends GoToBreakpointAction {
|
|
|
470
542
|
constructor() {
|
|
471
543
|
super(true, {
|
|
472
544
|
id: 'editor.debug.action.goToNextBreakpoint',
|
|
473
|
-
label: nls.localizeWithPath(
|
|
545
|
+
label: ( nls.localizeWithPath(
|
|
546
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
547
|
+
'goToNextBreakpoint',
|
|
548
|
+
"Debug: Go to Next Breakpoint"
|
|
549
|
+
)),
|
|
474
550
|
alias: 'Debug: Go to Next Breakpoint',
|
|
475
551
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE
|
|
476
552
|
});
|
|
@@ -480,7 +556,11 @@ class GoToPreviousBreakpointAction extends GoToBreakpointAction {
|
|
|
480
556
|
constructor() {
|
|
481
557
|
super(false, {
|
|
482
558
|
id: 'editor.debug.action.goToPreviousBreakpoint',
|
|
483
|
-
label: nls.localizeWithPath(
|
|
559
|
+
label: ( nls.localizeWithPath(
|
|
560
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
561
|
+
'goToPreviousBreakpoint',
|
|
562
|
+
"Debug: Go to Previous Breakpoint"
|
|
563
|
+
)),
|
|
484
564
|
alias: 'Debug: Go to Previous Breakpoint',
|
|
485
565
|
precondition: CONTEXT_DEBUGGERS_AVAILABLE
|
|
486
566
|
});
|
|
@@ -490,7 +570,11 @@ class CloseExceptionWidgetAction extends EditorAction {
|
|
|
490
570
|
constructor() {
|
|
491
571
|
super({
|
|
492
572
|
id: 'editor.debug.action.closeExceptionWidget',
|
|
493
|
-
label: nls.localizeWithPath(
|
|
573
|
+
label: ( nls.localizeWithPath(
|
|
574
|
+
'vs/workbench/contrib/debug/browser/debugEditorActions',
|
|
575
|
+
'closeExceptionWidget',
|
|
576
|
+
"Close Exception Widget"
|
|
577
|
+
)),
|
|
494
578
|
alias: 'Close Exception Widget',
|
|
495
579
|
precondition: CONTEXT_EXCEPTION_WIDGET_VISIBLE,
|
|
496
580
|
kbOpts: {
|
|
@@ -48,13 +48,21 @@ registerColor('editor.inlineValuesForeground', {
|
|
|
48
48
|
light: '#00000080',
|
|
49
49
|
hcDark: '#ffffff80',
|
|
50
50
|
hcLight: '#00000080'
|
|
51
|
-
}, nls.localizeWithPath(
|
|
51
|
+
}, ( nls.localizeWithPath(
|
|
52
|
+
'vs/workbench/contrib/debug/browser/debugEditorContribution',
|
|
53
|
+
'editor.inlineValuesForeground',
|
|
54
|
+
"Color for the debug inline value text."
|
|
55
|
+
)));
|
|
52
56
|
registerColor('editor.inlineValuesBackground', {
|
|
53
57
|
dark: '#ffc80033',
|
|
54
58
|
light: '#ffc80033',
|
|
55
59
|
hcDark: '#ffc80033',
|
|
56
60
|
hcLight: '#ffc80033'
|
|
57
|
-
}, nls.localizeWithPath(
|
|
61
|
+
}, ( nls.localizeWithPath(
|
|
62
|
+
'vs/workbench/contrib/debug/browser/debugEditorContribution',
|
|
63
|
+
'editor.inlineValuesBackground',
|
|
64
|
+
"Color for the debug inline value background."
|
|
65
|
+
)));
|
|
58
66
|
class InlineSegment {
|
|
59
67
|
constructor(column, text) {
|
|
60
68
|
this.column = column;
|
|
@@ -68,7 +68,12 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
68
68
|
this.treeContainer = dom.append(this.complexValueContainer, $('.debug-hover-tree'));
|
|
69
69
|
this.treeContainer.setAttribute('role', 'tree');
|
|
70
70
|
const tip = dom.append(this.complexValueContainer, $('.tip'));
|
|
71
|
-
tip.textContent = nls.localizeWithPath(
|
|
71
|
+
tip.textContent = ( nls.localizeWithPath(
|
|
72
|
+
'vs/workbench/contrib/debug/browser/debugHover',
|
|
73
|
+
{ key: 'quickTip', comment: ['"switch to editor language hover" means to show the programming language hover widget instead of the debug hover'] },
|
|
74
|
+
'Hold {0} key to switch to editor language hover',
|
|
75
|
+
isMacintosh ? 'Option' : 'Alt'
|
|
76
|
+
));
|
|
72
77
|
const dataSource = ( new DebugHoverDataSource());
|
|
73
78
|
const linkeDetector = this.instantiationService.createInstance(LinkDetector);
|
|
74
79
|
this.tree = this.instantiationService.createInstance(WorkbenchAsyncDataTree, 'DebugHover', this.treeContainer, ( new DebugHoverDelegate()), [this.instantiationService.createInstance(VariablesRenderer, linkeDetector)], dataSource, {
|
|
@@ -272,10 +277,20 @@ DebugHoverWidget = DebugHoverWidget_1 = ( __decorate([
|
|
|
272
277
|
], DebugHoverWidget));
|
|
273
278
|
class DebugHoverAccessibilityProvider {
|
|
274
279
|
getWidgetAriaLabel() {
|
|
275
|
-
return nls.localizeWithPath(
|
|
280
|
+
return ( nls.localizeWithPath(
|
|
281
|
+
'vs/workbench/contrib/debug/browser/debugHover',
|
|
282
|
+
'treeAriaLabel',
|
|
283
|
+
"Debug Hover"
|
|
284
|
+
));
|
|
276
285
|
}
|
|
277
286
|
getAriaLabel(element) {
|
|
278
|
-
return nls.localizeWithPath(
|
|
287
|
+
return ( nls.localizeWithPath(
|
|
288
|
+
'vs/workbench/contrib/debug/browser/debugHover',
|
|
289
|
+
{ key: 'variableAriaLabel', comment: ['Do not translate placeholders. Placeholders are name and value of a variable.'] },
|
|
290
|
+
"{0}, value {1}, variables, debug",
|
|
291
|
+
element.name,
|
|
292
|
+
element.value
|
|
293
|
+
));
|
|
279
294
|
}
|
|
280
295
|
}
|
|
281
296
|
class DebugHoverDataSource {
|
|
@@ -14,7 +14,11 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
14
14
|
constructor(debugService, contextService, commandService, notificationService) {
|
|
15
15
|
super(DEBUG_QUICK_ACCESS_PREFIX, {
|
|
16
16
|
noResultsPick: {
|
|
17
|
-
label: localizeWithPath(
|
|
17
|
+
label: ( localizeWithPath(
|
|
18
|
+
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
19
|
+
'noDebugResults',
|
|
20
|
+
"No matching launch configurations"
|
|
21
|
+
))
|
|
18
22
|
}
|
|
19
23
|
});
|
|
20
24
|
this.debugService = debugService;
|
|
@@ -43,7 +47,11 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
43
47
|
highlights: { label: highlights },
|
|
44
48
|
buttons: [{
|
|
45
49
|
iconClass: ThemeIcon.asClassName(debugConfigure),
|
|
46
|
-
tooltip: localizeWithPath(
|
|
50
|
+
tooltip: ( localizeWithPath(
|
|
51
|
+
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
52
|
+
'customizeLaunchConfig',
|
|
53
|
+
"Configure Launch Configuration"
|
|
54
|
+
))
|
|
47
55
|
}],
|
|
48
56
|
trigger: () => {
|
|
49
57
|
config.launch.openConfigFile({ preserveFocus: false });
|
|
@@ -64,10 +72,10 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
64
72
|
const dynamicProviders = await configManager.getDynamicProviders();
|
|
65
73
|
if (dynamicProviders.length > 0) {
|
|
66
74
|
picks.push({
|
|
67
|
-
type: 'separator', label: localizeWithPath('vs/workbench/contrib/debug/browser/debugQuickAccess', {
|
|
75
|
+
type: 'separator', label: ( localizeWithPath('vs/workbench/contrib/debug/browser/debugQuickAccess', {
|
|
68
76
|
key: 'contributed',
|
|
69
77
|
comment: ['contributed is lower case because it looks better like that in UI. Nothing preceeds it. It is a name of the grouping of debug configurations.']
|
|
70
|
-
}, "contributed")
|
|
78
|
+
}, "contributed"))
|
|
71
79
|
});
|
|
72
80
|
}
|
|
73
81
|
configManager.getRecentDynamicConfigurations().forEach(({ name, type }) => {
|
|
@@ -78,7 +86,11 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
78
86
|
highlights: { label: highlights },
|
|
79
87
|
buttons: [{
|
|
80
88
|
iconClass: ThemeIcon.asClassName(debugRemoveConfig),
|
|
81
|
-
tooltip: localizeWithPath(
|
|
89
|
+
tooltip: ( localizeWithPath(
|
|
90
|
+
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
91
|
+
'removeLaunchConfig',
|
|
92
|
+
"Remove Launch Configuration"
|
|
93
|
+
))
|
|
82
94
|
}],
|
|
83
95
|
trigger: () => {
|
|
84
96
|
configManager.removeRecentDynamicConfigurations(name, type);
|
|
@@ -101,7 +113,12 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
101
113
|
dynamicProviders.forEach(provider => {
|
|
102
114
|
picks.push({
|
|
103
115
|
label: `$(folder) ${provider.label}...`,
|
|
104
|
-
ariaLabel: localizeWithPath(
|
|
116
|
+
ariaLabel: ( localizeWithPath(
|
|
117
|
+
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
118
|
+
{ key: 'providerAriaLabel', comment: ['Placeholder stands for the provider label. For example "NodeJS".'] },
|
|
119
|
+
"{0} contributed configurations",
|
|
120
|
+
provider.label
|
|
121
|
+
)),
|
|
105
122
|
accept: async () => {
|
|
106
123
|
const pick = await provider.pick();
|
|
107
124
|
if (pick) {
|
|
@@ -113,12 +130,25 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
113
130
|
});
|
|
114
131
|
const visibleLaunches = configManager.getLaunches().filter(launch => !launch.hidden);
|
|
115
132
|
if (visibleLaunches.length > 0) {
|
|
116
|
-
picks.push({ type: 'separator', label: localizeWithPath(
|
|
133
|
+
picks.push({ type: 'separator', label: ( localizeWithPath(
|
|
134
|
+
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
135
|
+
'configure',
|
|
136
|
+
"configure"
|
|
137
|
+
)) });
|
|
117
138
|
}
|
|
118
139
|
for (const launch of visibleLaunches) {
|
|
119
140
|
const label = this.contextService.getWorkbenchState() === 3 ?
|
|
120
|
-
|
|
121
|
-
|
|
141
|
+
( localizeWithPath(
|
|
142
|
+
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
143
|
+
"addConfigTo",
|
|
144
|
+
"Add Config ({0})...",
|
|
145
|
+
launch.name
|
|
146
|
+
)) :
|
|
147
|
+
( localizeWithPath(
|
|
148
|
+
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
149
|
+
'addConfiguration',
|
|
150
|
+
"Add Configuration..."
|
|
151
|
+
));
|
|
122
152
|
picks.push({
|
|
123
153
|
label,
|
|
124
154
|
description: this.contextService.getWorkbenchState() === 3 ? launch.name : '',
|
|
@@ -127,10 +127,16 @@ let DebugService = class DebugService {
|
|
|
127
127
|
if (numberOfSessions > 0) {
|
|
128
128
|
const viewContainer = this.viewDescriptorService.getViewContainerByViewId(CALLSTACK_VIEW_ID);
|
|
129
129
|
if (viewContainer) {
|
|
130
|
-
this.activity = this.activityService.showViewContainerActivity(viewContainer.id, { badge: ( new NumberBadge(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
this.activity = this.activityService.showViewContainerActivity(viewContainer.id, { badge: ( new NumberBadge(numberOfSessions, n => n === 1 ? ( nls.localizeWithPath(
|
|
131
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
132
|
+
'1activeSession',
|
|
133
|
+
"1 active session"
|
|
134
|
+
)) : ( nls.localizeWithPath(
|
|
135
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
136
|
+
'nActiveSessions',
|
|
137
|
+
"{0} active sessions",
|
|
138
|
+
n
|
|
139
|
+
)))) });
|
|
134
140
|
}
|
|
135
141
|
}
|
|
136
142
|
}));
|
|
@@ -258,7 +264,15 @@ let DebugService = class DebugService {
|
|
|
258
264
|
}
|
|
259
265
|
}
|
|
260
266
|
async startDebugging(launch, configOrName, options, saveBeforeStart = !options?.parentSession) {
|
|
261
|
-
const message = options && options.noDebug ?
|
|
267
|
+
const message = options && options.noDebug ? ( nls.localizeWithPath(
|
|
268
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
269
|
+
'runTrust',
|
|
270
|
+
"Running executes build tasks and program code from your workspace."
|
|
271
|
+
)) : ( nls.localizeWithPath(
|
|
272
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
273
|
+
'debugTrust',
|
|
274
|
+
"Debugging executes build tasks and program code from your workspace."
|
|
275
|
+
));
|
|
262
276
|
const trust = await this.workspaceTrustRequestService.requestWorkspaceTrust({ message });
|
|
263
277
|
if (!trust) {
|
|
264
278
|
return false;
|
|
@@ -333,8 +347,17 @@ let DebugService = class DebugService {
|
|
|
333
347
|
return result;
|
|
334
348
|
}
|
|
335
349
|
if (configOrName && !config) {
|
|
336
|
-
const message = !!launch ? nls.localizeWithPath(
|
|
337
|
-
|
|
350
|
+
const message = !!launch ? ( nls.localizeWithPath(
|
|
351
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
352
|
+
'configMissing',
|
|
353
|
+
"Configuration '{0}' is missing in 'launch.json'.",
|
|
354
|
+
typeof configOrName === 'string' ? configOrName : configOrName.name
|
|
355
|
+
)) :
|
|
356
|
+
( nls.localizeWithPath(
|
|
357
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
358
|
+
'launchJsonDoesNotExist',
|
|
359
|
+
"'launch.json' does not exist for passed workspace folder."
|
|
360
|
+
));
|
|
338
361
|
throw new Error(message);
|
|
339
362
|
}
|
|
340
363
|
const result = await this.createSession(launch, config, options);
|
|
@@ -406,21 +429,40 @@ let DebugService = class DebugService {
|
|
|
406
429
|
if (!dbg || (configByProviders.request !== 'attach' && configByProviders.request !== 'launch')) {
|
|
407
430
|
let message;
|
|
408
431
|
if (configByProviders.request !== 'attach' && configByProviders.request !== 'launch') {
|
|
409
|
-
message = configByProviders.request ? nls.localizeWithPath(
|
|
410
|
-
|
|
432
|
+
message = configByProviders.request ? ( nls.localizeWithPath(
|
|
433
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
434
|
+
'debugRequestNotSupported',
|
|
435
|
+
"Attribute '{0}' has an unsupported value '{1}' in the chosen debug configuration.",
|
|
436
|
+
'request',
|
|
437
|
+
configByProviders.request
|
|
438
|
+
))
|
|
439
|
+
: ( nls.localizeWithPath(
|
|
440
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
441
|
+
'debugRequesMissing',
|
|
442
|
+
"Attribute '{0}' is missing from the chosen debug configuration.",
|
|
443
|
+
'request'
|
|
444
|
+
));
|
|
411
445
|
}
|
|
412
446
|
else {
|
|
413
|
-
message = resolvedConfig.type ? nls.localizeWithPath(
|
|
414
|
-
|
|
447
|
+
message = resolvedConfig.type ? ( nls.localizeWithPath(
|
|
448
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
449
|
+
'debugTypeNotSupported',
|
|
450
|
+
"Configured debug type '{0}' is not supported.",
|
|
451
|
+
resolvedConfig.type
|
|
452
|
+
)) :
|
|
453
|
+
( nls.localizeWithPath(
|
|
454
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
455
|
+
'debugTypeMissing',
|
|
456
|
+
"Missing property 'type' for the chosen launch configuration."
|
|
457
|
+
));
|
|
415
458
|
}
|
|
416
459
|
const actionList = [];
|
|
417
|
-
actionList.push(( new Action(
|
|
418
|
-
'
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
)));
|
|
460
|
+
actionList.push(( new Action('installAdditionalDebuggers', ( nls.localizeWithPath(
|
|
461
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
462
|
+
{ key: 'installAdditionalDebuggers', comment: ['Placeholder is the debug type, so for example "node", "python"'] },
|
|
463
|
+
"Install {0} Extension",
|
|
464
|
+
resolvedConfig.type
|
|
465
|
+
)), undefined, true, async () => this.commandService.executeCommand('debug.installAdditionalDebuggers', resolvedConfig?.type))));
|
|
424
466
|
await this.showError(message, actionList);
|
|
425
467
|
return false;
|
|
426
468
|
}
|
|
@@ -440,7 +482,11 @@ let DebugService = class DebugService {
|
|
|
440
482
|
await this.showError(err.message);
|
|
441
483
|
}
|
|
442
484
|
else if (this.contextService.getWorkbenchState() === 1 ) {
|
|
443
|
-
await this.showError(nls.localizeWithPath(
|
|
485
|
+
await this.showError(( nls.localizeWithPath(
|
|
486
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
487
|
+
'noFolderWorkspaceDebugError',
|
|
488
|
+
"The active file can not be debugged. Make sure it is saved and that you have a debug extension installed for that file type."
|
|
489
|
+
)));
|
|
444
490
|
}
|
|
445
491
|
if (launch && !initCancellationToken.token.isCancellationRequested) {
|
|
446
492
|
await launch.openConfigFile({ preserveFocus: true }, initCancellationToken.token);
|
|
@@ -456,7 +502,12 @@ let DebugService = class DebugService {
|
|
|
456
502
|
async doCreateSession(sessionId, root, configuration, options) {
|
|
457
503
|
const session = this.instantiationService.createInstance(DebugSession, sessionId, configuration, root, this.model, options);
|
|
458
504
|
if (options?.startedByUser && ( this.model.getSessions().some(s => s.getLabel() === session.getLabel())) && configuration.resolved.suppressMultipleSessionWarning !== true) {
|
|
459
|
-
const result = await this.dialogService.confirm({ message: nls.localizeWithPath(
|
|
505
|
+
const result = await this.dialogService.confirm({ message: ( nls.localizeWithPath(
|
|
506
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
507
|
+
'multipleSession',
|
|
508
|
+
"'{0}' is already running. Do you want to start another instance?",
|
|
509
|
+
session.getLabel()
|
|
510
|
+
)) });
|
|
460
511
|
if (!result.confirmed) {
|
|
461
512
|
return false;
|
|
462
513
|
}
|
|
@@ -536,7 +587,12 @@ let DebugService = class DebugService {
|
|
|
536
587
|
this.disposables.add(session.onDidEndAdapter(async (adapterExitEvent) => {
|
|
537
588
|
if (adapterExitEvent) {
|
|
538
589
|
if (adapterExitEvent.error) {
|
|
539
|
-
this.notificationService.error(nls.localizeWithPath(
|
|
590
|
+
this.notificationService.error(( nls.localizeWithPath(
|
|
591
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
592
|
+
'debugAdapterCrash',
|
|
593
|
+
"Debug adapter process has terminated unexpectedly ({0})",
|
|
594
|
+
adapterExitEvent.error.message || ( adapterExitEvent.error.toString())
|
|
595
|
+
)));
|
|
540
596
|
}
|
|
541
597
|
this.telemetry.logDebugSessionStop(session, adapterExitEvent);
|
|
542
598
|
}
|
|
@@ -738,7 +794,15 @@ let DebugService = class DebugService {
|
|
|
738
794
|
const lineNumber = stackFrame.range.startLineNumber;
|
|
739
795
|
if (lineNumber >= 1 && lineNumber <= model.getLineCount()) {
|
|
740
796
|
const lineContent = control.getModel().getLineContent(lineNumber);
|
|
741
|
-
aria.alert(nls.localizeWithPath(
|
|
797
|
+
aria.alert(( nls.localizeWithPath(
|
|
798
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
799
|
+
{ key: 'debuggingPaused', comment: ['First placeholder is the file line content, second placeholder is the reason why debugging is stopped, for example "breakpoint", third is the stack frame name, and last is the line number.'] },
|
|
800
|
+
"{0}, debugging paused {1}, {2}:{3}",
|
|
801
|
+
lineContent,
|
|
802
|
+
thread && thread.stoppedDetails ? `, reason ${thread.stoppedDetails.reason}` : '',
|
|
803
|
+
stackFrame.source ? stackFrame.source.name : '',
|
|
804
|
+
stackFrame.range.startLineNumber
|
|
805
|
+
)));
|
|
742
806
|
}
|
|
743
807
|
}
|
|
744
808
|
}
|
|
@@ -804,7 +868,13 @@ let DebugService = class DebugService {
|
|
|
804
868
|
async addBreakpoints(uri, rawBreakpoints, ariaAnnounce = true) {
|
|
805
869
|
const breakpoints = this.model.addBreakpoints(uri, rawBreakpoints);
|
|
806
870
|
if (ariaAnnounce) {
|
|
807
|
-
breakpoints.forEach(bp => aria.status(nls.localizeWithPath(
|
|
871
|
+
breakpoints.forEach(bp => aria.status(( nls.localizeWithPath(
|
|
872
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
873
|
+
'breakpointAdded',
|
|
874
|
+
"Added breakpoint, line {0}, file {1}",
|
|
875
|
+
bp.lineNumber,
|
|
876
|
+
uri.fsPath
|
|
877
|
+
))));
|
|
808
878
|
}
|
|
809
879
|
this.debugStorage.storeBreakpoints(this.model);
|
|
810
880
|
await this.sendBreakpoints(uri);
|
|
@@ -824,7 +894,13 @@ let DebugService = class DebugService {
|
|
|
824
894
|
}
|
|
825
895
|
async removeBreakpoints(id) {
|
|
826
896
|
const toRemove = this.model.getBreakpoints().filter(bp => !id || bp.getId() === id);
|
|
827
|
-
toRemove.forEach(bp => aria.status(nls.localizeWithPath(
|
|
897
|
+
toRemove.forEach(bp => aria.status(( nls.localizeWithPath(
|
|
898
|
+
'vs/workbench/contrib/debug/browser/debugService',
|
|
899
|
+
'breakpointRemoved',
|
|
900
|
+
"Removed breakpoint, line {0}, file {1}",
|
|
901
|
+
bp.lineNumber,
|
|
902
|
+
bp.uri.fsPath
|
|
903
|
+
))));
|
|
828
904
|
const urisToClear = ( distinct(toRemove, bp => ( bp.originalUri.toString())).map(bp => bp.originalUri));
|
|
829
905
|
this.model.removeBreakpoints(toRemove);
|
|
830
906
|
this.debugStorage.storeBreakpoints(this.model);
|