@codingame/monaco-vscode-debug-service-override 1.83.1 → 1.83.3-next.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 +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +104 -139
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +5 -26
- package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +61 -104
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +3 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +29 -51
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +190 -203
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +11 -31
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +32 -32
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +21 -48
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +2 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +3 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +11 -15
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +28 -80
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +56 -68
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +3 -8
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +17 -50
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTitle.js +31 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +9 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +12 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +47 -51
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +13 -11
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +6 -25
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +9 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +15 -21
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +6 -20
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +5 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +10 -18
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +10 -13
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +70 -29
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +6 -9
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +3 -12
- package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +113 -148
- package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +41 -143
- package/vscode/src/vs/workbench/contrib/debug/common/debugSource.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +11 -36
- package/vscode/src/vs/workbench/contrib/debug/common/disassemblyViewInput.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +1 -1
- package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +11 -16
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverSchema.js +16 -49
- package/vscode/src/vs/workbench/services/configurationResolver/common/configurationResolverUtils.js +1 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-debug-service-override",
|
|
3
|
-
"version": "1.83.
|
|
3
|
+
"version": "1.83.3-next.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"module": "index.js",
|
|
19
19
|
"types": "index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"vscode": "npm:@codingame/monaco-vscode-api@1.83.
|
|
21
|
+
"vscode": "npm:@codingame/monaco-vscode-api@1.83.3-next.0",
|
|
22
22
|
"monaco-editor": "0.44.0"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -8,7 +8,7 @@ import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
|
|
|
8
8
|
import { createMatches } from 'monaco-editor/esm/vs/base/common/filters.js';
|
|
9
9
|
import { createSingleCallFunction } from 'monaco-editor/esm/vs/base/common/functional.js';
|
|
10
10
|
import { DisposableStore, dispose, toDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
|
|
11
|
-
import {
|
|
11
|
+
import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
|
|
12
12
|
import { IContextViewService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
|
|
13
13
|
import { defaultInputBoxStyles } from 'monaco-editor/esm/vs/platform/theme/browser/defaultStyles.js';
|
|
14
14
|
import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
@@ -104,7 +104,7 @@ let AbstractExpressionsRenderer = class AbstractExpressionsRenderer {
|
|
|
104
104
|
const name = dom.append(expression, $('span.name'));
|
|
105
105
|
const lazyButton = dom.append(expression, $('span.lazy-button'));
|
|
106
106
|
lazyButton.classList.add(...ThemeIcon.asClassNameArray(Codicon.eye));
|
|
107
|
-
lazyButton.title = (
|
|
107
|
+
lazyButton.title = localizeWithPath('vs/workbench/contrib/debug/browser/baseDebugView', 'debug.lazyButton.tooltip', "Click to expand");
|
|
108
108
|
const value = dom.append(expression, $('span.value'));
|
|
109
109
|
const label = ( new HighlightedLabel(name));
|
|
110
110
|
const inputBoxContainer = dom.append(expression, $('.inputBoxContainer'));
|
|
@@ -47,15 +47,15 @@ function createBreakpointDecorations(accessor, model, breakpoints, state, breakp
|
|
|
47
47
|
if (breakpoint.lineNumber > model.getLineCount()) {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
|
-
const hasOtherBreakpointsOnLine = (
|
|
50
|
+
const hasOtherBreakpointsOnLine = ( breakpoints.some(bp => bp !== breakpoint && bp.lineNumber === breakpoint.lineNumber));
|
|
51
51
|
const column = model.getLineFirstNonWhitespaceColumn(breakpoint.lineNumber);
|
|
52
|
-
const range = model.validateRange(breakpoint.column ? (
|
|
52
|
+
const range = model.validateRange(breakpoint.column ? ( new Range(
|
|
53
53
|
breakpoint.lineNumber,
|
|
54
54
|
breakpoint.column,
|
|
55
55
|
breakpoint.lineNumber,
|
|
56
56
|
breakpoint.column + 1
|
|
57
|
-
))
|
|
58
|
-
: (
|
|
57
|
+
))
|
|
58
|
+
: ( new Range(breakpoint.lineNumber, column, breakpoint.lineNumber, column + 1))
|
|
59
59
|
);
|
|
60
60
|
result.push({
|
|
61
61
|
options: getBreakpointDecorationOptions(accessor, model, breakpoint, state, breakpointsActivated, showBreakpointsInOverviewRuler, hasOtherBreakpointsOnLine),
|
|
@@ -72,7 +72,7 @@ function getBreakpointDecorationOptions(accessor, model, breakpoint, state, brea
|
|
|
72
72
|
let unverifiedMessage;
|
|
73
73
|
if (showAdapterUnverifiedMessage) {
|
|
74
74
|
let langId;
|
|
75
|
-
unverifiedMessage = (
|
|
75
|
+
unverifiedMessage = ( debugService.getModel().getSessions().map(s => {
|
|
76
76
|
const dbg = debugService.getAdapterManager().getDebugger(s.configuration.type);
|
|
77
77
|
const message = dbg?.strings?.[DebuggerString.UnverifiedBreakpoints];
|
|
78
78
|
if (message) {
|
|
@@ -82,11 +82,11 @@ function getBreakpointDecorationOptions(accessor, model, breakpoint, state, brea
|
|
|
82
82
|
return langId && dbg.interestedInLanguage(langId) ? message : undefined;
|
|
83
83
|
}
|
|
84
84
|
return undefined;
|
|
85
|
-
}))
|
|
85
|
+
}))
|
|
86
86
|
.find(messages => !!messages);
|
|
87
87
|
}
|
|
88
88
|
if (message) {
|
|
89
|
-
glyphMarginHoverMessage = (
|
|
89
|
+
glyphMarginHoverMessage = ( new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true }));
|
|
90
90
|
if (breakpoint.condition || breakpoint.hitCondition) {
|
|
91
91
|
const languageId = model.getLanguageId();
|
|
92
92
|
glyphMarginHoverMessage.appendCodeblock(languageId, message);
|
|
@@ -102,7 +102,7 @@ function getBreakpointDecorationOptions(accessor, model, breakpoint, state, brea
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
else if (unverifiedMessage) {
|
|
105
|
-
glyphMarginHoverMessage = (
|
|
105
|
+
glyphMarginHoverMessage = ( new MarkdownString(undefined, { isTrusted: true, supportThemeIcons: true })).appendMarkdown(unverifiedMessage);
|
|
106
106
|
}
|
|
107
107
|
let overviewRulerDecoration = null;
|
|
108
108
|
if (showBreakpointsInOverviewRuler) {
|
|
@@ -131,14 +131,14 @@ async function requestBreakpointCandidateLocations(model, lineNumbers, session)
|
|
|
131
131
|
if (!session.capabilities.supportsBreakpointLocationsRequest) {
|
|
132
132
|
return [];
|
|
133
133
|
}
|
|
134
|
-
return await Promise.all((
|
|
134
|
+
return await Promise.all(( distinct(lineNumbers, l => l).map(async (lineNumber) => {
|
|
135
135
|
try {
|
|
136
136
|
return { lineNumber, positions: await session.breakpointsLocations(model.uri, lineNumber) };
|
|
137
137
|
}
|
|
138
138
|
catch {
|
|
139
139
|
return { lineNumber, positions: [] };
|
|
140
140
|
}
|
|
141
|
-
})))
|
|
141
|
+
})));
|
|
142
142
|
}
|
|
143
143
|
function createCandidateDecorations(model, breakpointDecorations, lineBreakpoints) {
|
|
144
144
|
const result = [];
|
|
@@ -149,10 +149,10 @@ function createCandidateDecorations(model, breakpointDecorations, lineBreakpoint
|
|
|
149
149
|
const firstColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);
|
|
150
150
|
const lastColumn = model.getLineLastNonWhitespaceColumn(lineNumber);
|
|
151
151
|
positions.forEach(p => {
|
|
152
|
-
const range = (
|
|
153
|
-
if ((p.column <= firstColumn && !(
|
|
152
|
+
const range = ( new Range(p.lineNumber, p.column, p.lineNumber, p.column + 1));
|
|
153
|
+
if ((p.column <= firstColumn && !( breakpointDecorations.some(
|
|
154
154
|
bp => bp.range.startColumn > firstColumn && bp.range.startLineNumber === p.lineNumber
|
|
155
|
-
)))
|
|
155
|
+
))) || p.column > lastColumn) {
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
158
|
const breakpointAtPosition = breakpointDecorations.find(bpd => bpd.range.equalsRange(range));
|
|
@@ -192,7 +192,7 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
192
192
|
this.breakpointDecorations = [];
|
|
193
193
|
this.candidateDecorations = [];
|
|
194
194
|
this.breakpointWidgetVisible = CONTEXT_BREAKPOINT_WIDGET_VISIBLE.bindTo(contextKeyService);
|
|
195
|
-
this.setDecorationsScheduler = (
|
|
195
|
+
this.setDecorationsScheduler = ( new RunOnceScheduler(() => this.setDecorations(), 30));
|
|
196
196
|
this.setDecorationsScheduler.schedule();
|
|
197
197
|
this.registerListeners();
|
|
198
198
|
}
|
|
@@ -230,44 +230,25 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
230
230
|
const breakpoints = this.debugService.getModel().getBreakpoints({ uri, lineNumber });
|
|
231
231
|
if (breakpoints.length) {
|
|
232
232
|
const isShiftPressed = e.event.shiftKey;
|
|
233
|
-
const enabled = (
|
|
233
|
+
const enabled = ( breakpoints.some(bp => bp.enabled));
|
|
234
234
|
if (isShiftPressed) {
|
|
235
235
|
breakpoints.forEach(bp => this.debugService.enableOrDisableBreakpoints(!enabled, bp));
|
|
236
236
|
}
|
|
237
|
-
else if (!platform.isLinux && (
|
|
237
|
+
else if (!platform.isLinux && ( breakpoints.some(bp => !!bp.condition || !!bp.logMessage || !!bp.hitCondition))) {
|
|
238
238
|
const logPoint = breakpoints.every(bp => !!bp.logMessage);
|
|
239
|
-
const breakpointType = logPoint ?
|
|
240
|
-
const disabledBreakpointDialogMessage = ( (nls.
|
|
241
|
-
|
|
242
|
-
"This {0} has a {1} that will get lost on remove. Consider enabling the {0} instead.",
|
|
243
|
-
breakpointType.toLowerCase(),
|
|
244
|
-
logPoint ? ( (nls.localize('message', "message"))) : ( (nls.localize('condition', "condition")))
|
|
245
|
-
)));
|
|
246
|
-
const enabledBreakpointDialogMessage = ( (nls.localize(
|
|
247
|
-
'breakpointHasConditionEnabled',
|
|
248
|
-
"This {0} has a {1} that will get lost on remove. Consider disabling the {0} instead.",
|
|
249
|
-
breakpointType.toLowerCase(),
|
|
250
|
-
logPoint ? ( (nls.localize('message', "message"))) : ( (nls.localize('condition', "condition")))
|
|
251
|
-
)));
|
|
239
|
+
const breakpointType = logPoint ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'logPoint', "Logpoint") : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'breakpoint', "Breakpoint");
|
|
240
|
+
const disabledBreakpointDialogMessage = nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'breakpointHasConditionDisabled', "This {0} has a {1} that will get lost on remove. Consider enabling the {0} instead.", breakpointType.toLowerCase(), logPoint ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'message', "message") : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'condition', "condition"));
|
|
241
|
+
const enabledBreakpointDialogMessage = nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'breakpointHasConditionEnabled', "This {0} has a {1} that will get lost on remove. Consider disabling the {0} instead.", breakpointType.toLowerCase(), logPoint ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'message', "message") : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'condition', "condition"));
|
|
252
242
|
await this.dialogService.prompt({
|
|
253
243
|
type: Severity.Info,
|
|
254
244
|
message: enabled ? enabledBreakpointDialogMessage : disabledBreakpointDialogMessage,
|
|
255
245
|
buttons: [
|
|
256
246
|
{
|
|
257
|
-
label:
|
|
258
|
-
{ key: 'removeLogPoint', comment: ['&& denotes a mnemonic'] },
|
|
259
|
-
"&&Remove {0}",
|
|
260
|
-
breakpointType
|
|
261
|
-
))),
|
|
247
|
+
label: nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', { key: 'removeLogPoint', comment: ['&& denotes a mnemonic'] }, "&&Remove {0}", breakpointType),
|
|
262
248
|
run: () => breakpoints.forEach(bp => this.debugService.removeBreakpoints(bp.getId()))
|
|
263
249
|
},
|
|
264
250
|
{
|
|
265
|
-
label: ( (nls.
|
|
266
|
-
'disableLogPoint',
|
|
267
|
-
"{0} {1}",
|
|
268
|
-
enabled ? ( (nls.localize({ key: 'disable', comment: ['&& denotes a mnemonic'] }, "&&Disable"))) : ( (nls.localize({ key: 'enable', comment: ['&& denotes a mnemonic'] }, "&&Enable"))),
|
|
269
|
-
breakpointType
|
|
270
|
-
))),
|
|
251
|
+
label: nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'disableLogPoint', "{0} {1}", enabled ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', { key: 'disable', comment: ['&& denotes a mnemonic'] }, "&&Disable") : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', { key: 'enable', comment: ['&& denotes a mnemonic'] }, "&&Enable"), breakpointType),
|
|
271
252
|
run: () => breakpoints.forEach(bp => this.debugService.enableOrDisableBreakpoints(!enabled, bp))
|
|
272
253
|
}
|
|
273
254
|
],
|
|
@@ -332,104 +313,100 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
332
313
|
getContextMenuActions(breakpoints, uri, lineNumber, column) {
|
|
333
314
|
const actions = [];
|
|
334
315
|
if (breakpoints.length === 1) {
|
|
335
|
-
const breakpointType = breakpoints[0].logMessage ?
|
|
336
|
-
actions.push((
|
|
316
|
+
const breakpointType = breakpoints[0].logMessage ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'logPoint', "Logpoint") : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'breakpoint', "Breakpoint");
|
|
317
|
+
actions.push(( new Action(
|
|
337
318
|
'debug.removeBreakpoint',
|
|
338
|
-
|
|
319
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'removeBreakpoint', "Remove {0}", breakpointType),
|
|
339
320
|
undefined,
|
|
340
321
|
true,
|
|
341
322
|
async () => {
|
|
342
323
|
await this.debugService.removeBreakpoints(breakpoints[0].getId());
|
|
343
324
|
}
|
|
344
|
-
)))
|
|
345
|
-
actions.push((
|
|
325
|
+
)));
|
|
326
|
+
actions.push(( new Action(
|
|
346
327
|
'workbench.debug.action.editBreakpointAction',
|
|
347
|
-
|
|
328
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'editBreakpoint', "Edit {0}...", breakpointType),
|
|
348
329
|
undefined,
|
|
349
330
|
true,
|
|
350
331
|
() => Promise.resolve(this.showBreakpointWidget(breakpoints[0].lineNumber, breakpoints[0].column))
|
|
351
|
-
)))
|
|
352
|
-
actions.push((
|
|
332
|
+
)));
|
|
333
|
+
actions.push(( new Action(
|
|
353
334
|
`workbench.debug.viewlet.action.toggleBreakpoint`,
|
|
354
|
-
breakpoints[0].enabled ?
|
|
335
|
+
breakpoints[0].enabled ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'disableBreakpoint', "Disable {0}", breakpointType) : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'enableBreakpoint', "Enable {0}", breakpointType),
|
|
355
336
|
undefined,
|
|
356
337
|
true,
|
|
357
338
|
() => this.debugService.enableOrDisableBreakpoints(!breakpoints[0].enabled, breakpoints[0])
|
|
358
|
-
)))
|
|
339
|
+
)));
|
|
359
340
|
}
|
|
360
341
|
else if (breakpoints.length > 1) {
|
|
361
342
|
const sorted = breakpoints.slice().sort((first, second) => (first.column && second.column) ? first.column - second.column : 1);
|
|
362
|
-
actions.push((
|
|
343
|
+
actions.push(( new SubmenuAction(
|
|
363
344
|
'debug.removeBreakpoints',
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
))
|
|
372
|
-
)))
|
|
373
|
-
actions.push((
|
|
345
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'removeBreakpoints', "Remove Breakpoints"),
|
|
346
|
+
( sorted.map(bp => ( new Action(
|
|
347
|
+
'removeInlineBreakpoint',
|
|
348
|
+
bp.column ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'removeInlineBreakpointOnColumn', "Remove Inline Breakpoint on Column {0}", bp.column) : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'removeLineBreakpoint', "Remove Line Breakpoint"),
|
|
349
|
+
undefined,
|
|
350
|
+
true,
|
|
351
|
+
() => this.debugService.removeBreakpoints(bp.getId())
|
|
352
|
+
))))
|
|
353
|
+
)));
|
|
354
|
+
actions.push(( new SubmenuAction(
|
|
374
355
|
'debug.editBreakpoints',
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
))
|
|
383
|
-
)))
|
|
384
|
-
actions.push((
|
|
356
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'editBreakpoints', "Edit Breakpoints"),
|
|
357
|
+
( sorted.map(bp => ( new Action(
|
|
358
|
+
'editBreakpoint',
|
|
359
|
+
bp.column ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'editInlineBreakpointOnColumn', "Edit Inline Breakpoint on Column {0}", bp.column) : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'editLineBreakpoint', "Edit Line Breakpoint"),
|
|
360
|
+
undefined,
|
|
361
|
+
true,
|
|
362
|
+
() => Promise.resolve(this.showBreakpointWidget(bp.lineNumber, bp.column))
|
|
363
|
+
))))
|
|
364
|
+
)));
|
|
365
|
+
actions.push(( new SubmenuAction(
|
|
385
366
|
'debug.enableDisableBreakpoints',
|
|
386
|
-
|
|
387
|
-
|
|
367
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'enableDisableBreakpoints', "Enable/Disable Breakpoints"),
|
|
368
|
+
( sorted.map(bp => ( new Action(
|
|
388
369
|
bp.enabled ? 'disableColumnBreakpoint' : 'enableColumnBreakpoint',
|
|
389
|
-
bp.enabled ? (bp.column ? (
|
|
390
|
-
'
|
|
391
|
-
"Disable Inline Breakpoint on Column {0}",
|
|
392
|
-
bp.column
|
|
393
|
-
))) : ( (nls.localize('disableBreakpointOnLine', "Disable Line Breakpoint"))))
|
|
394
|
-
: (bp.column ? ( (nls.localize('enableBreakpoints', "Enable Inline Breakpoint on Column {0}", bp.column))) : ( (nls.localize('enableBreakpointOnLine', "Enable Line Breakpoint")))),
|
|
370
|
+
bp.enabled ? (bp.column ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'disableInlineColumnBreakpoint', "Disable Inline Breakpoint on Column {0}", bp.column) : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'disableBreakpointOnLine', "Disable Line Breakpoint"))
|
|
371
|
+
: (bp.column ? nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'enableBreakpoints', "Enable Inline Breakpoint on Column {0}", bp.column) : nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'enableBreakpointOnLine', "Enable Line Breakpoint")),
|
|
395
372
|
undefined,
|
|
396
373
|
true,
|
|
397
374
|
() => this.debugService.enableOrDisableBreakpoints(!bp.enabled, bp)
|
|
398
|
-
))))
|
|
399
|
-
)))
|
|
375
|
+
))))
|
|
376
|
+
)));
|
|
400
377
|
}
|
|
401
378
|
else {
|
|
402
|
-
actions.push((
|
|
379
|
+
actions.push(( new Action(
|
|
403
380
|
'addBreakpoint',
|
|
404
|
-
|
|
381
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'addBreakpoint', "Add Breakpoint"),
|
|
405
382
|
undefined,
|
|
406
383
|
true,
|
|
407
384
|
() => this.debugService.addBreakpoints(uri, [{ lineNumber, column }])
|
|
408
|
-
)))
|
|
409
|
-
actions.push((
|
|
385
|
+
)));
|
|
386
|
+
actions.push(( new Action(
|
|
410
387
|
'addConditionalBreakpoint',
|
|
411
|
-
|
|
388
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'addConditionalBreakpoint', "Add Conditional Breakpoint..."),
|
|
412
389
|
undefined,
|
|
413
390
|
true,
|
|
414
391
|
() => Promise.resolve(this.showBreakpointWidget(lineNumber, column, 0 ))
|
|
415
|
-
)))
|
|
416
|
-
actions.push((
|
|
392
|
+
)));
|
|
393
|
+
actions.push(( new Action(
|
|
417
394
|
'addLogPoint',
|
|
418
|
-
|
|
395
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'addLogPoint', "Add Logpoint..."),
|
|
419
396
|
undefined,
|
|
420
397
|
true,
|
|
421
398
|
() => Promise.resolve(this.showBreakpointWidget(lineNumber, column, 2 ))
|
|
422
|
-
)))
|
|
399
|
+
)));
|
|
423
400
|
}
|
|
424
401
|
if (this.debugService.state === 2 ) {
|
|
425
|
-
actions.push((
|
|
426
|
-
actions.push((
|
|
402
|
+
actions.push(( new Separator()));
|
|
403
|
+
actions.push(( new Action(
|
|
427
404
|
'runToLine',
|
|
428
|
-
|
|
405
|
+
nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'runToLine', "Run to Line"),
|
|
429
406
|
undefined,
|
|
430
407
|
true,
|
|
431
408
|
() => this.debugService.runTo(uri, lineNumber).catch(onUnexpectedError)
|
|
432
|
-
)))
|
|
409
|
+
)));
|
|
433
410
|
}
|
|
434
411
|
return actions;
|
|
435
412
|
}
|
|
@@ -467,15 +444,15 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
467
444
|
}
|
|
468
445
|
const setCandidateDecorations = (changeAccessor, desiredCandidatePositions) => {
|
|
469
446
|
const desiredCandidateDecorations = createCandidateDecorations(model, this.breakpointDecorations, desiredCandidatePositions);
|
|
470
|
-
const candidateDecorationIds = changeAccessor.deltaDecorations((
|
|
447
|
+
const candidateDecorationIds = changeAccessor.deltaDecorations(( this.candidateDecorations.map(c => c.decorationId)), desiredCandidateDecorations);
|
|
471
448
|
this.candidateDecorations.forEach(candidate => {
|
|
472
449
|
candidate.inlineWidget.dispose();
|
|
473
450
|
});
|
|
474
|
-
this.candidateDecorations = (
|
|
451
|
+
this.candidateDecorations = ( candidateDecorationIds.map((decorationId, index) => {
|
|
475
452
|
const candidate = desiredCandidateDecorations[index];
|
|
476
453
|
const icon = candidate.breakpoint ? getBreakpointMessageAndIcon(this.debugService.state, this.debugService.getModel().areBreakpointsActivated(), candidate.breakpoint, this.labelService).icon : breakpoint.disabled;
|
|
477
454
|
const contextMenuActions = () => this.getContextMenuActions(candidate.breakpoint ? [candidate.breakpoint] : [], activeCodeEditor.getModel().uri, candidate.range.startLineNumber, candidate.range.startColumn);
|
|
478
|
-
const inlineWidget = (
|
|
455
|
+
const inlineWidget = ( new InlineBreakpointWidget(
|
|
479
456
|
activeCodeEditor,
|
|
480
457
|
decorationId,
|
|
481
458
|
ThemeIcon.asClassName(icon),
|
|
@@ -483,12 +460,12 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
483
460
|
this.debugService,
|
|
484
461
|
this.contextMenuService,
|
|
485
462
|
contextMenuActions
|
|
486
|
-
))
|
|
463
|
+
));
|
|
487
464
|
return {
|
|
488
465
|
decorationId,
|
|
489
466
|
inlineWidget
|
|
490
467
|
};
|
|
491
|
-
}))
|
|
468
|
+
}));
|
|
492
469
|
};
|
|
493
470
|
const activeCodeEditor = this.editor;
|
|
494
471
|
const model = activeCodeEditor.getModel();
|
|
@@ -496,7 +473,7 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
496
473
|
const debugSettings = this.configurationService.getValue('debug');
|
|
497
474
|
const desiredBreakpointDecorations = this.instantiationService.invokeFunction(accessor => createBreakpointDecorations(accessor, model, breakpoints, this.debugService.state, this.debugService.getModel().areBreakpointsActivated(), debugSettings.showBreakpointsInOverviewRuler));
|
|
498
475
|
const session = this.debugService.getViewModel().focusedSession;
|
|
499
|
-
const desiredCandidatePositions = debugSettings.showInlineBreakpointCandidates && session ? requestBreakpointCandidateLocations(this.editor.getModel(), (
|
|
476
|
+
const desiredCandidatePositions = debugSettings.showInlineBreakpointCandidates && session ? requestBreakpointCandidateLocations(this.editor.getModel(), ( desiredBreakpointDecorations.map(bp => bp.range.startLineNumber)), session) : Promise.resolve([]);
|
|
500
477
|
const desiredCandidatePositionsRaced = await Promise.race([desiredCandidatePositions, timeout(500).then(() => undefined)]);
|
|
501
478
|
if (desiredCandidatePositionsRaced === undefined) {
|
|
502
479
|
desiredCandidatePositions.then(v => activeCodeEditor.changeDecorations(d => setCandidateDecorations(d, v)));
|
|
@@ -504,16 +481,16 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
504
481
|
try {
|
|
505
482
|
this.ignoreDecorationsChangedEvent = true;
|
|
506
483
|
activeCodeEditor.changeDecorations((changeAccessor) => {
|
|
507
|
-
const decorationIds = changeAccessor.deltaDecorations((
|
|
484
|
+
const decorationIds = changeAccessor.deltaDecorations(( this.breakpointDecorations.map(bpd => bpd.decorationId)), desiredBreakpointDecorations);
|
|
508
485
|
this.breakpointDecorations.forEach(bpd => {
|
|
509
486
|
bpd.inlineWidget?.dispose();
|
|
510
487
|
});
|
|
511
|
-
this.breakpointDecorations = (
|
|
488
|
+
this.breakpointDecorations = ( decorationIds.map((decorationId, index) => {
|
|
512
489
|
let inlineWidget = undefined;
|
|
513
490
|
const breakpoint = breakpoints[index];
|
|
514
491
|
if (desiredBreakpointDecorations[index].options.before) {
|
|
515
492
|
const contextMenuActions = () => this.getContextMenuActions([breakpoint], activeCodeEditor.getModel().uri, breakpoint.lineNumber, breakpoint.column);
|
|
516
|
-
inlineWidget = (
|
|
493
|
+
inlineWidget = ( new InlineBreakpointWidget(
|
|
517
494
|
activeCodeEditor,
|
|
518
495
|
decorationId,
|
|
519
496
|
desiredBreakpointDecorations[index].options.glyphMarginClassName,
|
|
@@ -521,7 +498,7 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
521
498
|
this.debugService,
|
|
522
499
|
this.contextMenuService,
|
|
523
500
|
contextMenuActions
|
|
524
|
-
))
|
|
501
|
+
));
|
|
525
502
|
}
|
|
526
503
|
return {
|
|
527
504
|
decorationId,
|
|
@@ -529,7 +506,7 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
529
506
|
range: desiredBreakpointDecorations[index].range,
|
|
530
507
|
inlineWidget
|
|
531
508
|
};
|
|
532
|
-
}))
|
|
509
|
+
}));
|
|
533
510
|
if (desiredCandidatePositionsRaced) {
|
|
534
511
|
setCandidateDecorations(changeAccessor, desiredCandidatePositionsRaced);
|
|
535
512
|
}
|
|
@@ -563,7 +540,7 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
563
540
|
if (!somethingChanged) {
|
|
564
541
|
return;
|
|
565
542
|
}
|
|
566
|
-
const data = (
|
|
543
|
+
const data = ( new Map());
|
|
567
544
|
for (let i = 0, len = this.breakpointDecorations.length; i < len; i++) {
|
|
568
545
|
const breakpointDecoration = this.breakpointDecorations[i];
|
|
569
546
|
const decorationRange = model.getDecorationRange(breakpointDecoration.decorationId);
|
|
@@ -600,19 +577,19 @@ let BreakpointEditorContribution = class BreakpointEditorContribution {
|
|
|
600
577
|
}
|
|
601
578
|
dispose() {
|
|
602
579
|
this.breakpointWidget?.dispose();
|
|
603
|
-
this.editor.removeDecorations((
|
|
580
|
+
this.editor.removeDecorations(( this.breakpointDecorations.map(bpd => bpd.decorationId)));
|
|
604
581
|
dispose(this.toDispose);
|
|
605
582
|
}
|
|
606
583
|
};
|
|
607
|
-
BreakpointEditorContribution = (
|
|
608
|
-
(
|
|
609
|
-
(
|
|
610
|
-
(
|
|
611
|
-
(
|
|
612
|
-
(
|
|
613
|
-
(
|
|
614
|
-
(
|
|
615
|
-
], BreakpointEditorContribution))
|
|
584
|
+
BreakpointEditorContribution = ( __decorate([
|
|
585
|
+
( __param(1, IDebugService)),
|
|
586
|
+
( __param(2, IContextMenuService)),
|
|
587
|
+
( __param(3, IInstantiationService)),
|
|
588
|
+
( __param(4, IContextKeyService)),
|
|
589
|
+
( __param(5, IDialogService)),
|
|
590
|
+
( __param(6, IConfigurationService)),
|
|
591
|
+
( __param(7, ILabelService))
|
|
592
|
+
], BreakpointEditorContribution));
|
|
616
593
|
GutterActionsRegistry.registerGutterActionsGenerator(({ lineNumber, editor, accessor }, result) => {
|
|
617
594
|
const model = editor.getModel();
|
|
618
595
|
const debugService = accessor.get(IDebugService);
|
|
@@ -671,7 +648,7 @@ class InlineBreakpointWidget {
|
|
|
671
648
|
}
|
|
672
649
|
}));
|
|
673
650
|
this.toDispose.push(dom.addDisposableListener(this.domNode, dom.EventType.CONTEXT_MENU, e => {
|
|
674
|
-
const event = (
|
|
651
|
+
const event = ( new StandardMouseEvent(e));
|
|
675
652
|
const actions = this.getContextMenuActions();
|
|
676
653
|
this.contextMenuService.showContextMenu({
|
|
677
654
|
getAnchor: () => event,
|
|
@@ -714,14 +691,14 @@ class InlineBreakpointWidget {
|
|
|
714
691
|
dispose(this.toDispose);
|
|
715
692
|
}
|
|
716
693
|
}
|
|
717
|
-
InlineBreakpointWidget.__decorator = (
|
|
694
|
+
InlineBreakpointWidget.__decorator = ( __decorate([
|
|
718
695
|
memoize
|
|
719
|
-
], InlineBreakpointWidget.prototype, "getId", null))
|
|
696
|
+
], InlineBreakpointWidget.prototype, "getId", null));
|
|
720
697
|
registerThemingParticipant((theme, collector) => {
|
|
721
698
|
const debugIconBreakpointColor = theme.getColor(debugIconBreakpointForeground);
|
|
722
699
|
if (debugIconBreakpointColor) {
|
|
723
700
|
collector.addRule(`
|
|
724
|
-
${(
|
|
701
|
+
${( allBreakpoints.map(b => `.monaco-workbench ${ThemeIcon.asCSSSelector(b.regular)}`)).join(',\n ')},
|
|
725
702
|
.monaco-workbench ${ThemeIcon.asCSSSelector(debugBreakpointUnsupported)},
|
|
726
703
|
.monaco-workbench ${ThemeIcon.asCSSSelector(debugBreakpointHint)}:not([class*='codicon-debug-breakpoint']):not([class*='codicon-debug-stackframe']),
|
|
727
704
|
.monaco-workbench ${ThemeIcon.asCSSSelector(breakpoint.regular)}${ThemeIcon.asCSSSelector(debugStackframeFocused)}::after,
|
|
@@ -733,7 +710,7 @@ registerThemingParticipant((theme, collector) => {
|
|
|
733
710
|
const debugIconBreakpointDisabledColor = theme.getColor(debugIconBreakpointDisabledForeground);
|
|
734
711
|
if (debugIconBreakpointDisabledColor) {
|
|
735
712
|
collector.addRule(`
|
|
736
|
-
${(
|
|
713
|
+
${( allBreakpoints.map(b => `.monaco-workbench ${ThemeIcon.asCSSSelector(b.disabled)}`)).join(',\n ')} {
|
|
737
714
|
color: ${debugIconBreakpointDisabledColor};
|
|
738
715
|
}
|
|
739
716
|
`);
|
|
@@ -741,7 +718,7 @@ registerThemingParticipant((theme, collector) => {
|
|
|
741
718
|
const debugIconBreakpointUnverifiedColor = theme.getColor(debugIconBreakpointUnverifiedForeground);
|
|
742
719
|
if (debugIconBreakpointUnverifiedColor) {
|
|
743
720
|
collector.addRule(`
|
|
744
|
-
${(
|
|
721
|
+
${( allBreakpoints.map(b => `.monaco-workbench ${ThemeIcon.asCSSSelector(b.unverified)}`)).join(',\n ')} {
|
|
745
722
|
color: ${debugIconBreakpointUnverifiedColor};
|
|
746
723
|
}
|
|
747
724
|
`);
|
|
@@ -764,22 +741,10 @@ registerThemingParticipant((theme, collector) => {
|
|
|
764
741
|
`);
|
|
765
742
|
}
|
|
766
743
|
});
|
|
767
|
-
const debugIconBreakpointForeground = registerColor('debugIcon.breakpointForeground', { dark: '#E51400', light: '#E51400', hcDark: '#E51400', hcLight: '#E51400' },
|
|
768
|
-
const debugIconBreakpointDisabledForeground = registerColor('debugIcon.breakpointDisabledForeground', { dark: '#848484', light: '#848484', hcDark: '#848484', hcLight: '#848484' }, (
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
))
|
|
772
|
-
const debugIconBreakpointUnverifiedForeground = registerColor('debugIcon.breakpointUnverifiedForeground', { dark: '#848484', light: '#848484', hcDark: '#848484', hcLight: '#848484' }, ( (nls.localize(
|
|
773
|
-
'debugIcon.breakpointUnverifiedForeground',
|
|
774
|
-
'Icon color for unverified breakpoints.'
|
|
775
|
-
))));
|
|
776
|
-
const debugIconBreakpointCurrentStackframeForeground = registerColor('debugIcon.breakpointCurrentStackframeForeground', { dark: '#FFCC00', light: '#BE8700', hcDark: '#FFCC00', hcLight: '#BE8700' }, ( (nls.localize(
|
|
777
|
-
'debugIcon.breakpointCurrentStackframeForeground',
|
|
778
|
-
'Icon color for the current breakpoint stack frame.'
|
|
779
|
-
))));
|
|
780
|
-
const debugIconBreakpointStackframeForeground = registerColor('debugIcon.breakpointStackframeForeground', { dark: '#89D185', light: '#89D185', hcDark: '#89D185', hcLight: '#89D185' }, ( (nls.localize(
|
|
781
|
-
'debugIcon.breakpointStackframeForeground',
|
|
782
|
-
'Icon color for all breakpoint stack frames.'
|
|
783
|
-
))));
|
|
744
|
+
const debugIconBreakpointForeground = registerColor('debugIcon.breakpointForeground', { dark: '#E51400', light: '#E51400', hcDark: '#E51400', hcLight: '#E51400' }, nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'debugIcon.breakpointForeground', 'Icon color for breakpoints.'));
|
|
745
|
+
const debugIconBreakpointDisabledForeground = registerColor('debugIcon.breakpointDisabledForeground', { dark: '#848484', light: '#848484', hcDark: '#848484', hcLight: '#848484' }, nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'debugIcon.breakpointDisabledForeground', 'Icon color for disabled breakpoints.'));
|
|
746
|
+
const debugIconBreakpointUnverifiedForeground = registerColor('debugIcon.breakpointUnverifiedForeground', { dark: '#848484', light: '#848484', hcDark: '#848484', hcLight: '#848484' }, nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'debugIcon.breakpointUnverifiedForeground', 'Icon color for unverified breakpoints.'));
|
|
747
|
+
const debugIconBreakpointCurrentStackframeForeground = registerColor('debugIcon.breakpointCurrentStackframeForeground', { dark: '#FFCC00', light: '#BE8700', hcDark: '#FFCC00', hcLight: '#BE8700' }, nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'debugIcon.breakpointCurrentStackframeForeground', 'Icon color for the current breakpoint stack frame.'));
|
|
748
|
+
const debugIconBreakpointStackframeForeground = registerColor('debugIcon.breakpointStackframeForeground', { dark: '#89D185', light: '#89D185', hcDark: '#89D185', hcLight: '#89D185' }, nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointEditorContribution', 'debugIcon.breakpointStackframeForeground', 'Icon color for all breakpoint stack frames.'));
|
|
784
749
|
|
|
785
750
|
export { BreakpointEditorContribution, createBreakpointDecorations, debugIconBreakpointForeground };
|
|
@@ -108,32 +108,11 @@ let BreakpointWidget = class BreakpointWidget extends ZoneWidget {
|
|
|
108
108
|
const closeString = this.keybindingService.lookupKeybinding(CloseBreakpointWidgetCommand.ID)?.getLabel() || 'Escape';
|
|
109
109
|
switch (this.context) {
|
|
110
110
|
case 2 :
|
|
111
|
-
return (
|
|
112
|
-
(nls.localize(
|
|
113
|
-
'breakpointWidgetLogMessagePlaceholder',
|
|
114
|
-
"Message to log when breakpoint is hit. Expressions within {} are interpolated. '{0}' to accept, '{1}' to cancel.",
|
|
115
|
-
acceptString,
|
|
116
|
-
closeString
|
|
117
|
-
))
|
|
118
|
-
);
|
|
111
|
+
return nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointWidget', 'breakpointWidgetLogMessagePlaceholder', "Message to log when breakpoint is hit. Expressions within {} are interpolated. '{0}' to accept, '{1}' to cancel.", acceptString, closeString);
|
|
119
112
|
case 1 :
|
|
120
|
-
return (
|
|
121
|
-
(nls.localize(
|
|
122
|
-
'breakpointWidgetHitCountPlaceholder',
|
|
123
|
-
"Break when hit count condition is met. '{0}' to accept, '{1}' to cancel.",
|
|
124
|
-
acceptString,
|
|
125
|
-
closeString
|
|
126
|
-
))
|
|
127
|
-
);
|
|
113
|
+
return nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointWidget', 'breakpointWidgetHitCountPlaceholder', "Break when hit count condition is met. '{0}' to accept, '{1}' to cancel.", acceptString, closeString);
|
|
128
114
|
default:
|
|
129
|
-
return (
|
|
130
|
-
(nls.localize(
|
|
131
|
-
'breakpointWidgetExpressionPlaceholder',
|
|
132
|
-
"Break when expression evaluates to true. '{0}' to accept, '{1}' to cancel.",
|
|
133
|
-
acceptString,
|
|
134
|
-
closeString
|
|
135
|
-
))
|
|
136
|
-
);
|
|
115
|
+
return nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointWidget', 'breakpointWidgetExpressionPlaceholder', "Break when expression evaluates to true. '{0}' to accept, '{1}' to cancel.", acceptString, closeString);
|
|
137
116
|
}
|
|
138
117
|
}
|
|
139
118
|
getInputValue(breakpoint) {
|
|
@@ -176,11 +155,11 @@ let BreakpointWidget = class BreakpointWidget extends ZoneWidget {
|
|
|
176
155
|
_fillContainer(container) {
|
|
177
156
|
this.setCssClass('breakpoint-widget');
|
|
178
157
|
const selectBox = ( (new SelectBox(
|
|
179
|
-
[{ text:
|
|
158
|
+
[{ text: nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointWidget', 'expression', "Expression") }, { text: nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointWidget', 'hitCount', "Hit Count") }, { text: nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointWidget', 'logMessage', "Log Message") }],
|
|
180
159
|
this.context,
|
|
181
160
|
this.contextViewService,
|
|
182
161
|
defaultSelectBoxStyles,
|
|
183
|
-
{ ariaLabel:
|
|
162
|
+
{ ariaLabel: nls.localizeWithPath('vs/workbench/contrib/debug/browser/breakpointWidget', 'breakpointType', 'Breakpoint Type') }
|
|
184
163
|
)));
|
|
185
164
|
this.selectContainer = $('.breakpoint-select-container');
|
|
186
165
|
selectBox.render(dom.append(container, this.selectContainer));
|