@codingame/monaco-vscode-debug-service-override 4.5.1 → 4.5.2
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/platform/debug/common/extensionHostDebugIpc.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +105 -150
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +258 -529
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +28 -48
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +44 -71
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +84 -163
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +116 -120
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +7 -10
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +78 -140
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +72 -75
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +25 -28
- package/vscode/src/vs/workbench/contrib/debug/browser/debugMemory.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +16 -48
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +140 -132
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +218 -175
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +5 -18
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +9 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +69 -110
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +68 -53
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +77 -56
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +50 -75
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +13 -29
- package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +22 -51
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +47 -73
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +60 -76
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +14 -43
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +23 -42
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +17 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +56 -94
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +40 -79
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +55 -57
- package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +14 -28
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +12 -15
- package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +71 -146
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +92 -111
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +5 -8
- package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableCommands.js +5 -12
- package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +42 -22
|
@@ -52,6 +52,7 @@ import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/d
|
|
|
52
52
|
import { Expression } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
|
|
53
53
|
import { IHostService } from 'vscode/vscode/vs/workbench/services/host/browser/host.service';
|
|
54
54
|
|
|
55
|
+
const _moduleId = "vs/workbench/contrib/debug/browser/debugEditorContribution";
|
|
55
56
|
const MAX_NUM_INLINE_VALUES = 100;
|
|
56
57
|
const MAX_INLINE_DECORATOR_LENGTH = 150;
|
|
57
58
|
const MAX_TOKENIZATION_LINE_LEN = 500;
|
|
@@ -61,21 +62,13 @@ registerColor('editor.inlineValuesForeground', {
|
|
|
61
62
|
light: '#00000080',
|
|
62
63
|
hcDark: '#ffffff80',
|
|
63
64
|
hcLight: '#00000080'
|
|
64
|
-
}, ( localizeWithPath(
|
|
65
|
-
'vs/workbench/contrib/debug/browser/debugEditorContribution',
|
|
66
|
-
'editor.inlineValuesForeground',
|
|
67
|
-
"Color for the debug inline value text."
|
|
68
|
-
)));
|
|
65
|
+
}, ( localizeWithPath(_moduleId, 0, "Color for the debug inline value text.")));
|
|
69
66
|
registerColor('editor.inlineValuesBackground', {
|
|
70
67
|
dark: '#ffc80033',
|
|
71
68
|
light: '#ffc80033',
|
|
72
69
|
hcDark: '#ffc80033',
|
|
73
70
|
hcLight: '#ffc80033'
|
|
74
|
-
}, ( localizeWithPath(
|
|
75
|
-
'vs/workbench/contrib/debug/browser/debugEditorContribution',
|
|
76
|
-
'editor.inlineValuesBackground',
|
|
77
|
-
"Color for the debug inline value background."
|
|
78
|
-
)));
|
|
71
|
+
}, ( localizeWithPath(_moduleId, 1, "Color for the debug inline value background.")));
|
|
79
72
|
class InlineSegment {
|
|
80
73
|
constructor(column, text) {
|
|
81
74
|
this.column = column;
|
|
@@ -127,20 +120,20 @@ function replaceWsWithNoBreakWs(str) {
|
|
|
127
120
|
return str.replace(/[ \t]/g, noBreakWhitespace);
|
|
128
121
|
}
|
|
129
122
|
function createInlineValueDecorationsInsideRange(expressions, ranges, model, wordToLineNumbersMap) {
|
|
130
|
-
const nameValueMap = ( new Map());
|
|
123
|
+
const nameValueMap = ( (new Map()));
|
|
131
124
|
for (const expr of expressions) {
|
|
132
125
|
nameValueMap.set(expr.name, expr.value);
|
|
133
126
|
if (nameValueMap.size >= MAX_NUM_INLINE_VALUES) {
|
|
134
127
|
break;
|
|
135
128
|
}
|
|
136
129
|
}
|
|
137
|
-
const lineToNamesMap = ( new Map());
|
|
130
|
+
const lineToNamesMap = ( (new Map()));
|
|
138
131
|
nameValueMap.forEach((_value, name) => {
|
|
139
132
|
const lineNumbers = wordToLineNumbersMap.get(name);
|
|
140
133
|
if (lineNumbers) {
|
|
141
134
|
for (const lineNumber of lineNumbers) {
|
|
142
|
-
if (( ranges.some(r => lineNumber >= r.startLineNumber && lineNumber <= r.endLineNumber))) {
|
|
143
|
-
if (!( lineToNamesMap.has(lineNumber))) {
|
|
135
|
+
if (( (ranges.some(r => lineNumber >= r.startLineNumber && lineNumber <= r.endLineNumber)))) {
|
|
136
|
+
if (!( (lineToNamesMap.has(lineNumber)))) {
|
|
144
137
|
lineToNamesMap.set(lineNumber, []);
|
|
145
138
|
}
|
|
146
139
|
if (lineToNamesMap.get(lineNumber).indexOf(name) === -1) {
|
|
@@ -152,10 +145,10 @@ function createInlineValueDecorationsInsideRange(expressions, ranges, model, wor
|
|
|
152
145
|
});
|
|
153
146
|
const decorations = [];
|
|
154
147
|
lineToNamesMap.forEach((names, line) => {
|
|
155
|
-
const contentText = ( names.sort((first, second) => {
|
|
148
|
+
const contentText = ( (names.sort((first, second) => {
|
|
156
149
|
const content = model.getLineContent(line);
|
|
157
150
|
return content.indexOf(first) - content.indexOf(second);
|
|
158
|
-
}).map(name => `${name} = ${nameValueMap.get(name)}`)).join(', ');
|
|
151
|
+
}).map(name => `${name} = ${nameValueMap.get(name)}`))).join(', ');
|
|
159
152
|
decorations.push(...createInlineValueDecoration(line, contentText));
|
|
160
153
|
});
|
|
161
154
|
return decorations;
|
|
@@ -178,7 +171,7 @@ function getWordToLineNumbersMap(model, lineNumber, result) {
|
|
|
178
171
|
const wordMatch = DEFAULT_WORD_REGEXP.exec(tokenStr);
|
|
179
172
|
if (wordMatch) {
|
|
180
173
|
const word = wordMatch[0];
|
|
181
|
-
if (!( result.has(word))) {
|
|
174
|
+
if (!( (result.has(word)))) {
|
|
182
175
|
result.set(word, []);
|
|
183
176
|
}
|
|
184
177
|
result.get(word).push(lineNumber);
|
|
@@ -199,11 +192,11 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
199
192
|
this.hoverPosition = null;
|
|
200
193
|
this.mouseDown = false;
|
|
201
194
|
this.gutterIsHovered = false;
|
|
202
|
-
this.altListener = ( new MutableDisposable());
|
|
195
|
+
this.altListener = ( (new MutableDisposable()));
|
|
203
196
|
this.altPressed = false;
|
|
204
197
|
this.oldDecorations = this.editor.createDecorationsCollection();
|
|
205
|
-
this.displayedStore = ( new DisposableStore());
|
|
206
|
-
this.defaultHoverLockout = ( new MutableDisposable());
|
|
198
|
+
this.displayedStore = ( (new DisposableStore()));
|
|
199
|
+
this.defaultHoverLockout = ( (new MutableDisposable()));
|
|
207
200
|
this.debounceInfo = featureDebounceService.for(languageFeaturesService.inlineValuesProvider, 'InlineValues', { min: DEAFULT_INLINE_DEBOUNCE_DELAY });
|
|
208
201
|
this.hoverWidget = this.instantiationService.createInstance(DebugHoverWidget, this.editor);
|
|
209
202
|
this.toDispose = [this.defaultHoverLockout, this.altListener, this.displayedStore];
|
|
@@ -244,7 +237,7 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
244
237
|
this.toDispose.push(this.editor.onDidScrollChange(() => {
|
|
245
238
|
this.hideHoverWidget();
|
|
246
239
|
const model = this.editor.getModel();
|
|
247
|
-
if (model && ( this.languageFeaturesService.inlineValuesProvider.has(model))) {
|
|
240
|
+
if (model && ( (this.languageFeaturesService.inlineValuesProvider.has(model)))) {
|
|
248
241
|
this.updateInlineValuesScheduler.schedule();
|
|
249
242
|
}
|
|
250
243
|
}));
|
|
@@ -283,7 +276,7 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
283
276
|
}
|
|
284
277
|
const ownerDocument = this.editor.getContainerDomNode().ownerDocument;
|
|
285
278
|
this.altListener.value = addDisposableListener(ownerDocument, 'keydown', keydownEvent => {
|
|
286
|
-
const standardKeyboardEvent = ( new StandardKeyboardEvent(keydownEvent));
|
|
279
|
+
const standardKeyboardEvent = ( (new StandardKeyboardEvent(keydownEvent)));
|
|
287
280
|
if (standardKeyboardEvent.keyCode === 6 ) {
|
|
288
281
|
this.altPressed = true;
|
|
289
282
|
const debugHoverWasVisible = this.hoverWidget.isVisible();
|
|
@@ -292,11 +285,11 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
292
285
|
if (debugHoverWasVisible && this.hoverPosition) {
|
|
293
286
|
this.showEditorHover(this.hoverPosition, false);
|
|
294
287
|
}
|
|
295
|
-
const onKeyUp = ( new DomEmitter(ownerDocument, 'keyup'));
|
|
288
|
+
const onKeyUp = ( (new DomEmitter(ownerDocument, 'keyup')));
|
|
296
289
|
const listener = Event.any(this.hostService.onDidChangeFocus, onKeyUp.event)(keyupEvent => {
|
|
297
290
|
let standardKeyboardEvent = undefined;
|
|
298
291
|
if (isKeyboardEvent(keyupEvent)) {
|
|
299
|
-
standardKeyboardEvent = ( new StandardKeyboardEvent(keyupEvent));
|
|
292
|
+
standardKeyboardEvent = ( (new StandardKeyboardEvent(keyupEvent)));
|
|
300
293
|
}
|
|
301
294
|
if (!standardKeyboardEvent || standardKeyboardEvent.keyCode === 6 ) {
|
|
302
295
|
this.altPressed = false;
|
|
@@ -339,7 +332,7 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
339
332
|
}
|
|
340
333
|
showEditorHover(position, focus) {
|
|
341
334
|
const hoverController = this.editor.getContribution(HoverController.ID);
|
|
342
|
-
const range = ( new Range(position.lineNumber, position.column, position.lineNumber, position.column));
|
|
335
|
+
const range = ( (new Range(position.lineNumber, position.column, position.lineNumber, position.column)));
|
|
343
336
|
this.defaultHoverLockout.clear();
|
|
344
337
|
hoverController?.showContentHover(range, 1 , 0 , focus);
|
|
345
338
|
}
|
|
@@ -362,11 +355,11 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
362
355
|
return baseDelay * delayFactor;
|
|
363
356
|
}
|
|
364
357
|
get showHoverScheduler() {
|
|
365
|
-
const scheduler = ( new RunOnceScheduler(() => {
|
|
358
|
+
const scheduler = ( (new RunOnceScheduler(() => {
|
|
366
359
|
if (this.hoverPosition && !this.altPressed) {
|
|
367
360
|
this.showHover(this.hoverPosition, false);
|
|
368
361
|
}
|
|
369
|
-
}, this.hoverDelay));
|
|
362
|
+
}, this.hoverDelay)));
|
|
370
363
|
this.toDispose.push(scheduler);
|
|
371
364
|
return scheduler;
|
|
372
365
|
}
|
|
@@ -506,12 +499,12 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
506
499
|
setProperty(model.getValue(), ['launch'], { 'configurations': [] }, { tabSize, insertSpaces, eol })[0];
|
|
507
500
|
const startPosition = model.getPositionAt(edit.offset);
|
|
508
501
|
const lineNumber = startPosition.lineNumber;
|
|
509
|
-
const range = ( new Range(
|
|
502
|
+
const range = ( (new Range(
|
|
510
503
|
lineNumber,
|
|
511
504
|
startPosition.column,
|
|
512
505
|
lineNumber,
|
|
513
506
|
model.getLineMaxColumn(lineNumber)
|
|
514
|
-
));
|
|
507
|
+
)));
|
|
515
508
|
model.pushEditOperations(null, [EditOperation.replace(range, edit.content)], () => null);
|
|
516
509
|
getConfigurationPosition();
|
|
517
510
|
}
|
|
@@ -531,24 +524,28 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
531
524
|
await this.commandService.executeCommand('editor.action.triggerSuggest');
|
|
532
525
|
}
|
|
533
526
|
get removeInlineValuesScheduler() {
|
|
534
|
-
return (
|
|
535
|
-
|
|
536
|
-
|
|
527
|
+
return (
|
|
528
|
+
(new RunOnceScheduler(() => {
|
|
529
|
+
this.displayedStore.clear();
|
|
530
|
+
}, 100))
|
|
531
|
+
);
|
|
537
532
|
}
|
|
538
533
|
get updateInlineValuesScheduler() {
|
|
539
534
|
const model = this.editor.getModel();
|
|
540
|
-
return (
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
535
|
+
return (
|
|
536
|
+
(new RunOnceScheduler(
|
|
537
|
+
async () => await this.updateInlineValueDecorations(this.debugService.getViewModel().focusedStackFrame),
|
|
538
|
+
model ? this.debounceInfo.get(model) : DEAFULT_INLINE_DEBOUNCE_DELAY
|
|
539
|
+
))
|
|
540
|
+
);
|
|
544
541
|
}
|
|
545
542
|
async updateInlineValueDecorations(stackFrame) {
|
|
546
543
|
const var_value_format = '{0} = {1}';
|
|
547
544
|
const separator = ', ';
|
|
548
545
|
const model = this.editor.getModel();
|
|
549
546
|
const inlineValuesSetting = this.configurationService.getValue('debug').inlineValues;
|
|
550
|
-
const inlineValuesTurnedOn = inlineValuesSetting === true || inlineValuesSetting === 'on' || (inlineValuesSetting === 'auto' && model && ( this.languageFeaturesService.inlineValuesProvider.has(model)));
|
|
551
|
-
if (!inlineValuesTurnedOn || !model || !stackFrame || ( model.uri.toString()) !== ( stackFrame.source.uri.toString())) {
|
|
547
|
+
const inlineValuesTurnedOn = inlineValuesSetting === true || inlineValuesSetting === 'on' || (inlineValuesSetting === 'auto' && model && ( (this.languageFeaturesService.inlineValuesProvider.has(model))));
|
|
548
|
+
if (!inlineValuesTurnedOn || !model || !stackFrame || ( (model.uri.toString())) !== ( (stackFrame.source.uri.toString()))) {
|
|
552
549
|
if (!this.removeInlineValuesScheduler.isScheduled()) {
|
|
553
550
|
this.removeInlineValuesScheduler.schedule();
|
|
554
551
|
}
|
|
@@ -558,9 +555,9 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
558
555
|
this.displayedStore.clear();
|
|
559
556
|
const viewRanges = this.editor.getVisibleRangesPlusViewportAboveBelow();
|
|
560
557
|
let allDecorations;
|
|
561
|
-
const cts = ( new CancellationTokenSource());
|
|
558
|
+
const cts = ( (new CancellationTokenSource()));
|
|
562
559
|
this.displayedStore.add(toDisposable(() => cts.dispose(true)));
|
|
563
|
-
if (( this.languageFeaturesService.inlineValuesProvider.has(model))) {
|
|
560
|
+
if (( (this.languageFeaturesService.inlineValuesProvider.has(model)))) {
|
|
564
561
|
const findVariable = async (_key, caseSensitiveLookup) => {
|
|
565
562
|
const scopes = await stackFrame.getMostSpecificScopes(stackFrame.range);
|
|
566
563
|
const key = caseSensitiveLookup ? _key : _key.toLowerCase();
|
|
@@ -575,17 +572,17 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
575
572
|
};
|
|
576
573
|
const ctx = {
|
|
577
574
|
frameId: stackFrame.frameId,
|
|
578
|
-
stoppedLocation: ( new Range(
|
|
575
|
+
stoppedLocation: ( (new Range(
|
|
579
576
|
stackFrame.range.startLineNumber,
|
|
580
577
|
stackFrame.range.startColumn + 1,
|
|
581
578
|
stackFrame.range.endLineNumber,
|
|
582
579
|
stackFrame.range.endColumn + 1
|
|
583
|
-
))
|
|
580
|
+
)))
|
|
584
581
|
};
|
|
585
582
|
const providers = this.languageFeaturesService.inlineValuesProvider.ordered(model).reverse();
|
|
586
583
|
allDecorations = [];
|
|
587
|
-
const lineDecorations = ( new Map());
|
|
588
|
-
const promises = providers.flatMap(provider => ( viewRanges.map(
|
|
584
|
+
const lineDecorations = ( (new Map()));
|
|
585
|
+
const promises = providers.flatMap(provider => ( (viewRanges.map(
|
|
589
586
|
range => Promise.resolve(provider.provideInlineValues(model, range, ctx, cts.token)).then(async (result) => {
|
|
590
587
|
if (result) {
|
|
591
588
|
for (const iv of result) {
|
|
@@ -613,7 +610,7 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
613
610
|
expr = lineContent.substring(iv.range.startColumn - 1, iv.range.endColumn - 1);
|
|
614
611
|
}
|
|
615
612
|
if (expr) {
|
|
616
|
-
const expression = ( new Expression(expr));
|
|
613
|
+
const expression = ( (new Expression(expr)));
|
|
617
614
|
await expression.evaluate(stackFrame.thread.session, stackFrame, 'watch', true);
|
|
618
615
|
if (expression.available) {
|
|
619
616
|
text = format(var_value_format, expr, expression.value);
|
|
@@ -629,8 +626,8 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
629
626
|
lineSegments = [];
|
|
630
627
|
lineDecorations.set(line, lineSegments);
|
|
631
628
|
}
|
|
632
|
-
if (!( lineSegments.some(iv => iv.text === text))) {
|
|
633
|
-
lineSegments.push(( new InlineSegment(iv.range.startColumn, text)));
|
|
629
|
+
if (!( (lineSegments.some(iv => iv.text === text)))) {
|
|
630
|
+
lineSegments.push(( (new InlineSegment(iv.range.startColumn, text))));
|
|
634
631
|
}
|
|
635
632
|
}
|
|
636
633
|
}
|
|
@@ -638,33 +635,33 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
638
635
|
}, err => {
|
|
639
636
|
onUnexpectedExternalError(err);
|
|
640
637
|
})
|
|
641
|
-
)));
|
|
638
|
+
))));
|
|
642
639
|
const startTime = Date.now();
|
|
643
640
|
await Promise.all(promises);
|
|
644
641
|
this.updateInlineValuesScheduler.delay = this.debounceInfo.update(model, Date.now() - startTime);
|
|
645
642
|
lineDecorations.forEach((segments, line) => {
|
|
646
643
|
if (segments.length > 0) {
|
|
647
644
|
segments = segments.sort((a, b) => a.column - b.column);
|
|
648
|
-
const text = ( segments.map(s => s.text)).join(separator);
|
|
645
|
+
const text = ( (segments.map(s => s.text))).join(separator);
|
|
649
646
|
allDecorations.push(...createInlineValueDecoration(line, text));
|
|
650
647
|
}
|
|
651
648
|
});
|
|
652
649
|
}
|
|
653
650
|
else {
|
|
654
651
|
const scopes = await stackFrame.getMostSpecificScopes(stackFrame.range);
|
|
655
|
-
const decorationsPerScope = await Promise.all(( scopes.map(async (scope) => {
|
|
652
|
+
const decorationsPerScope = await Promise.all(( (scopes.map(async (scope) => {
|
|
656
653
|
const variables = await scope.getChildren();
|
|
657
|
-
let scopeRange = ( new Range(0, 0, stackFrame.range.startLineNumber, stackFrame.range.startColumn));
|
|
654
|
+
let scopeRange = ( (new Range(0, 0, stackFrame.range.startLineNumber, stackFrame.range.startColumn)));
|
|
658
655
|
if (scope.range) {
|
|
659
656
|
scopeRange = scopeRange.setStartPosition(scope.range.startLineNumber, scope.range.startColumn);
|
|
660
657
|
}
|
|
661
|
-
const ownRanges = ( viewRanges.map(r => r.intersectRanges(scopeRange))).filter(isDefined);
|
|
662
|
-
this._wordToLineNumbersMap ??= ( new WordsToLineNumbersCache(model));
|
|
658
|
+
const ownRanges = ( (viewRanges.map(r => r.intersectRanges(scopeRange)))).filter(isDefined);
|
|
659
|
+
this._wordToLineNumbersMap ??= ( (new WordsToLineNumbersCache(model)));
|
|
663
660
|
for (const range of ownRanges) {
|
|
664
661
|
this._wordToLineNumbersMap.ensureRangePopulated(range);
|
|
665
662
|
}
|
|
666
663
|
return createInlineValueDecorationsInsideRange(variables, ownRanges, model, this._wordToLineNumbersMap.value);
|
|
667
|
-
})));
|
|
664
|
+
}))));
|
|
668
665
|
allDecorations = distinct(decorationsPerScope.flat(),
|
|
669
666
|
decoration => `${decoration.range.startLineNumber}:${decoration?.options.after?.content}`);
|
|
670
667
|
}
|
|
@@ -683,31 +680,31 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
683
680
|
this.toDispose = dispose(this.toDispose);
|
|
684
681
|
}
|
|
685
682
|
};
|
|
686
|
-
DebugEditorContribution.__decorator = ( __decorate([
|
|
683
|
+
DebugEditorContribution.__decorator = ( (__decorate([
|
|
687
684
|
memoize
|
|
688
|
-
], DebugEditorContribution.prototype, "showHoverScheduler", null));
|
|
689
|
-
DebugEditorContribution.__decorator = ( __decorate([
|
|
685
|
+
], DebugEditorContribution.prototype, "showHoverScheduler", null)));
|
|
686
|
+
DebugEditorContribution.__decorator = ( (__decorate([
|
|
690
687
|
memoize
|
|
691
|
-
], DebugEditorContribution.prototype, "removeInlineValuesScheduler", null));
|
|
692
|
-
DebugEditorContribution.__decorator = ( __decorate([
|
|
688
|
+
], DebugEditorContribution.prototype, "removeInlineValuesScheduler", null)));
|
|
689
|
+
DebugEditorContribution.__decorator = ( (__decorate([
|
|
693
690
|
memoize
|
|
694
|
-
], DebugEditorContribution.prototype, "updateInlineValuesScheduler", null));
|
|
695
|
-
DebugEditorContribution = ( __decorate([
|
|
696
|
-
( __param(1, IDebugService)),
|
|
697
|
-
( __param(2, IInstantiationService)),
|
|
698
|
-
( __param(3, ICommandService)),
|
|
699
|
-
( __param(4, IConfigurationService)),
|
|
700
|
-
( __param(5, IHostService)),
|
|
701
|
-
( __param(6, IUriIdentityService)),
|
|
702
|
-
( __param(7, IContextKeyService)),
|
|
703
|
-
( __param(8, ILanguageFeaturesService)),
|
|
704
|
-
( __param(9, ILanguageFeatureDebounceService))
|
|
705
|
-
], DebugEditorContribution));
|
|
691
|
+
], DebugEditorContribution.prototype, "updateInlineValuesScheduler", null)));
|
|
692
|
+
DebugEditorContribution = ( (__decorate([
|
|
693
|
+
( (__param(1, IDebugService))),
|
|
694
|
+
( (__param(2, IInstantiationService))),
|
|
695
|
+
( (__param(3, ICommandService))),
|
|
696
|
+
( (__param(4, IConfigurationService))),
|
|
697
|
+
( (__param(5, IHostService))),
|
|
698
|
+
( (__param(6, IUriIdentityService))),
|
|
699
|
+
( (__param(7, IContextKeyService))),
|
|
700
|
+
( (__param(8, ILanguageFeaturesService))),
|
|
701
|
+
( (__param(9, ILanguageFeatureDebounceService)))
|
|
702
|
+
], DebugEditorContribution)));
|
|
706
703
|
class WordsToLineNumbersCache {
|
|
707
704
|
constructor(model) {
|
|
708
705
|
this.model = model;
|
|
709
|
-
this.value = ( new Map());
|
|
710
|
-
this.intervals = ( new Uint8Array(Math.ceil(model.getLineCount() / 8)));
|
|
706
|
+
this.value = ( (new Map()));
|
|
707
|
+
this.intervals = ( (new Uint8Array(Math.ceil(model.getLineCount() / 8))));
|
|
711
708
|
}
|
|
712
709
|
ensureRangePopulated(range) {
|
|
713
710
|
for (let lineNumber = range.startLineNumber; lineNumber <= range.endLineNumber; lineNumber++) {
|
|
@@ -733,9 +730,9 @@ CommandsRegistry.registerCommand('_executeInlineValueProvider', async (accessor,
|
|
|
733
730
|
const range = Range.lift(iRange);
|
|
734
731
|
const { inlineValuesProvider } = accessor.get(ILanguageFeaturesService);
|
|
735
732
|
const providers = inlineValuesProvider.ordered(model);
|
|
736
|
-
const providerResults = await Promise.all(( providers.map(
|
|
733
|
+
const providerResults = await Promise.all(( (providers.map(
|
|
737
734
|
provider => provider.provideInlineValues(model, range, context, CancellationToken.None)
|
|
738
|
-
)));
|
|
735
|
+
))));
|
|
739
736
|
return providerResults.flat().filter(isDefined);
|
|
740
737
|
});
|
|
741
738
|
|
|
@@ -36,6 +36,7 @@ import { Variable, Expression, VisualizedExpression } from 'vscode/vscode/vs/wor
|
|
|
36
36
|
import { getEvaluatableExpressionAtPosition } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugUtils';
|
|
37
37
|
|
|
38
38
|
var DebugHoverWidget_1;
|
|
39
|
+
const _moduleId = "vs/workbench/contrib/debug/browser/debugHover";
|
|
39
40
|
const $ = $$1;
|
|
40
41
|
async function doFindExpression(container, namesToFind) {
|
|
41
42
|
if (!container) {
|
|
@@ -56,7 +57,7 @@ async function doFindExpression(container, namesToFind) {
|
|
|
56
57
|
async function findExpressionInStackFrame(stackFrame, namesToFind) {
|
|
57
58
|
const scopes = await stackFrame.getScopes();
|
|
58
59
|
const nonExpensive = scopes.filter(s => !s.expensive);
|
|
59
|
-
const expressions = coalesce(await Promise.all(( nonExpensive.map(scope => doFindExpression(scope, namesToFind)))));
|
|
60
|
+
const expressions = coalesce(await Promise.all(( (nonExpensive.map(scope => doFindExpression(scope, namesToFind))))));
|
|
60
61
|
return expressions.length > 0 && expressions.every(e => e.value === expressions[0].value) ? expressions[0] : undefined;
|
|
61
62
|
}
|
|
62
63
|
let DebugHoverWidget = class DebugHoverWidget {
|
|
@@ -89,18 +90,18 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
89
90
|
this.treeContainer.setAttribute('role', 'tree');
|
|
90
91
|
const tip = append(this.complexValueContainer, $('.tip'));
|
|
91
92
|
tip.textContent = ( localizeWithPath(
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
_moduleId,
|
|
94
|
+
0,
|
|
94
95
|
'Hold {0} key to switch to editor language hover',
|
|
95
96
|
isMacintosh ? 'Option' : 'Alt'
|
|
96
97
|
));
|
|
97
98
|
const dataSource = this.instantiationService.createInstance(DebugHoverDataSource);
|
|
98
99
|
const linkeDetector = this.instantiationService.createInstance(LinkDetector);
|
|
99
|
-
this.tree = this.instantiationService.createInstance(WorkbenchAsyncDataTree, 'DebugHover', this.treeContainer, ( new DebugHoverDelegate()), [
|
|
100
|
+
this.tree = this.instantiationService.createInstance(WorkbenchAsyncDataTree, 'DebugHover', this.treeContainer, ( (new DebugHoverDelegate())), [
|
|
100
101
|
this.instantiationService.createInstance(VariablesRenderer, linkeDetector),
|
|
101
102
|
this.instantiationService.createInstance(VisualizedVariableRenderer, linkeDetector),
|
|
102
103
|
], dataSource, {
|
|
103
|
-
accessibilityProvider: ( new DebugHoverAccessibilityProvider()),
|
|
104
|
+
accessibilityProvider: ( (new DebugHoverAccessibilityProvider())),
|
|
104
105
|
mouseSupport: false,
|
|
105
106
|
horizontalScrolling: true,
|
|
106
107
|
useShadows: false,
|
|
@@ -113,7 +114,7 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
113
114
|
this.valueContainer = $('.value');
|
|
114
115
|
this.valueContainer.tabIndex = 0;
|
|
115
116
|
this.valueContainer.setAttribute('role', 'tooltip');
|
|
116
|
-
this.scrollbar = ( new DomScrollableElement(this.valueContainer, { horizontal: 2 }));
|
|
117
|
+
this.scrollbar = ( (new DomScrollableElement(this.valueContainer, { horizontal: 2 })));
|
|
117
118
|
this.domNode.appendChild(this.scrollbar.getDomNode());
|
|
118
119
|
this.toDispose.push(this.scrollbar);
|
|
119
120
|
this.editor.applyFontInfo(this.domNode);
|
|
@@ -176,7 +177,7 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
176
177
|
}
|
|
177
178
|
async showAt(position, focus) {
|
|
178
179
|
this.showCancellationSource?.cancel();
|
|
179
|
-
const cancellationSource = this.showCancellationSource = ( new CancellationTokenSource());
|
|
180
|
+
const cancellationSource = this.showCancellationSource = ( (new CancellationTokenSource()));
|
|
180
181
|
const session = this.debugService.getViewModel().focusedSession;
|
|
181
182
|
if (!session || !this.editor.hasModel()) {
|
|
182
183
|
this.hide();
|
|
@@ -312,25 +313,21 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
312
313
|
this.toDispose = dispose(this.toDispose);
|
|
313
314
|
}
|
|
314
315
|
};
|
|
315
|
-
DebugHoverWidget = DebugHoverWidget_1 = ( __decorate([
|
|
316
|
-
( __param(1, IDebugService)),
|
|
317
|
-
( __param(2, IInstantiationService)),
|
|
318
|
-
( __param(3, IMenuService)),
|
|
319
|
-
( __param(4, IContextKeyService)),
|
|
320
|
-
( __param(5, IContextMenuService))
|
|
321
|
-
], DebugHoverWidget));
|
|
316
|
+
DebugHoverWidget = DebugHoverWidget_1 = ( (__decorate([
|
|
317
|
+
( (__param(1, IDebugService))),
|
|
318
|
+
( (__param(2, IInstantiationService))),
|
|
319
|
+
( (__param(3, IMenuService))),
|
|
320
|
+
( (__param(4, IContextKeyService))),
|
|
321
|
+
( (__param(5, IContextMenuService)))
|
|
322
|
+
], DebugHoverWidget)));
|
|
322
323
|
class DebugHoverAccessibilityProvider {
|
|
323
324
|
getWidgetAriaLabel() {
|
|
324
|
-
return ( localizeWithPath(
|
|
325
|
-
'vs/workbench/contrib/debug/browser/debugHover',
|
|
326
|
-
'treeAriaLabel',
|
|
327
|
-
"Debug Hover"
|
|
328
|
-
));
|
|
325
|
+
return ( localizeWithPath(_moduleId, 1, "Debug Hover"));
|
|
329
326
|
}
|
|
330
327
|
getAriaLabel(element) {
|
|
331
328
|
return ( localizeWithPath(
|
|
332
|
-
|
|
333
|
-
|
|
329
|
+
_moduleId,
|
|
330
|
+
2,
|
|
334
331
|
"{0}, value {1}, variables, debug",
|
|
335
332
|
element.name,
|
|
336
333
|
element.value
|
|
@@ -387,23 +384,23 @@ let DebugHoverComputer = class DebugHoverComputer {
|
|
|
387
384
|
return;
|
|
388
385
|
}
|
|
389
386
|
if (session.capabilities.supportsEvaluateForHovers) {
|
|
390
|
-
const expression = ( new Expression(this._currentExpression));
|
|
387
|
+
const expression = ( (new Expression(this._currentExpression)));
|
|
391
388
|
await expression.evaluate(session, this.debugService.getViewModel().focusedStackFrame, 'hover');
|
|
392
389
|
return expression;
|
|
393
390
|
}
|
|
394
391
|
else {
|
|
395
392
|
const focusedStackFrame = this.debugService.getViewModel().focusedStackFrame;
|
|
396
393
|
if (focusedStackFrame) {
|
|
397
|
-
return await findExpressionInStackFrame(focusedStackFrame, coalesce(( this._currentExpression.split('.').map(word => word.trim()))));
|
|
394
|
+
return await findExpressionInStackFrame(focusedStackFrame, coalesce(( (this._currentExpression.split('.').map(word => word.trim())))));
|
|
398
395
|
}
|
|
399
396
|
}
|
|
400
397
|
return undefined;
|
|
401
398
|
}
|
|
402
399
|
};
|
|
403
|
-
DebugHoverComputer = ( __decorate([
|
|
404
|
-
( __param(1, IDebugService)),
|
|
405
|
-
( __param(2, ILanguageFeaturesService)),
|
|
406
|
-
( __param(3, ILogService))
|
|
407
|
-
], DebugHoverComputer));
|
|
400
|
+
DebugHoverComputer = ( (__decorate([
|
|
401
|
+
( (__param(1, IDebugService))),
|
|
402
|
+
( (__param(2, ILanguageFeaturesService))),
|
|
403
|
+
( (__param(3, ILogService)))
|
|
404
|
+
], DebugHoverComputer)));
|
|
408
405
|
|
|
409
406
|
export { DebugHoverWidget, findExpressionInStackFrame };
|
|
@@ -194,7 +194,7 @@ class MemoryRegionView extends Disposable {
|
|
|
194
194
|
}
|
|
195
195
|
read(fromOffset, toOffset) {
|
|
196
196
|
if (fromOffset < 0) {
|
|
197
|
-
throw new RangeError(`Invalid fromOffset: ${fromOffset}`);
|
|
197
|
+
throw ( new RangeError(`Invalid fromOffset: ${fromOffset}`));
|
|
198
198
|
}
|
|
199
199
|
return this.parent.read(this.range.fromOffset + fromOffset, this.range.fromOffset + Math.min(toOffset, this.width));
|
|
200
200
|
}
|
|
@@ -10,15 +10,12 @@ import { DEBUG_QUICK_ACCESS_PREFIX, ADD_CONFIGURATION_ID } from './debugCommands
|
|
|
10
10
|
import { debugConfigure, debugRemoveConfig } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
|
|
11
11
|
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
12
12
|
|
|
13
|
+
const _moduleId = "vs/workbench/contrib/debug/browser/debugQuickAccess";
|
|
13
14
|
let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends PickerQuickAccessProvider {
|
|
14
15
|
constructor(debugService, contextService, commandService, notificationService) {
|
|
15
16
|
super(DEBUG_QUICK_ACCESS_PREFIX, {
|
|
16
17
|
noResultsPick: {
|
|
17
|
-
label: ( localizeWithPath(
|
|
18
|
-
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
19
|
-
'noDebugResults',
|
|
20
|
-
"No matching launch configurations"
|
|
21
|
-
))
|
|
18
|
+
label: ( localizeWithPath(_moduleId, 0, "No matching launch configurations"))
|
|
22
19
|
}
|
|
23
20
|
});
|
|
24
21
|
this.debugService = debugService;
|
|
@@ -47,11 +44,7 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
47
44
|
highlights: { label: highlights },
|
|
48
45
|
buttons: [{
|
|
49
46
|
iconClass: ThemeIcon.asClassName(debugConfigure),
|
|
50
|
-
tooltip: ( localizeWithPath(
|
|
51
|
-
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
52
|
-
'customizeLaunchConfig',
|
|
53
|
-
"Configure Launch Configuration"
|
|
54
|
-
))
|
|
47
|
+
tooltip: ( localizeWithPath(_moduleId, 1, "Configure Launch Configuration"))
|
|
55
48
|
}],
|
|
56
49
|
trigger: () => {
|
|
57
50
|
config.launch.openConfigFile({ preserveFocus: false });
|
|
@@ -72,10 +65,7 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
72
65
|
const dynamicProviders = await configManager.getDynamicProviders();
|
|
73
66
|
if (dynamicProviders.length > 0) {
|
|
74
67
|
picks.push({
|
|
75
|
-
type: 'separator', label: ( localizeWithPath(
|
|
76
|
-
key: 'contributed',
|
|
77
|
-
comment: ['contributed is lower case because it looks better like that in UI. Nothing preceeds it. It is a name of the grouping of debug configurations.']
|
|
78
|
-
}, "contributed"))
|
|
68
|
+
type: 'separator', label: ( localizeWithPath(_moduleId, 2, "contributed"))
|
|
79
69
|
});
|
|
80
70
|
}
|
|
81
71
|
configManager.getRecentDynamicConfigurations().forEach(({ name, type }) => {
|
|
@@ -86,11 +76,7 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
86
76
|
highlights: { label: highlights },
|
|
87
77
|
buttons: [{
|
|
88
78
|
iconClass: ThemeIcon.asClassName(debugRemoveConfig),
|
|
89
|
-
tooltip: ( localizeWithPath(
|
|
90
|
-
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
91
|
-
'removeLaunchConfig',
|
|
92
|
-
"Remove Launch Configuration"
|
|
93
|
-
))
|
|
79
|
+
tooltip: ( localizeWithPath(_moduleId, 3, "Remove Launch Configuration"))
|
|
94
80
|
}],
|
|
95
81
|
trigger: () => {
|
|
96
82
|
configManager.removeRecentDynamicConfigurations(name, type);
|
|
@@ -113,12 +99,7 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
113
99
|
dynamicProviders.forEach(provider => {
|
|
114
100
|
picks.push({
|
|
115
101
|
label: `$(folder) ${provider.label}...`,
|
|
116
|
-
ariaLabel: ( localizeWithPath(
|
|
117
|
-
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
118
|
-
{ key: 'providerAriaLabel', comment: ['Placeholder stands for the provider label. For example "NodeJS".'] },
|
|
119
|
-
"{0} contributed configurations",
|
|
120
|
-
provider.label
|
|
121
|
-
)),
|
|
102
|
+
ariaLabel: ( localizeWithPath(_moduleId, 4, "{0} contributed configurations", provider.label)),
|
|
122
103
|
accept: async () => {
|
|
123
104
|
const pick = await provider.pick();
|
|
124
105
|
if (pick) {
|
|
@@ -130,40 +111,27 @@ let StartDebugQuickAccessProvider = class StartDebugQuickAccessProvider extends
|
|
|
130
111
|
});
|
|
131
112
|
const visibleLaunches = configManager.getLaunches().filter(launch => !launch.hidden);
|
|
132
113
|
if (visibleLaunches.length > 0) {
|
|
133
|
-
picks.push({ type: 'separator', label: ( localizeWithPath(
|
|
134
|
-
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
135
|
-
'configure',
|
|
136
|
-
"configure"
|
|
137
|
-
)) });
|
|
114
|
+
picks.push({ type: 'separator', label: ( localizeWithPath(_moduleId, 5, "configure")) });
|
|
138
115
|
}
|
|
139
116
|
for (const launch of visibleLaunches) {
|
|
140
117
|
const label = this.contextService.getWorkbenchState() === 3 ?
|
|
141
|
-
( localizeWithPath(
|
|
142
|
-
|
|
143
|
-
"addConfigTo",
|
|
144
|
-
"Add Config ({0})...",
|
|
145
|
-
launch.name
|
|
146
|
-
)) :
|
|
147
|
-
( localizeWithPath(
|
|
148
|
-
'vs/workbench/contrib/debug/browser/debugQuickAccess',
|
|
149
|
-
'addConfiguration',
|
|
150
|
-
"Add Configuration..."
|
|
151
|
-
));
|
|
118
|
+
( localizeWithPath(_moduleId, 6, "Add Config ({0})...", launch.name)) :
|
|
119
|
+
( localizeWithPath(_moduleId, 7, "Add Configuration..."));
|
|
152
120
|
picks.push({
|
|
153
121
|
label,
|
|
154
122
|
description: this.contextService.getWorkbenchState() === 3 ? launch.name : '',
|
|
155
123
|
highlights: { label: matchesFuzzy(filter, label, true) ?? undefined },
|
|
156
|
-
accept: () => this.commandService.executeCommand(ADD_CONFIGURATION_ID, ( launch.uri.toString()))
|
|
124
|
+
accept: () => this.commandService.executeCommand(ADD_CONFIGURATION_ID, ( (launch.uri.toString())))
|
|
157
125
|
});
|
|
158
126
|
}
|
|
159
127
|
return picks;
|
|
160
128
|
}
|
|
161
129
|
};
|
|
162
|
-
StartDebugQuickAccessProvider = ( __decorate([
|
|
163
|
-
( __param(0, IDebugService)),
|
|
164
|
-
( __param(1, IWorkspaceContextService)),
|
|
165
|
-
( __param(2, ICommandService)),
|
|
166
|
-
( __param(3, INotificationService))
|
|
167
|
-
], StartDebugQuickAccessProvider));
|
|
130
|
+
StartDebugQuickAccessProvider = ( (__decorate([
|
|
131
|
+
( (__param(0, IDebugService))),
|
|
132
|
+
( (__param(1, IWorkspaceContextService))),
|
|
133
|
+
( (__param(2, ICommandService))),
|
|
134
|
+
( (__param(3, INotificationService)))
|
|
135
|
+
], StartDebugQuickAccessProvider)));
|
|
168
136
|
|
|
169
137
|
export { StartDebugQuickAccessProvider };
|