@codingame/monaco-vscode-debug-service-override 37.2.0 → 37.3.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.
- package/package.json +6 -2
- package/session.d.ts +2 -0
- package/session.js +17 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +17 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +106 -106
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +20 -20
- package/vscode/src/vs/workbench/contrib/debug/browser/debugChatIntegration.js +17 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +24 -24
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +33 -33
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +8 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +35 -31
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +58 -58
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +15 -15
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +8 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +10 -10
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +10 -10
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibilityHelp.js +36 -36
- package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibleView.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/runAndDebugAccessibilityHelp.js +16 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +14 -14
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +8 -8
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +5 -3
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +45 -45
- package/vscode/src/vs/workbench/contrib/debug/common/debugStorage.js +12 -12
- package/vscode/src/vs/workbench/contrib/debug/common/debugVisualizers.d.ts +2 -2
- package/vscode/src/vs/workbench/contrib/debug/common/debugVisualizers.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +14 -14
- package/vscode/src/vs/workbench/contrib/debug/common/nullDebugService.d.ts +70 -0
- package/vscode/src/vs/workbench/contrib/debug/common/nullDebugService.js +137 -0
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableCommands.js +2 -2
|
@@ -32,7 +32,7 @@ import { IExtensionService } from '@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
32
32
|
import { IWorkbenchLayoutService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/layout/browser/layoutService.service';
|
|
33
33
|
import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
|
|
34
34
|
|
|
35
|
-
registerCss(debugViewlet);
|
|
35
|
+
registerCss(debugViewlet, 1);
|
|
36
36
|
let DebugViewPaneContainer = class DebugViewPaneContainer extends ViewPaneContainer {
|
|
37
37
|
constructor(
|
|
38
38
|
layoutService,
|
|
@@ -183,10 +183,10 @@ registerAction2(class extends Action2 {
|
|
|
183
183
|
title: {
|
|
184
184
|
value: DEBUG_CONFIGURE_LABEL,
|
|
185
185
|
original: "Open 'launch.json'",
|
|
186
|
-
mnemonicTitle: ( localize(
|
|
186
|
+
mnemonicTitle: ( localize(13912, "Open &&Configurations"))
|
|
187
187
|
},
|
|
188
188
|
metadata: {
|
|
189
|
-
description: ( localize2(
|
|
189
|
+
description: ( localize2(13913, "Opens the file used to configure how your program is debugged"))
|
|
190
190
|
},
|
|
191
191
|
f1: true,
|
|
192
192
|
icon: debugConfigure,
|
|
@@ -220,14 +220,14 @@ registerAction2(class extends Action2 {
|
|
|
220
220
|
if (launches.length === 1) {
|
|
221
221
|
launch = launches[0];
|
|
222
222
|
} else {
|
|
223
|
-
const picks =
|
|
223
|
+
const picks = launches.map(l => ({
|
|
224
224
|
label: l.name,
|
|
225
225
|
launch: l
|
|
226
|
-
}))
|
|
226
|
+
}));
|
|
227
227
|
const picked = await quickInputService.pick(picks, {
|
|
228
228
|
activeItem: picks[0],
|
|
229
229
|
placeHolder: ( localize(
|
|
230
|
-
|
|
230
|
+
13914,
|
|
231
231
|
"Select a workspace folder to create a launch.json file in or add it to the workspace config file"
|
|
232
232
|
))
|
|
233
233
|
});
|
|
@@ -255,7 +255,7 @@ registerAction2(class extends Action2 {
|
|
|
255
255
|
constructor() {
|
|
256
256
|
super({
|
|
257
257
|
id: "debug.toggleReplIgnoreFocus",
|
|
258
|
-
title: ( localize(
|
|
258
|
+
title: ( localize(13915, "Debug Console")),
|
|
259
259
|
toggled: ( ContextKeyExpr.has(`view.${REPL_VIEW_ID}.visible`)),
|
|
260
260
|
menu: [{
|
|
261
261
|
id: ViewsSubMenu,
|
|
@@ -279,7 +279,7 @@ MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
|
|
|
279
279
|
order: 10,
|
|
280
280
|
command: {
|
|
281
281
|
id: SELECT_AND_START_ID,
|
|
282
|
-
title: ( localize(
|
|
282
|
+
title: ( localize(13916, "Start Additional Session"))
|
|
283
283
|
}
|
|
284
284
|
});
|
|
285
285
|
|
|
@@ -64,7 +64,7 @@ const disassemblyNotAvailable = {
|
|
|
64
64
|
address: 0n,
|
|
65
65
|
instruction: {
|
|
66
66
|
address: "-1",
|
|
67
|
-
instruction: ( localize(
|
|
67
|
+
instruction: ( localize(13917, "Disassembly not available."))
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
@@ -132,7 +132,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
|
132
132
|
);
|
|
133
133
|
}
|
|
134
134
|
get currentInstructionAddresses() {
|
|
135
|
-
return
|
|
135
|
+
return this._debugService.getModel().getSessions(false).map(session => session.getAllThreads()).reduce((prev, curr) => prev.concat(curr), []).map(thread => thread.getTopStackFrame()).map(frame => frame?.instructionPointerReference).map(ref => ref ? this.getReferenceAddress(ref) : undefined);
|
|
136
136
|
}
|
|
137
137
|
get focusedCurrentInstructionReference() {
|
|
138
138
|
return this._debugService.getViewModel().focusedStackFrame?.thread.getTopStackFrame()?.instructionPointerReference;
|
|
@@ -205,7 +205,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
|
205
205
|
return row;
|
|
206
206
|
}
|
|
207
207
|
}, {
|
|
208
|
-
label: ( localize(
|
|
208
|
+
label: ( localize(13918, "instructions")),
|
|
209
209
|
tooltip: "",
|
|
210
210
|
weight: 0.3,
|
|
211
211
|
templateId: InstructionRenderer.TEMPLATE_ID,
|
|
@@ -458,7 +458,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
|
458
458
|
return 0;
|
|
459
459
|
}
|
|
460
460
|
const refBaseAddress = this._referenceToMemoryAddress.get(instructionReference);
|
|
461
|
-
const bps =
|
|
461
|
+
const bps = this._instructionBpList.map(p => {
|
|
462
462
|
const base = this._referenceToMemoryAddress.get(p.instructionReference);
|
|
463
463
|
if (!base) {
|
|
464
464
|
return undefined;
|
|
@@ -467,7 +467,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
|
467
467
|
enabled: p.enabled,
|
|
468
468
|
address: base + BigInt(p.offset || 0)
|
|
469
469
|
};
|
|
470
|
-
})
|
|
470
|
+
});
|
|
471
471
|
if (refBaseAddress !== undefined) {
|
|
472
472
|
for (const entry of newEntries) {
|
|
473
473
|
const bp = bps.find(p => p?.address === entry.address);
|
|
@@ -825,7 +825,7 @@ let InstructionRenderer = class InstructionRenderer extends Disposable {
|
|
|
825
825
|
};
|
|
826
826
|
this.editorService.openEditor({
|
|
827
827
|
resource: sourceURI,
|
|
828
|
-
description: ( localize(
|
|
828
|
+
description: ( localize(13919, "from disassembly")),
|
|
829
829
|
options: {
|
|
830
830
|
preserveFocus: false,
|
|
831
831
|
selection: selection,
|
|
@@ -860,18 +860,18 @@ let InstructionRenderer = class InstructionRenderer extends Disposable {
|
|
|
860
860
|
InstructionRenderer = InstructionRenderer_1 = ( __decorate([( __param(1, IThemeService)), ( __param(2, IEditorService)), ( __param(3, ITextModelService)), ( __param(4, IUriIdentityService)), ( __param(5, ILogService))], InstructionRenderer));
|
|
861
861
|
class AccessibilityProvider {
|
|
862
862
|
getWidgetAriaLabel() {
|
|
863
|
-
return localize(
|
|
863
|
+
return localize(13920, "Disassembly View");
|
|
864
864
|
}
|
|
865
865
|
getAriaLabel(element) {
|
|
866
866
|
let label = "";
|
|
867
867
|
const instruction = element.instruction;
|
|
868
868
|
if (instruction.address !== "-1") {
|
|
869
|
-
label += `${( localize(
|
|
869
|
+
label += `${( localize(13921, "Address"))}: ${instruction.address}`;
|
|
870
870
|
}
|
|
871
871
|
if (instruction.instructionBytes) {
|
|
872
|
-
label += `, ${( localize(
|
|
872
|
+
label += `, ${( localize(13922, "Bytes"))}: ${instruction.instructionBytes}`;
|
|
873
873
|
}
|
|
874
|
-
label += `, ${( localize(
|
|
874
|
+
label += `, ${( localize(13923, "Instruction"))}: ${instruction.instruction}`;
|
|
875
875
|
return label;
|
|
876
876
|
}
|
|
877
877
|
}
|
|
@@ -324,7 +324,7 @@ function asTreeElement(item, viewState) {
|
|
|
324
324
|
element: item,
|
|
325
325
|
collapsed,
|
|
326
326
|
collapsible: item.hasChildren(),
|
|
327
|
-
children:
|
|
327
|
+
children: children.map(i => asTreeElement(i, viewState))
|
|
328
328
|
};
|
|
329
329
|
}
|
|
330
330
|
let LoadedScriptsView = class LoadedScriptsView extends ViewPane {
|
|
@@ -403,7 +403,7 @@ let LoadedScriptsView = class LoadedScriptsView extends ViewPane {
|
|
|
403
403
|
return element.getLabel();
|
|
404
404
|
},
|
|
405
405
|
getCompressedNodeKeyboardNavigationLabel: elements => {
|
|
406
|
-
return
|
|
406
|
+
return elements.map(e => e.getLabel()).join("/");
|
|
407
407
|
}
|
|
408
408
|
},
|
|
409
409
|
filter: this.filter,
|
|
@@ -593,7 +593,7 @@ class LoadedScriptsRenderer {
|
|
|
593
593
|
}
|
|
594
594
|
renderCompressedElements(node, index, data) {
|
|
595
595
|
const element = node.element.elements[node.element.elements.length - 1];
|
|
596
|
-
const labels =
|
|
596
|
+
const labels = node.element.elements.map(e => e.getLabel());
|
|
597
597
|
this.render(element, labels, data, node.filterData);
|
|
598
598
|
}
|
|
599
599
|
render(element, labels, data, filterData) {
|
|
@@ -606,7 +606,7 @@ class LoadedScriptsRenderer {
|
|
|
606
606
|
if (element instanceof RootFolderTreeItem) {
|
|
607
607
|
options.fileKind = FileKind.ROOT_FOLDER;
|
|
608
608
|
} else if (element instanceof SessionTreeItem) {
|
|
609
|
-
options.title = ( localize(
|
|
609
|
+
options.title = ( localize(13936, "Debug Session"));
|
|
610
610
|
options.hideIcon = true;
|
|
611
611
|
} else if (element instanceof BaseTreeItem) {
|
|
612
612
|
const src = element.getSource();
|
|
@@ -626,19 +626,19 @@ class LoadedScriptsRenderer {
|
|
|
626
626
|
}
|
|
627
627
|
class LoadedSciptsAccessibilityProvider {
|
|
628
628
|
getWidgetAriaLabel() {
|
|
629
|
-
return localize(
|
|
629
|
+
return localize(13937, "Debug Loaded Scripts");
|
|
630
630
|
}
|
|
631
631
|
getAriaLabel(element) {
|
|
632
632
|
if (element instanceof RootFolderTreeItem) {
|
|
633
|
-
return localize(
|
|
633
|
+
return localize(13938, "Workspace folder {0}, loaded script, debug", element.getLabel());
|
|
634
634
|
}
|
|
635
635
|
if (element instanceof SessionTreeItem) {
|
|
636
|
-
return localize(
|
|
636
|
+
return localize(13939, "Session {0}, loaded script, debug", element.getLabel());
|
|
637
637
|
}
|
|
638
638
|
if (element.hasChildren()) {
|
|
639
|
-
return localize(
|
|
639
|
+
return localize(13940, "Folder {0}, loaded script, debug", element.getLabel());
|
|
640
640
|
} else {
|
|
641
|
-
return localize(
|
|
641
|
+
return localize(13941, "{0}, loaded script, debug", element.getLabel());
|
|
642
642
|
}
|
|
643
643
|
}
|
|
644
644
|
}
|
|
@@ -665,7 +665,7 @@ registerAction2(class Collapse extends ViewAction {
|
|
|
665
665
|
super({
|
|
666
666
|
id: "loadedScripts.collapse",
|
|
667
667
|
viewId: LOADED_SCRIPTS_VIEW_ID,
|
|
668
|
-
title: ( localize(
|
|
668
|
+
title: ( localize(13942, "Collapse All")),
|
|
669
669
|
f1: false,
|
|
670
670
|
icon: Codicon.collapseAll,
|
|
671
671
|
menu: {
|
|
@@ -202,7 +202,7 @@ let RawDebugSession = class RawDebugSession {
|
|
|
202
202
|
}
|
|
203
203
|
async start() {
|
|
204
204
|
if (!this.debugAdapter) {
|
|
205
|
-
return Promise.reject(( new Error(( localize(
|
|
205
|
+
return Promise.reject(( new Error(( localize(13943, "No debug adapter, can not start debug session.")))));
|
|
206
206
|
}
|
|
207
207
|
await this.debugAdapter.startSession();
|
|
208
208
|
this.startTime = ( new Date()).getTime();
|
|
@@ -535,10 +535,10 @@ let RawDebugSession = class RawDebugSession {
|
|
|
535
535
|
} = await this.dialogSerivce.confirm({
|
|
536
536
|
type: Severity.Warning,
|
|
537
537
|
message: ( localize(
|
|
538
|
-
|
|
538
|
+
13944,
|
|
539
539
|
"The debugger needs to open a new tab or window for the debuggee but the browser prevented this. You must give permission to continue."
|
|
540
540
|
)),
|
|
541
|
-
primaryButton: ( localize(
|
|
541
|
+
primaryButton: ( localize(13945, "&&Continue"))
|
|
542
542
|
});
|
|
543
543
|
if (confirmed) {
|
|
544
544
|
result = await this.launchVsCode(request.arguments);
|
|
@@ -628,7 +628,7 @@ let RawDebugSession = class RawDebugSession {
|
|
|
628
628
|
if (this.inShutdown) {
|
|
629
629
|
completeDispatch(undefined);
|
|
630
630
|
} else {
|
|
631
|
-
errorDispatch(( new Error(( localize(
|
|
631
|
+
errorDispatch(( new Error(( localize(13946, "No debugger available found. Can not send '{0}'.", command)))));
|
|
632
632
|
}
|
|
633
633
|
return;
|
|
634
634
|
}
|
|
@@ -665,7 +665,7 @@ let RawDebugSession = class RawDebugSession {
|
|
|
665
665
|
const userMessage = error ? formatPII(error.format, false, error.variables) : errorMessage;
|
|
666
666
|
const url = error?.url;
|
|
667
667
|
if (error && url) {
|
|
668
|
-
const label = error.urlLabel ? error.urlLabel : ( localize(
|
|
668
|
+
const label = error.urlLabel ? error.urlLabel : ( localize(13947, "More Info"));
|
|
669
669
|
const uri = ( URI.parse(url));
|
|
670
670
|
const actionId = uri.scheme === Schemas.command ? "debug.moreInfo.command" : "debug.moreInfo";
|
|
671
671
|
return createErrorWithActions(userMessage, [toAction({
|
|
@@ -39,106 +39,106 @@ class ReplAccessibilityHelpProvider extends Disposable {
|
|
|
39
39
|
}
|
|
40
40
|
provideContent() {
|
|
41
41
|
const content = [];
|
|
42
|
-
content.push(( localize(
|
|
42
|
+
content.push(( localize(13966, "Accessibility Help: Debug Console Filter")));
|
|
43
43
|
content.push(( localize(
|
|
44
|
-
|
|
44
|
+
13967,
|
|
45
45
|
"You are in the Debug Console filter input. This is a filter that instantly hides console messages that do not match your filter, showing only the messages you want to see."
|
|
46
46
|
)));
|
|
47
47
|
content.push("");
|
|
48
|
-
content.push(( localize(
|
|
49
|
-
content.push(( localize(
|
|
48
|
+
content.push(( localize(13968, "Current Filter Status:")));
|
|
49
|
+
content.push(( localize(13969, "You are filtering the console output.")));
|
|
50
50
|
content.push("");
|
|
51
|
-
content.push(( localize(
|
|
51
|
+
content.push(( localize(13970, "Inside the Filter Input (What It Does):")));
|
|
52
52
|
content.push(( localize(
|
|
53
|
-
|
|
53
|
+
13971,
|
|
54
54
|
"While you are in the filter input, your focus stays in the field. You can type, edit, or adjust your filter without leaving the input. As you type, the console instantly updates to show only messages matching your filter."
|
|
55
55
|
)));
|
|
56
56
|
content.push("");
|
|
57
|
-
content.push(( localize(
|
|
57
|
+
content.push(( localize(13972, "What Happens When You Filter:")));
|
|
58
58
|
content.push(( localize(
|
|
59
|
-
|
|
59
|
+
13973,
|
|
60
60
|
"Each time you change the filter text, the console instantly regenerates to show only matching messages. Your screen reader announces how many messages are now visible. This is live feedback: text searches console output, variable values, and log messages."
|
|
61
61
|
)));
|
|
62
62
|
content.push("");
|
|
63
|
-
content.push(( localize(
|
|
63
|
+
content.push(( localize(13974, "Focus Behavior (Important):")));
|
|
64
64
|
content.push(( localize(
|
|
65
|
-
|
|
65
|
+
13975,
|
|
66
66
|
"Your focus stays in the filter input while the console updates in the background. This is intentional, so you can keep typing without losing your place."
|
|
67
67
|
)));
|
|
68
68
|
content.push(( localize(
|
|
69
|
-
|
|
69
|
+
13976,
|
|
70
70
|
"If you want to review the filtered console output, press Down Arrow to move focus from the filter into the console messages above."
|
|
71
71
|
)));
|
|
72
72
|
content.push(( localize(
|
|
73
|
-
|
|
73
|
+
13977,
|
|
74
74
|
"Important: The console input area is at the bottom of the console, separate from the filter. To evaluate expressions, navigate to the console input (after the filtered messages) and type your expression."
|
|
75
75
|
)));
|
|
76
76
|
content.push("");
|
|
77
|
-
content.push(( localize(
|
|
77
|
+
content.push(( localize(13978, "Distinguishing Filter from Console Input:")));
|
|
78
78
|
content.push(( localize(
|
|
79
|
-
|
|
79
|
+
13979,
|
|
80
80
|
"The filter input is where you are now. It hides or shows messages without running code."
|
|
81
81
|
)));
|
|
82
82
|
content.push(( localize(
|
|
83
|
-
|
|
83
|
+
13980,
|
|
84
84
|
"The console input is at the bottom of the console, after all displayed messages. That is where you type and press Enter to evaluate expressions during debugging."
|
|
85
85
|
)));
|
|
86
86
|
content.push(( localize(
|
|
87
|
-
|
|
87
|
+
13981,
|
|
88
88
|
"To switch to the console input and evaluate an expression, use {0} to focus the console input.",
|
|
89
89
|
"<keybinding:workbench.panel.repl.view.focus>"
|
|
90
90
|
)));
|
|
91
91
|
content.push("");
|
|
92
|
-
content.push(( localize(
|
|
93
|
-
content.push(( localize(
|
|
92
|
+
content.push(( localize(13982, "Filter Syntax and Patterns:")));
|
|
93
|
+
content.push(( localize(13983, "- Type text: Shows only messages containing that text.")));
|
|
94
94
|
content.push(( localize(
|
|
95
|
-
|
|
95
|
+
13984,
|
|
96
96
|
"- !text (exclude): Hides messages containing the text, showing all others."
|
|
97
97
|
)));
|
|
98
98
|
content.push("");
|
|
99
|
-
content.push(( localize(
|
|
100
|
-
content.push(( localize(
|
|
101
|
-
content.push(( localize(
|
|
102
|
-
content.push(( localize(
|
|
99
|
+
content.push(( localize(13985, "Keyboard Navigation Summary:")));
|
|
100
|
+
content.push(( localize(13986, "- Down Arrow: Move focus from filter into the console output.")));
|
|
101
|
+
content.push(( localize(13987, "- Tab: Move to other console controls if available.")));
|
|
102
|
+
content.push(( localize(13988, "- Escape: Clear the filter or close the filter.")));
|
|
103
103
|
content.push(( localize(
|
|
104
|
-
|
|
104
|
+
13989,
|
|
105
105
|
"- {0}: Focus the console input to evaluate expressions.",
|
|
106
106
|
"<keybinding:workbench.panel.repl.view.focus>"
|
|
107
107
|
)));
|
|
108
108
|
content.push("");
|
|
109
109
|
content.push(( localize(
|
|
110
|
-
|
|
110
|
+
13990,
|
|
111
111
|
"Settings You Can Adjust ({0} opens Settings):",
|
|
112
112
|
"<keybinding:workbench.action.openSettings>"
|
|
113
113
|
)));
|
|
114
|
-
content.push(( localize(
|
|
114
|
+
content.push(( localize(13991, "These settings affect the Debug Console.")));
|
|
115
115
|
content.push(( localize(
|
|
116
|
-
|
|
116
|
+
13992,
|
|
117
117
|
"- `accessibility.verbosity.find`: Controls whether the filter input announces the Accessibility Help hint."
|
|
118
118
|
)));
|
|
119
119
|
content.push(( localize(
|
|
120
|
-
|
|
120
|
+
13993,
|
|
121
121
|
"- `debug.console.closeOnEnd`: Automatically close the Debug Console when the debugging session ends."
|
|
122
122
|
)));
|
|
123
|
-
content.push(( localize(
|
|
124
|
-
content.push(( localize(
|
|
125
|
-
content.push(( localize(
|
|
123
|
+
content.push(( localize(13994, "- `debug.console.fontSize`: Font size in the console.")));
|
|
124
|
+
content.push(( localize(13995, "- `debug.console.fontFamily`: Font family in the console.")));
|
|
125
|
+
content.push(( localize(13996, "- `debug.console.wordWrap`: Wrap lines in the console.")));
|
|
126
126
|
content.push(( localize(
|
|
127
|
-
|
|
127
|
+
13997,
|
|
128
128
|
"- `debug.console.historySuggestions`: Suggest previously typed input."
|
|
129
129
|
)));
|
|
130
130
|
content.push(( localize(
|
|
131
|
-
|
|
131
|
+
13998,
|
|
132
132
|
"- `debug.console.collapseIdenticalLines`: Collapse repeated messages with a count."
|
|
133
133
|
)));
|
|
134
134
|
content.push(( localize(
|
|
135
|
-
|
|
135
|
+
13999,
|
|
136
136
|
"- `debug.console.maximumLines`: Maximum number of messages to keep in the console."
|
|
137
137
|
)));
|
|
138
138
|
content.push("");
|
|
139
|
-
content.push(( localize(
|
|
139
|
+
content.push(( localize(14000, "Closing:")));
|
|
140
140
|
content.push(( localize(
|
|
141
|
-
|
|
141
|
+
14001,
|
|
142
142
|
"Press Escape to clear the filter, or close the Debug Console. Your filter text is preserved if you reopen the console."
|
|
143
143
|
)));
|
|
144
144
|
return content.join("\n");
|
|
@@ -59,7 +59,7 @@ let ReplOutputAccessibleViewProvider = class ReplOutputAccessibleViewProvider ex
|
|
|
59
59
|
if (!this._content) {
|
|
60
60
|
this._updateContent(elements);
|
|
61
61
|
}
|
|
62
|
-
return this._content ??
|
|
62
|
+
return this._content ?? elements.map(e => ( e.toString(true))).join("\n");
|
|
63
63
|
}
|
|
64
64
|
onClose() {
|
|
65
65
|
this._content = undefined;
|
|
@@ -54,62 +54,62 @@ let RunAndDebugAccessibilityHelpProvider = class RunAndDebugAccessibilityHelpPro
|
|
|
54
54
|
}
|
|
55
55
|
provideContent() {
|
|
56
56
|
return [( localize(
|
|
57
|
-
|
|
57
|
+
14007,
|
|
58
58
|
"The Show Run and Debug view command{0} will open the current view.",
|
|
59
59
|
"<keybinding:workbench.view.debug>"
|
|
60
60
|
)), ( localize(
|
|
61
|
-
|
|
61
|
+
14008,
|
|
62
62
|
"The Debug: Start Debugging command{0} will start a debug session.",
|
|
63
63
|
"<keybinding:workbench.action.debug.start>"
|
|
64
64
|
)), ( localize(
|
|
65
|
-
|
|
65
|
+
14009,
|
|
66
66
|
"Access debug output and evaluate expressions in the debug console, which can be focused with{0}.",
|
|
67
67
|
"<keybinding:workbench.panel.repl.view.focus>"
|
|
68
|
-
)), AccessibilityHelpNLS.setBreakpoint, AccessibilityHelpNLS.addToWatch, ( localize(
|
|
69
|
-
|
|
68
|
+
)), AccessibilityHelpNLS.setBreakpoint, AccessibilityHelpNLS.addToWatch, ( localize(14010, "Once debugging, the following commands will be available:")), ( localize(
|
|
69
|
+
14011,
|
|
70
70
|
"- Debug: Restart Debugging command{0} will restart the current debug session.",
|
|
71
71
|
"<keybinding:workbench.action.debug.restart>"
|
|
72
72
|
)), ( localize(
|
|
73
|
-
|
|
73
|
+
14012,
|
|
74
74
|
"- Debug: Stop Debugging command{0} will stop the current debugging session.",
|
|
75
75
|
"<keybinding:workbench.action.debug.stop>"
|
|
76
76
|
)), ( localize(
|
|
77
|
-
|
|
77
|
+
14013,
|
|
78
78
|
"- Debug: Continue command{0} will continue execution until the next breakpoint.",
|
|
79
79
|
"<keybinding:workbench.action.debug.continue>"
|
|
80
80
|
)), ( localize(
|
|
81
|
-
|
|
81
|
+
14014,
|
|
82
82
|
"- Debug: Step Into command{0} will step into the next function call.",
|
|
83
83
|
"<keybinding:workbench.action.debug.stepInto>"
|
|
84
84
|
)), ( localize(
|
|
85
|
-
|
|
85
|
+
14015,
|
|
86
86
|
"- Debug: Step Over command{0} will step over the current function call.",
|
|
87
87
|
"<keybinding:workbench.action.debug.stepOver>"
|
|
88
88
|
)), ( localize(
|
|
89
|
-
|
|
89
|
+
14016,
|
|
90
90
|
"- Debug: Step Out command{0} will step out of the current function call.",
|
|
91
91
|
"<keybinding:workbench.action.debug.stepOut>"
|
|
92
92
|
)), ( localize(
|
|
93
|
-
|
|
93
|
+
14017,
|
|
94
94
|
"The debug viewlet is comprised of several views that can be focused with the following commands or navigated to via tab then arrow keys:"
|
|
95
95
|
)), ( localize(
|
|
96
|
-
|
|
96
|
+
14018,
|
|
97
97
|
"- Debug: Focus Breakpoints View command{0} will focus the breakpoints view.",
|
|
98
98
|
"<keybinding:workbench.debug.action.focusBreakpointsView>"
|
|
99
99
|
)), ( localize(
|
|
100
|
-
|
|
100
|
+
14019,
|
|
101
101
|
"- Debug: Focus Call Stack View command{0} will focus the call stack view.",
|
|
102
102
|
"<keybinding:workbench.debug.action.focusCallStackView>"
|
|
103
103
|
)), ( localize(
|
|
104
|
-
|
|
104
|
+
14020,
|
|
105
105
|
"- Debug: Focus Variables View command{0} will focus the variables view.",
|
|
106
106
|
"<keybinding:workbench.debug.action.focusVariablesView>"
|
|
107
107
|
)), ( localize(
|
|
108
|
-
|
|
108
|
+
14021,
|
|
109
109
|
"- Debug: Focus Watch View command{0} will focus the watch view.",
|
|
110
110
|
"<keybinding:workbench.debug.action.focusWatchView>"
|
|
111
111
|
)), ( localize(
|
|
112
|
-
|
|
112
|
+
14022,
|
|
113
113
|
"The setting {0} controls whether watch variable changes are announced.",
|
|
114
114
|
"accessibility.debugWatchVariableAnnouncements"
|
|
115
115
|
))].join("\n");
|
|
@@ -27,7 +27,7 @@ const STATUS_BAR_DEBUGGING_BACKGROUND = registerColor("statusBar.debuggingBackgr
|
|
|
27
27
|
hcDark: "#BA592C",
|
|
28
28
|
hcLight: "#B5200D"
|
|
29
29
|
}, ( localize(
|
|
30
|
-
|
|
30
|
+
14023,
|
|
31
31
|
"Status bar background color when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
32
32
|
)));
|
|
33
33
|
const STATUS_BAR_DEBUGGING_FOREGROUND = registerColor("statusBar.debuggingForeground", {
|
|
@@ -36,14 +36,14 @@ const STATUS_BAR_DEBUGGING_FOREGROUND = registerColor("statusBar.debuggingForegr
|
|
|
36
36
|
hcDark: STATUS_BAR_FOREGROUND,
|
|
37
37
|
hcLight: "#FFFFFF"
|
|
38
38
|
}, ( localize(
|
|
39
|
-
|
|
39
|
+
14024,
|
|
40
40
|
"Status bar foreground color when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
41
41
|
)));
|
|
42
42
|
const STATUS_BAR_DEBUGGING_BORDER = registerColor("statusBar.debuggingBorder", STATUS_BAR_BORDER, ( localize(
|
|
43
|
-
|
|
43
|
+
14025,
|
|
44
44
|
"Status bar border color separating to the sidebar and editor when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
45
45
|
)));
|
|
46
|
-
const COMMAND_CENTER_DEBUGGING_BACKGROUND = registerColor("commandCenter.debuggingBackground", ( transparent(STATUS_BAR_DEBUGGING_BACKGROUND, 0.258)), ( localize(
|
|
46
|
+
const COMMAND_CENTER_DEBUGGING_BACKGROUND = registerColor("commandCenter.debuggingBackground", ( transparent(STATUS_BAR_DEBUGGING_BACKGROUND, 0.258)), ( localize(14026, "Command center background color when a program is being debugged")), true);
|
|
47
47
|
let StatusBarColorProvider = class StatusBarColorProvider {
|
|
48
48
|
set enabled(enabled) {
|
|
49
49
|
if (enabled === !!this.disposable) {
|
|
@@ -247,9 +247,9 @@ class WatchExpressionsDataSource extends AbstractExpressionDataSource {
|
|
|
247
247
|
const debugService = element;
|
|
248
248
|
const watchExpressions = debugService.getModel().getWatchExpressions();
|
|
249
249
|
const viewModel = debugService.getViewModel();
|
|
250
|
-
return Promise.all(
|
|
250
|
+
return Promise.all(watchExpressions.map(
|
|
251
251
|
we => !!we.name && !useCachedEvaluation ? we.evaluate(viewModel.focusedSession, viewModel.focusedStackFrame, "watch").then(() => we) : Promise.resolve(we)
|
|
252
|
-
))
|
|
252
|
+
));
|
|
253
253
|
}
|
|
254
254
|
return element.getChildren();
|
|
255
255
|
}
|
|
@@ -320,7 +320,7 @@ let WatchExpressionsRenderer = class WatchExpressionsRenderer extends AbstractEx
|
|
|
320
320
|
if (settingValue) {
|
|
321
321
|
return {
|
|
322
322
|
initialValue: expression.value,
|
|
323
|
-
ariaLabel: ( localize(
|
|
323
|
+
ariaLabel: ( localize(14035, "Type new value")),
|
|
324
324
|
onFinish: async (value, success) => {
|
|
325
325
|
if (success && value) {
|
|
326
326
|
const focusedFrame = this.debugService.getViewModel().focusedStackFrame;
|
|
@@ -334,8 +334,8 @@ let WatchExpressionsRenderer = class WatchExpressionsRenderer extends AbstractEx
|
|
|
334
334
|
}
|
|
335
335
|
return {
|
|
336
336
|
initialValue: expression.name ? expression.name : "",
|
|
337
|
-
ariaLabel: ( localize(
|
|
338
|
-
placeholder: ( localize(
|
|
337
|
+
ariaLabel: ( localize(14036, "Type watch expression")),
|
|
338
|
+
placeholder: ( localize(14037, "Expression to watch")),
|
|
339
339
|
onFinish: (value, success) => {
|
|
340
340
|
if (success && value) {
|
|
341
341
|
this.debugService.renameWatchExpression(expression.getId(), value);
|
|
@@ -431,13 +431,13 @@ async function getContextForWatchExpressionMenuWithDataAccess(parentContext, exp
|
|
|
431
431
|
}
|
|
432
432
|
class WatchExpressionsAccessibilityProvider {
|
|
433
433
|
getWidgetAriaLabel() {
|
|
434
|
-
return localize(
|
|
434
|
+
return localize(14038, "Debug Watch Expressions");
|
|
435
435
|
}
|
|
436
436
|
getAriaLabel(element) {
|
|
437
437
|
if (element instanceof Expression) {
|
|
438
|
-
return localize(
|
|
438
|
+
return localize(14039, "{0}, value {1}", element.name, element.value);
|
|
439
439
|
}
|
|
440
|
-
return localize(
|
|
440
|
+
return localize(14040, "{0}, value {1}", element.name, element.value);
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
443
|
class WatchExpressionsDragAndDrop {
|
|
@@ -528,7 +528,7 @@ registerAction2(class Collapse extends ViewAction {
|
|
|
528
528
|
super({
|
|
529
529
|
id: "watch.collapse",
|
|
530
530
|
viewId: WATCH_VIEW_ID,
|
|
531
|
-
title: ( localize(
|
|
531
|
+
title: ( localize(14041, "Collapse All")),
|
|
532
532
|
f1: false,
|
|
533
533
|
icon: Codicon.collapseAll,
|
|
534
534
|
precondition: CONTEXT_WATCH_EXPRESSIONS_EXIST,
|
|
@@ -545,7 +545,7 @@ registerAction2(class Collapse extends ViewAction {
|
|
|
545
545
|
}
|
|
546
546
|
});
|
|
547
547
|
const ADD_WATCH_ID = "workbench.debug.viewlet.action.addWatchExpression";
|
|
548
|
-
const ADD_WATCH_LABEL = ( localize(
|
|
548
|
+
const ADD_WATCH_LABEL = ( localize(14042, "Add Expression"));
|
|
549
549
|
registerAction2(class AddWatchExpressionAction extends Action2 {
|
|
550
550
|
constructor() {
|
|
551
551
|
super({
|
|
@@ -566,7 +566,7 @@ registerAction2(class AddWatchExpressionAction extends Action2 {
|
|
|
566
566
|
}
|
|
567
567
|
});
|
|
568
568
|
const REMOVE_WATCH_EXPRESSIONS_COMMAND_ID = "workbench.debug.viewlet.action.removeAllWatchExpressions";
|
|
569
|
-
const REMOVE_WATCH_EXPRESSIONS_LABEL = ( localize(
|
|
569
|
+
const REMOVE_WATCH_EXPRESSIONS_LABEL = ( localize(14043, "Remove All Expressions"));
|
|
570
570
|
registerAction2(class RemoveAllWatchExpressionsAction extends Action2 {
|
|
571
571
|
constructor() {
|
|
572
572
|
super({
|
|
@@ -592,7 +592,7 @@ registerAction2(class CopyExpression extends ViewAction {
|
|
|
592
592
|
constructor() {
|
|
593
593
|
super({
|
|
594
594
|
id: COPY_WATCH_EXPRESSION_COMMAND_ID,
|
|
595
|
-
title: ( localize(
|
|
595
|
+
title: ( localize(14044, "Copy Expression")),
|
|
596
596
|
f1: false,
|
|
597
597
|
viewId: WATCH_VIEW_ID,
|
|
598
598
|
precondition: CONTEXT_WATCH_EXPRESSIONS_EXIST,
|
|
@@ -624,7 +624,7 @@ registerAction2(class CopyAllWatchExpressions extends ViewAction {
|
|
|
624
624
|
constructor() {
|
|
625
625
|
super({
|
|
626
626
|
id: COPY_ALL_WATCH_EXPRESSIONS_COMMAND_ID,
|
|
627
|
-
title: ( localize(
|
|
627
|
+
title: ( localize(14045, "Copy All")),
|
|
628
628
|
f1: false,
|
|
629
629
|
viewId: WATCH_VIEW_ID,
|
|
630
630
|
precondition: CONTEXT_WATCH_EXPRESSIONS_EXIST,
|
|
@@ -639,7 +639,7 @@ registerAction2(class CopyAllWatchExpressions extends ViewAction {
|
|
|
639
639
|
const clipboardService = accessor.get(IClipboardService);
|
|
640
640
|
const debugService = accessor.get(IDebugService);
|
|
641
641
|
const watches = debugService.getModel().getWatchExpressions();
|
|
642
|
-
const lines =
|
|
642
|
+
const lines = watches.map(w => `${w.name}: ${w.value}`);
|
|
643
643
|
clipboardService.writeText(lines.join("\n"));
|
|
644
644
|
}
|
|
645
645
|
});
|