@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
|
@@ -586,9 +586,12 @@ let DebugSession = class DebugSession {
|
|
|
586
586
|
}
|
|
587
587
|
loadSource(resource) {
|
|
588
588
|
if (!this.raw) {
|
|
589
|
-
return Promise.reject(( new Error(
|
|
590
|
-
|
|
591
|
-
|
|
589
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
590
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
591
|
+
'noDebugAdapter',
|
|
592
|
+
"No debugger available, can not send '{0}'",
|
|
593
|
+
'loadSource'
|
|
594
|
+
)))));
|
|
592
595
|
}
|
|
593
596
|
const source = this.getSourceForUri(resource);
|
|
594
597
|
let rawSource;
|
|
@@ -603,9 +606,12 @@ let DebugSession = class DebugSession {
|
|
|
603
606
|
}
|
|
604
607
|
async getLoadedSources() {
|
|
605
608
|
if (!this.raw) {
|
|
606
|
-
return Promise.reject(( new Error(
|
|
607
|
-
|
|
608
|
-
|
|
609
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
610
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
611
|
+
'noDebugAdapter',
|
|
612
|
+
"No debugger available, can not send '{0}'",
|
|
613
|
+
'getLoadedSources'
|
|
614
|
+
)))));
|
|
609
615
|
}
|
|
610
616
|
const response = await this.raw.loadedSources({});
|
|
611
617
|
if (response && response.body && response.body.sources) {
|
|
@@ -617,9 +623,12 @@ let DebugSession = class DebugSession {
|
|
|
617
623
|
}
|
|
618
624
|
async completions(frameId, threadId, text, position, overwriteBefore, token) {
|
|
619
625
|
if (!this.raw) {
|
|
620
|
-
return Promise.reject(( new Error(
|
|
621
|
-
|
|
622
|
-
|
|
626
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
627
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
628
|
+
'noDebugAdapter',
|
|
629
|
+
"No debugger available, can not send '{0}'",
|
|
630
|
+
'completions'
|
|
631
|
+
)))));
|
|
623
632
|
}
|
|
624
633
|
const sessionCancelationToken = this.getNewCancellationToken(threadId, token);
|
|
625
634
|
return this.raw.completions({
|
|
@@ -631,43 +640,58 @@ let DebugSession = class DebugSession {
|
|
|
631
640
|
}
|
|
632
641
|
async stepInTargets(frameId) {
|
|
633
642
|
if (!this.raw) {
|
|
634
|
-
return Promise.reject(( new Error(
|
|
635
|
-
|
|
636
|
-
|
|
643
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
644
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
645
|
+
'noDebugAdapter',
|
|
646
|
+
"No debugger available, can not send '{0}'",
|
|
647
|
+
'stepInTargets'
|
|
648
|
+
)))));
|
|
637
649
|
}
|
|
638
650
|
const response = await this.raw.stepInTargets({ frameId });
|
|
639
651
|
return response?.body.targets;
|
|
640
652
|
}
|
|
641
653
|
async cancel(progressId) {
|
|
642
654
|
if (!this.raw) {
|
|
643
|
-
return Promise.reject(( new Error(
|
|
644
|
-
|
|
645
|
-
|
|
655
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
656
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
657
|
+
'noDebugAdapter',
|
|
658
|
+
"No debugger available, can not send '{0}'",
|
|
659
|
+
'cancel'
|
|
660
|
+
)))));
|
|
646
661
|
}
|
|
647
662
|
return this.raw.cancel({ progressId });
|
|
648
663
|
}
|
|
649
664
|
async disassemble(memoryReference, offset, instructionOffset, instructionCount) {
|
|
650
665
|
if (!this.raw) {
|
|
651
|
-
return Promise.reject(( new Error(
|
|
652
|
-
|
|
653
|
-
|
|
666
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
667
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
668
|
+
'noDebugAdapter',
|
|
669
|
+
"No debugger available, can not send '{0}'",
|
|
670
|
+
'disassemble'
|
|
671
|
+
)))));
|
|
654
672
|
}
|
|
655
673
|
const response = await this.raw.disassemble({ memoryReference, offset, instructionOffset, instructionCount, resolveSymbols: true });
|
|
656
674
|
return response?.body?.instructions;
|
|
657
675
|
}
|
|
658
676
|
readMemory(memoryReference, offset, count) {
|
|
659
677
|
if (!this.raw) {
|
|
660
|
-
return Promise.reject(( new Error(
|
|
661
|
-
|
|
662
|
-
|
|
678
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
679
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
680
|
+
'noDebugAdapter',
|
|
681
|
+
"No debugger available, can not send '{0}'",
|
|
682
|
+
'readMemory'
|
|
683
|
+
)))));
|
|
663
684
|
}
|
|
664
685
|
return this.raw.readMemory({ count, memoryReference, offset });
|
|
665
686
|
}
|
|
666
687
|
writeMemory(memoryReference, offset, data, allowPartial) {
|
|
667
688
|
if (!this.raw) {
|
|
668
|
-
return Promise.reject(( new Error(
|
|
669
|
-
|
|
670
|
-
|
|
689
|
+
return Promise.reject(( new Error(( localizeWithPath(
|
|
690
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
691
|
+
'noDebugAdapter',
|
|
692
|
+
"No debugger available, can not send '{0}'",
|
|
693
|
+
'disassemble'
|
|
694
|
+
)))));
|
|
671
695
|
}
|
|
672
696
|
return this.raw.writeMemory({ memoryReference, offset, allowPartial, data });
|
|
673
697
|
}
|
|
@@ -771,7 +795,11 @@ let DebugSession = class DebugSession {
|
|
|
771
795
|
return;
|
|
772
796
|
}
|
|
773
797
|
this.rawListeners.add(this.raw.onDidInitialize(async () => {
|
|
774
|
-
aria.status(localizeWithPath(
|
|
798
|
+
aria.status(( localizeWithPath(
|
|
799
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
800
|
+
'debuggingStarted',
|
|
801
|
+
"Debugging started."
|
|
802
|
+
)));
|
|
775
803
|
const sendConfigurationDone = async () => {
|
|
776
804
|
if (this.raw && this.raw.capabilities.supportsConfigurationDoneRequest) {
|
|
777
805
|
try {
|
|
@@ -859,7 +887,11 @@ let DebugSession = class DebugSession {
|
|
|
859
887
|
});
|
|
860
888
|
}));
|
|
861
889
|
this.rawListeners.add(this.raw.onDidTerminateDebugee(async (event) => {
|
|
862
|
-
aria.status(localizeWithPath(
|
|
890
|
+
aria.status(( localizeWithPath(
|
|
891
|
+
'vs/workbench/contrib/debug/browser/debugSession',
|
|
892
|
+
'debuggingStopped',
|
|
893
|
+
"Debugging stopped."
|
|
894
|
+
)));
|
|
863
895
|
if (event.body && event.body.restart) {
|
|
864
896
|
await this.debugService.restartSession(this, event.body.restart);
|
|
865
897
|
}
|
|
@@ -15,7 +15,11 @@ async function showDebugSessionMenu(accessor, selectAndStartID) {
|
|
|
15
15
|
const quickPick = quickInputService.createQuickPick();
|
|
16
16
|
localDisposableStore.add(quickPick);
|
|
17
17
|
quickPick.matchOnLabel = quickPick.matchOnDescription = quickPick.matchOnDetail = quickPick.sortByLabel = false;
|
|
18
|
-
quickPick.placeholder = nls.localizeWithPath(
|
|
18
|
+
quickPick.placeholder = ( nls.localizeWithPath(
|
|
19
|
+
'vs/workbench/contrib/debug/browser/debugSessionPicker',
|
|
20
|
+
'moveFocusedView.selectView',
|
|
21
|
+
'Search debug sessions by name'
|
|
22
|
+
));
|
|
19
23
|
const pickItems = _getPicksAndActiveItem(quickPick.value, selectAndStartID, debugService, viewsService, commandService);
|
|
20
24
|
quickPick.items = pickItems.picks;
|
|
21
25
|
quickPick.activeItems = pickItems.activeItems;
|
|
@@ -59,7 +63,11 @@ function _getPicksAndActiveItem(filter, selectAndStartID, debugService, viewsSer
|
|
|
59
63
|
if (debugConsolePicks.length) {
|
|
60
64
|
debugConsolePicks.push({ type: 'separator' });
|
|
61
65
|
}
|
|
62
|
-
const createDebugSessionLabel = nls.localizeWithPath(
|
|
66
|
+
const createDebugSessionLabel = ( nls.localizeWithPath(
|
|
67
|
+
'vs/workbench/contrib/debug/browser/debugSessionPicker',
|
|
68
|
+
'workbench.action.debug.startDebug',
|
|
69
|
+
'Start a New Debug Session'
|
|
70
|
+
));
|
|
63
71
|
debugConsolePicks.push({
|
|
64
72
|
label: `$(plus) ${createDebugSessionLabel}`,
|
|
65
73
|
ariaLabel: createDebugSessionLabel,
|
|
@@ -73,7 +81,13 @@ function _getSessionInfo(session) {
|
|
|
73
81
|
let description = '';
|
|
74
82
|
let ariaLabel = '';
|
|
75
83
|
if (parentName) {
|
|
76
|
-
ariaLabel = nls.localizeWithPath(
|
|
84
|
+
ariaLabel = ( nls.localizeWithPath(
|
|
85
|
+
'vs/workbench/contrib/debug/browser/debugSessionPicker',
|
|
86
|
+
'workbench.action.debug.spawnFrom',
|
|
87
|
+
'Session {0} spawned from {1}',
|
|
88
|
+
label,
|
|
89
|
+
parentName
|
|
90
|
+
));
|
|
77
91
|
description = parentName;
|
|
78
92
|
}
|
|
79
93
|
return { label, description, ariaLabel };
|
|
@@ -47,10 +47,19 @@ let DebugStatusContribution = class DebugStatusContribution {
|
|
|
47
47
|
text = (manager.getLaunches().length > 1 ? `${name} (${manager.selectedConfiguration.launch.name})` : name);
|
|
48
48
|
}
|
|
49
49
|
return {
|
|
50
|
-
name: nls.localizeWithPath('vs/workbench/contrib/debug/browser/debugStatus', 'status.debug', "Debug"),
|
|
50
|
+
name: ( nls.localizeWithPath('vs/workbench/contrib/debug/browser/debugStatus', 'status.debug', "Debug")),
|
|
51
51
|
text: '$(debug-alt-small) ' + text,
|
|
52
|
-
ariaLabel: nls.localizeWithPath(
|
|
53
|
-
|
|
52
|
+
ariaLabel: ( nls.localizeWithPath(
|
|
53
|
+
'vs/workbench/contrib/debug/browser/debugStatus',
|
|
54
|
+
'debugTarget',
|
|
55
|
+
"Debug: {0}",
|
|
56
|
+
text
|
|
57
|
+
)),
|
|
58
|
+
tooltip: ( nls.localizeWithPath(
|
|
59
|
+
'vs/workbench/contrib/debug/browser/debugStatus',
|
|
60
|
+
'selectAndStartDebug',
|
|
61
|
+
"Select and start debug configuration"
|
|
62
|
+
)),
|
|
54
63
|
command: 'workbench.action.debug.selectandstart'
|
|
55
64
|
};
|
|
56
65
|
}
|
|
@@ -63,12 +63,33 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
63
63
|
}
|
|
64
64
|
const taskLabel = typeof taskId === 'string' ? taskId : taskId ? taskId.name : '';
|
|
65
65
|
const message = errorCount > 1
|
|
66
|
-
? nls.localizeWithPath(
|
|
66
|
+
? ( nls.localizeWithPath(
|
|
67
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
68
|
+
'preLaunchTaskErrors',
|
|
69
|
+
"Errors exist after running preLaunchTask '{0}'.",
|
|
70
|
+
taskLabel
|
|
71
|
+
))
|
|
67
72
|
: errorCount === 1
|
|
68
|
-
? nls.localizeWithPath(
|
|
73
|
+
? ( nls.localizeWithPath(
|
|
74
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
75
|
+
'preLaunchTaskError',
|
|
76
|
+
"Error exists after running preLaunchTask '{0}'.",
|
|
77
|
+
taskLabel
|
|
78
|
+
))
|
|
69
79
|
: taskSummary && typeof taskSummary.exitCode === 'number'
|
|
70
|
-
? nls.localizeWithPath(
|
|
71
|
-
|
|
80
|
+
? ( nls.localizeWithPath(
|
|
81
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
82
|
+
'preLaunchTaskExitCode',
|
|
83
|
+
"The preLaunchTask '{0}' terminated with exit code {1}.",
|
|
84
|
+
taskLabel,
|
|
85
|
+
taskSummary.exitCode
|
|
86
|
+
))
|
|
87
|
+
: ( nls.localizeWithPath(
|
|
88
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
89
|
+
'preLaunchTaskTerminated',
|
|
90
|
+
"The preLaunchTask '{0}' terminated.",
|
|
91
|
+
taskLabel
|
|
92
|
+
));
|
|
72
93
|
let DebugChoice;
|
|
73
94
|
( (function(DebugChoice) {
|
|
74
95
|
DebugChoice[DebugChoice["DebugAnyway"] = 1] = "DebugAnyway";
|
|
@@ -80,20 +101,32 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
80
101
|
message,
|
|
81
102
|
buttons: [
|
|
82
103
|
{
|
|
83
|
-
label: nls.localizeWithPath(
|
|
104
|
+
label: ( nls.localizeWithPath(
|
|
105
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
106
|
+
{ key: 'debugAnyway', comment: ['&& denotes a mnemonic'] },
|
|
107
|
+
"&&Debug Anyway"
|
|
108
|
+
)),
|
|
84
109
|
run: () => DebugChoice.DebugAnyway
|
|
85
110
|
},
|
|
86
111
|
{
|
|
87
|
-
label: nls.localizeWithPath(
|
|
112
|
+
label: ( nls.localizeWithPath(
|
|
113
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
114
|
+
{ key: 'showErrors', comment: ['&& denotes a mnemonic'] },
|
|
115
|
+
"&&Show Errors"
|
|
116
|
+
)),
|
|
88
117
|
run: () => DebugChoice.ShowErrors
|
|
89
118
|
}
|
|
90
119
|
],
|
|
91
120
|
cancelButton: {
|
|
92
|
-
label: nls.localizeWithPath('vs/workbench/contrib/debug/browser/debugTaskRunner', 'abort', "Abort"),
|
|
121
|
+
label: ( nls.localizeWithPath('vs/workbench/contrib/debug/browser/debugTaskRunner', 'abort', "Abort")),
|
|
93
122
|
run: () => DebugChoice.Cancel
|
|
94
123
|
},
|
|
95
124
|
checkbox: {
|
|
96
|
-
label: nls.localizeWithPath(
|
|
125
|
+
label: ( nls.localizeWithPath(
|
|
126
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
127
|
+
'remember',
|
|
128
|
+
"Remember my choice in user settings"
|
|
129
|
+
)),
|
|
97
130
|
}
|
|
98
131
|
});
|
|
99
132
|
const debugAnyway = result === DebugChoice.DebugAnyway;
|
|
@@ -129,7 +162,11 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
129
162
|
message: err.message,
|
|
130
163
|
buttons: [
|
|
131
164
|
{
|
|
132
|
-
label: nls.localizeWithPath(
|
|
165
|
+
label: ( nls.localizeWithPath(
|
|
166
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
167
|
+
{ key: 'debugAnyway', comment: ['&& denotes a mnemonic'] },
|
|
168
|
+
"&&Debug Anyway"
|
|
169
|
+
)),
|
|
133
170
|
run: () => DebugChoice.DebugAnyway
|
|
134
171
|
},
|
|
135
172
|
{
|
|
@@ -141,7 +178,11 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
141
178
|
run: () => DebugChoice.Cancel
|
|
142
179
|
},
|
|
143
180
|
checkbox: {
|
|
144
|
-
label: nls.localizeWithPath(
|
|
181
|
+
label: ( nls.localizeWithPath(
|
|
182
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
183
|
+
'rememberTask',
|
|
184
|
+
"Remember my choice for this task"
|
|
185
|
+
))
|
|
145
186
|
}
|
|
146
187
|
});
|
|
147
188
|
choice = result;
|
|
@@ -161,15 +202,27 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
161
202
|
return Promise.resolve(null);
|
|
162
203
|
}
|
|
163
204
|
if (!root) {
|
|
164
|
-
return Promise.reject(( new Error(
|
|
165
|
-
|
|
166
|
-
|
|
205
|
+
return Promise.reject(( new Error(( nls.localizeWithPath(
|
|
206
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
207
|
+
'invalidTaskReference',
|
|
208
|
+
"Task '{0}' can not be referenced from a launch configuration that is in a different workspace folder.",
|
|
209
|
+
typeof taskId === 'string' ? taskId : taskId.type
|
|
210
|
+
)))));
|
|
167
211
|
}
|
|
168
212
|
const task = await this.taskService.getTask(root, taskId);
|
|
169
213
|
if (!task) {
|
|
170
214
|
const errorMessage = typeof taskId === 'string'
|
|
171
|
-
? nls.localizeWithPath(
|
|
172
|
-
|
|
215
|
+
? ( nls.localizeWithPath(
|
|
216
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
217
|
+
'DebugTaskNotFoundWithTaskId',
|
|
218
|
+
"Could not find the task '{0}'.",
|
|
219
|
+
taskId
|
|
220
|
+
))
|
|
221
|
+
: ( nls.localizeWithPath(
|
|
222
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
223
|
+
'DebugTaskNotFound',
|
|
224
|
+
"Could not find the specified task."
|
|
225
|
+
));
|
|
173
226
|
return Promise.reject(createErrorWithActions(errorMessage, [( new Action(
|
|
174
227
|
DEBUG_CONFIGURE_COMMAND_ID,
|
|
175
228
|
DEBUG_CONFIGURE_LABEL,
|
|
@@ -221,8 +274,18 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
221
274
|
setTimeout(() => {
|
|
222
275
|
if (!taskStarted) {
|
|
223
276
|
const errorMessage = typeof taskId === 'string'
|
|
224
|
-
? nls.localizeWithPath(
|
|
225
|
-
|
|
277
|
+
? ( nls.localizeWithPath(
|
|
278
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
279
|
+
'taskNotTrackedWithTaskId',
|
|
280
|
+
"The task '{0}' cannot be tracked. Make sure to have a problem matcher defined.",
|
|
281
|
+
taskId
|
|
282
|
+
))
|
|
283
|
+
: ( nls.localizeWithPath(
|
|
284
|
+
'vs/workbench/contrib/debug/browser/debugTaskRunner',
|
|
285
|
+
'taskNotTracked',
|
|
286
|
+
"The task '{0}' cannot be tracked. Make sure to have a problem matcher defined.",
|
|
287
|
+
JSON.stringify(taskId)
|
|
288
|
+
));
|
|
226
289
|
e({ severity: Severity.Error, message: errorMessage });
|
|
227
290
|
}
|
|
228
291
|
}, waitTime);
|
|
@@ -227,12 +227,11 @@ function createDisconnectMenuItemAction(action, disposables, accessor) {
|
|
|
227
227
|
if (!secondary.length) {
|
|
228
228
|
return undefined;
|
|
229
229
|
}
|
|
230
|
-
const dropdownAction = disposables.add(( new Action(
|
|
231
|
-
'
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
)));
|
|
230
|
+
const dropdownAction = disposables.add(( new Action('notebook.moreRunActions', ( localizeWithPath(
|
|
231
|
+
'vs/workbench/contrib/debug/browser/debugToolBar',
|
|
232
|
+
'notebook.moreRunActionsLabel',
|
|
233
|
+
"More..."
|
|
234
|
+
)), 'codicon-chevron-down', true)));
|
|
236
235
|
const item = instantiationService.createInstance(DropdownWithPrimaryActionViewItem, action, dropdownAction, secondary, 'debug-stop-actions', contextMenuService, {});
|
|
237
236
|
return item;
|
|
238
237
|
}
|
|
@@ -290,8 +289,16 @@ registerDebugToolBarItem(STEP_OVER_ID, STEP_OVER_LABEL, 20, debugStepOver, undef
|
|
|
290
289
|
registerDebugToolBarItem(STEP_INTO_ID, STEP_INTO_LABEL, 30, debugStepInto, undefined, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
|
|
291
290
|
registerDebugToolBarItem(STEP_OUT_ID, STEP_OUT_LABEL, 40, debugStepOut, undefined, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
|
|
292
291
|
registerDebugToolBarItem(RESTART_SESSION_ID, RESTART_LABEL, 60, debugRestart);
|
|
293
|
-
registerDebugToolBarItem(STEP_BACK_ID,
|
|
294
|
-
|
|
292
|
+
registerDebugToolBarItem(STEP_BACK_ID, ( localizeWithPath(
|
|
293
|
+
'vs/workbench/contrib/debug/browser/debugToolBar',
|
|
294
|
+
'stepBackDebug',
|
|
295
|
+
"Step Back"
|
|
296
|
+
)), 50, debugStepBack, CONTEXT_STEP_BACK_SUPPORTED, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
|
|
297
|
+
registerDebugToolBarItem(REVERSE_CONTINUE_ID, ( localizeWithPath(
|
|
298
|
+
'vs/workbench/contrib/debug/browser/debugToolBar',
|
|
299
|
+
'reverseContinue',
|
|
300
|
+
"Reverse"
|
|
301
|
+
)), 55, debugReverseContinue, CONTEXT_STEP_BACK_SUPPORTED, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
|
|
295
302
|
registerDebugToolBarItem(FOCUS_SESSION_ID, FOCUS_SESSION_LABEL, 100, Codicon.listTree, ( ContextKeyExpr.and(CONTEXT_MULTI_SESSION_DEBUG, ( CONTEXT_TOOLBAR_COMMAND_CENTER.negate()))));
|
|
296
303
|
MenuRegistry.appendMenuItem(MenuId.DebugToolBarStop, {
|
|
297
304
|
group: 'navigation',
|
|
@@ -3,7 +3,7 @@ import { DisposableStore, dispose } from 'monaco-editor/esm/vs/base/common/lifec
|
|
|
3
3
|
import './media/debugViewlet.css.js';
|
|
4
4
|
import * as nls from 'monaco-editor/esm/vs/nls.js';
|
|
5
5
|
import { createActionViewItem } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
|
|
6
|
-
import { registerAction2, Action2
|
|
6
|
+
import { registerAction2, Action2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
|
|
7
7
|
import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
|
|
8
8
|
import { ContextKeyExpr, IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
|
|
9
9
|
import { IContextMenuService, IContextViewService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
|
|
@@ -16,10 +16,10 @@ import { IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspac
|
|
|
16
16
|
import { ViewsSubMenu, ViewPaneContainer } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPaneContainer';
|
|
17
17
|
import { IViewsService, IViewDescriptorService } from 'vscode/vscode/vs/workbench/common/views';
|
|
18
18
|
import { StartDebugActionViewItem, FocusSessionActionViewItem } from './debugActionViewItems.js';
|
|
19
|
-
import {
|
|
19
|
+
import { DEBUG_START_COMMAND_ID, FOCUS_SESSION_ID, STOP_ID, DISCONNECT_ID } from './debugCommands.js';
|
|
20
20
|
import { createDisconnectMenuItemAction } from './debugToolBar.js';
|
|
21
21
|
import { WelcomeView } from './welcomeView.js';
|
|
22
|
-
import { REPL_VIEW_ID, VIEWLET_ID,
|
|
22
|
+
import { REPL_VIEW_ID, VIEWLET_ID, CONTEXT_DEBUG_UX_KEY, BREAKPOINTS_VIEW_ID, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
23
23
|
import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
24
24
|
import { IWorkbenchLayoutService } from 'vscode/vscode/vs/workbench/services/layout/browser/layoutService';
|
|
25
25
|
|
|
@@ -144,7 +144,11 @@ registerAction2(class extends Action2 {
|
|
|
144
144
|
constructor() {
|
|
145
145
|
super({
|
|
146
146
|
id: 'debug.toggleReplIgnoreFocus',
|
|
147
|
-
title: nls.localizeWithPath(
|
|
147
|
+
title: ( nls.localizeWithPath(
|
|
148
|
+
'vs/workbench/contrib/debug/browser/debugViewlet',
|
|
149
|
+
'debugPanel',
|
|
150
|
+
"Debug Console"
|
|
151
|
+
)),
|
|
148
152
|
toggled: ( ContextKeyExpr.has(`view.${REPL_VIEW_ID}.visible`)),
|
|
149
153
|
menu: [{
|
|
150
154
|
id: ViewsSubMenu,
|
|
@@ -164,13 +168,5 @@ registerAction2(class extends Action2 {
|
|
|
164
168
|
}
|
|
165
169
|
}
|
|
166
170
|
});
|
|
167
|
-
( MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
|
|
168
|
-
when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('viewContainer', VIEWLET_ID)), ( CONTEXT_DEBUG_STATE.notEqualsTo('inactive')), ( ContextKeyExpr.equals('config.debug.toolBarLocation', 'docked')))),
|
|
169
|
-
order: 10,
|
|
170
|
-
command: {
|
|
171
|
-
id: SELECT_AND_START_ID,
|
|
172
|
-
title: nls.localizeWithPath('vs/workbench/contrib/debug/browser/debugViewlet', 'startAdditionalSession', "Start Additional Session"),
|
|
173
|
-
}
|
|
174
|
-
}));
|
|
175
171
|
|
|
176
172
|
export { DebugViewPaneContainer };
|
|
@@ -43,7 +43,11 @@ const disassemblyNotAvailable = {
|
|
|
43
43
|
address: 0n,
|
|
44
44
|
instruction: {
|
|
45
45
|
address: '-1',
|
|
46
|
-
instruction: localizeWithPath(
|
|
46
|
+
instruction: ( localizeWithPath(
|
|
47
|
+
'vs/workbench/contrib/debug/browser/disassemblyView',
|
|
48
|
+
'instructionNotAvailable',
|
|
49
|
+
"Disassembly not available."
|
|
50
|
+
))
|
|
47
51
|
},
|
|
48
52
|
};
|
|
49
53
|
let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
@@ -146,7 +150,11 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
|
146
150
|
project(row) { return row; }
|
|
147
151
|
},
|
|
148
152
|
{
|
|
149
|
-
label: localizeWithPath(
|
|
153
|
+
label: ( localizeWithPath(
|
|
154
|
+
'vs/workbench/contrib/debug/browser/disassemblyView',
|
|
155
|
+
'disassemblyTableColumnLabel',
|
|
156
|
+
"instructions"
|
|
157
|
+
)),
|
|
150
158
|
tooltip: '',
|
|
151
159
|
weight: 0.3,
|
|
152
160
|
templateId: InstructionRenderer.TEMPLATE_ID,
|
|
@@ -678,7 +686,11 @@ let InstructionRenderer = class InstructionRenderer extends Disposable {
|
|
|
678
686
|
};
|
|
679
687
|
this.editorService.openEditor({
|
|
680
688
|
resource: sourceURI,
|
|
681
|
-
description: localizeWithPath(
|
|
689
|
+
description: ( localizeWithPath(
|
|
690
|
+
'vs/workbench/contrib/debug/browser/disassemblyView',
|
|
691
|
+
'editorOpenedFromDisassemblyDescription',
|
|
692
|
+
"from disassembly"
|
|
693
|
+
)),
|
|
682
694
|
options: {
|
|
683
695
|
preserveFocus: false,
|
|
684
696
|
selection: selection,
|
|
@@ -713,18 +725,34 @@ InstructionRenderer = InstructionRenderer_1 = ( __decorate([
|
|
|
713
725
|
], InstructionRenderer));
|
|
714
726
|
class AccessibilityProvider {
|
|
715
727
|
getWidgetAriaLabel() {
|
|
716
|
-
return localizeWithPath(
|
|
728
|
+
return ( localizeWithPath(
|
|
729
|
+
'vs/workbench/contrib/debug/browser/disassemblyView',
|
|
730
|
+
'disassemblyView',
|
|
731
|
+
"Disassembly View"
|
|
732
|
+
));
|
|
717
733
|
}
|
|
718
734
|
getAriaLabel(element) {
|
|
719
735
|
let label = '';
|
|
720
736
|
const instruction = element.instruction;
|
|
721
737
|
if (instruction.address !== '-1') {
|
|
722
|
-
label += `${localizeWithPath(
|
|
738
|
+
label += `${( localizeWithPath(
|
|
739
|
+
'vs/workbench/contrib/debug/browser/disassemblyView',
|
|
740
|
+
'instructionAddress',
|
|
741
|
+
"Address"
|
|
742
|
+
))}: ${instruction.address}`;
|
|
723
743
|
}
|
|
724
744
|
if (instruction.instructionBytes) {
|
|
725
|
-
label += `, ${localizeWithPath(
|
|
726
|
-
|
|
727
|
-
|
|
745
|
+
label += `, ${( localizeWithPath(
|
|
746
|
+
'vs/workbench/contrib/debug/browser/disassemblyView',
|
|
747
|
+
'instructionBytes',
|
|
748
|
+
"Bytes"
|
|
749
|
+
))}: ${instruction.instructionBytes}`;
|
|
750
|
+
}
|
|
751
|
+
label += `, ${( localizeWithPath(
|
|
752
|
+
'vs/workbench/contrib/debug/browser/disassemblyView',
|
|
753
|
+
`instructionText`,
|
|
754
|
+
"Instruction"
|
|
755
|
+
))}: ${instruction.instruction}`;
|
|
728
756
|
return label;
|
|
729
757
|
}
|
|
730
758
|
}
|
|
@@ -15,8 +15,16 @@ import { Action } from 'monaco-editor/esm/vs/base/common/actions.js';
|
|
|
15
15
|
import { widgetClose } from 'monaco-editor/esm/vs/platform/theme/common/iconRegistry.js';
|
|
16
16
|
|
|
17
17
|
const $ = dom.$;
|
|
18
|
-
const debugExceptionWidgetBorder = registerColor('debugExceptionWidget.border', { dark: '#a31515', light: '#a31515', hcDark: '#a31515', hcLight: '#a31515' }, nls.localizeWithPath(
|
|
19
|
-
|
|
18
|
+
const debugExceptionWidgetBorder = registerColor('debugExceptionWidget.border', { dark: '#a31515', light: '#a31515', hcDark: '#a31515', hcLight: '#a31515' }, ( nls.localizeWithPath(
|
|
19
|
+
'vs/workbench/contrib/debug/browser/exceptionWidget',
|
|
20
|
+
'debugExceptionWidgetBorder',
|
|
21
|
+
'Exception widget border color.'
|
|
22
|
+
)));
|
|
23
|
+
const debugExceptionWidgetBackground = registerColor('debugExceptionWidget.background', { dark: '#420b0d', light: '#f1dfde', hcDark: '#420b0d', hcLight: '#f1dfde' }, ( nls.localizeWithPath(
|
|
24
|
+
'vs/workbench/contrib/debug/browser/exceptionWidget',
|
|
25
|
+
'debugExceptionWidgetBackground',
|
|
26
|
+
'Exception widget background color.'
|
|
27
|
+
)));
|
|
20
28
|
let ExceptionWidget = class ExceptionWidget extends ZoneWidget {
|
|
21
29
|
constructor(editor, exceptionInfo, debugSession, themeService, instantiationService) {
|
|
22
30
|
super(editor, { showFrame: true, showArrow: true, isAccessible: true, frameWidth: 1, className: 'exception-widget-container' });
|
|
@@ -55,19 +63,22 @@ let ExceptionWidget = class ExceptionWidget extends ZoneWidget {
|
|
|
55
63
|
dom.append(title, label);
|
|
56
64
|
const actions = $('.actions');
|
|
57
65
|
dom.append(title, actions);
|
|
58
|
-
label.textContent = this.exceptionInfo.id ?
|
|
66
|
+
label.textContent = this.exceptionInfo.id ? ( nls.localizeWithPath(
|
|
67
|
+
'vs/workbench/contrib/debug/browser/exceptionWidget',
|
|
68
|
+
'exceptionThrownWithId',
|
|
69
|
+
'Exception has occurred: {0}',
|
|
70
|
+
this.exceptionInfo.id
|
|
71
|
+
)) : ( nls.localizeWithPath(
|
|
72
|
+
'vs/workbench/contrib/debug/browser/exceptionWidget',
|
|
73
|
+
'exceptionThrown',
|
|
74
|
+
'Exception has occurred.'
|
|
75
|
+
));
|
|
59
76
|
let ariaLabel = label.textContent;
|
|
60
77
|
const actionBar = ( new ActionBar(actions));
|
|
61
|
-
actionBar.push(( new Action(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
true,
|
|
66
|
-
async () => {
|
|
67
|
-
const contribution = this.editor.getContribution(EDITOR_CONTRIBUTION_ID);
|
|
68
|
-
contribution?.closeExceptionWidget();
|
|
69
|
-
}
|
|
70
|
-
)), { label: false, icon: true });
|
|
78
|
+
actionBar.push(( new Action('editor.closeExceptionWidget', ( nls.localizeWithPath('vs/workbench/contrib/debug/browser/exceptionWidget', 'close', "Close")), ThemeIcon.asClassName(widgetClose), true, async () => {
|
|
79
|
+
const contribution = this.editor.getContribution(EDITOR_CONTRIBUTION_ID);
|
|
80
|
+
contribution?.closeExceptionWidget();
|
|
81
|
+
})), { label: false, icon: true });
|
|
71
82
|
dom.append(container, title);
|
|
72
83
|
if (this.exceptionInfo.description) {
|
|
73
84
|
const description = $('.description');
|
|
@@ -153,10 +153,40 @@ let LinkDetector = class LinkDetector {
|
|
|
153
153
|
}
|
|
154
154
|
decorateLink(link, uri, fulltext, onClick) {
|
|
155
155
|
link.classList.add('link');
|
|
156
|
-
const followLink = this.tunnelService.canTunnel(uri) ?
|
|
156
|
+
const followLink = this.tunnelService.canTunnel(uri) ? ( localizeWithPath(
|
|
157
|
+
'vs/workbench/contrib/debug/browser/linkDetector',
|
|
158
|
+
'followForwardedLink',
|
|
159
|
+
"follow link using forwarded port"
|
|
160
|
+
)) : ( localizeWithPath(
|
|
161
|
+
'vs/workbench/contrib/debug/browser/linkDetector',
|
|
162
|
+
'followLink',
|
|
163
|
+
"follow link"
|
|
164
|
+
));
|
|
157
165
|
link.title = fulltext
|
|
158
|
-
? (platform.isMacintosh ?
|
|
159
|
-
|
|
166
|
+
? (platform.isMacintosh ? ( localizeWithPath(
|
|
167
|
+
'vs/workbench/contrib/debug/browser/linkDetector',
|
|
168
|
+
'fileLinkWithPathMac',
|
|
169
|
+
"Cmd + click to {0}\n{1}",
|
|
170
|
+
followLink,
|
|
171
|
+
fulltext
|
|
172
|
+
)) : ( localizeWithPath(
|
|
173
|
+
'vs/workbench/contrib/debug/browser/linkDetector',
|
|
174
|
+
'fileLinkWithPath',
|
|
175
|
+
"Ctrl + click to {0}\n{1}",
|
|
176
|
+
followLink,
|
|
177
|
+
fulltext
|
|
178
|
+
)))
|
|
179
|
+
: (platform.isMacintosh ? ( localizeWithPath(
|
|
180
|
+
'vs/workbench/contrib/debug/browser/linkDetector',
|
|
181
|
+
'fileLinkMac',
|
|
182
|
+
"Cmd + click to {0}",
|
|
183
|
+
followLink
|
|
184
|
+
)) : ( localizeWithPath(
|
|
185
|
+
'vs/workbench/contrib/debug/browser/linkDetector',
|
|
186
|
+
'fileLink',
|
|
187
|
+
"Ctrl + click to {0}",
|
|
188
|
+
followLink
|
|
189
|
+
)));
|
|
160
190
|
link.onmousemove = (event) => { link.classList.toggle('pointer', platform.isMacintosh ? event.metaKey : event.ctrlKey); };
|
|
161
191
|
link.onmouseleave = () => link.classList.remove('pointer');
|
|
162
192
|
link.onclick = (event) => {
|