@codingame/monaco-vscode-debug-service-override 6.0.3 → 7.0.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/callStackView.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +58 -53
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +4 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +34 -29
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +22 -15
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +14 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +21 -6
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugToolBar.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/media/repl.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +10 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +58 -37
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +4 -14
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +13 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +30 -8
- package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +4 -1
- package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
|
-
import { $ as $$1, append, addStandardDisposableListener, isAncestorOfActiveElement } from 'vscode/vscode/vs/base/browser/dom';
|
|
2
|
+
import { $ as $$1, append, addStandardDisposableListener, SafeTriangle, isAncestorOfActiveElement } from 'vscode/vscode/vs/base/browser/dom';
|
|
3
3
|
import { DomScrollableElement } from 'vscode/vscode/vs/base/browser/ui/scrollbar/scrollableElement';
|
|
4
4
|
import { coalesce } from 'vscode/vscode/vs/base/common/arrays';
|
|
5
5
|
import { CancellationTokenSource } from 'vscode/vscode/vs/base/common/cancellation';
|
|
@@ -187,7 +187,10 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
187
187
|
getDomNode() {
|
|
188
188
|
return this.domNode;
|
|
189
189
|
}
|
|
190
|
-
|
|
190
|
+
isInSafeTriangle(x, y) {
|
|
191
|
+
return this._isVisible && !!this.safeTriangle?.contains(x, y);
|
|
192
|
+
}
|
|
193
|
+
async showAt(position, focus, mouseEvent) {
|
|
191
194
|
this.showCancellationSource?.cancel();
|
|
192
195
|
const cancellationSource = this.showCancellationSource = ( (new CancellationTokenSource()));
|
|
193
196
|
const session = this.debugService.getViewModel().focusedSession;
|
|
@@ -220,19 +223,19 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
220
223
|
range: result.range,
|
|
221
224
|
options: DebugHoverWidget_1._HOVER_HIGHLIGHT_DECORATION_OPTIONS
|
|
222
225
|
}]);
|
|
223
|
-
return this.doShow(result.range.getStartPosition(), expression, focus);
|
|
226
|
+
return this.doShow(result.range.getStartPosition(), expression, focus, mouseEvent);
|
|
224
227
|
}
|
|
225
228
|
static { this._HOVER_HIGHLIGHT_DECORATION_OPTIONS = ModelDecorationOptions.register({
|
|
226
229
|
description: 'bdebug-hover-highlight',
|
|
227
230
|
className: 'hoverHighlight'
|
|
228
231
|
}); }
|
|
229
|
-
async doShow(position, expression, focus,
|
|
232
|
+
async doShow(position, expression, focus, mouseEvent) {
|
|
230
233
|
if (!this.domNode) {
|
|
231
234
|
this.create();
|
|
232
235
|
}
|
|
233
236
|
this.showAtPosition = position;
|
|
234
237
|
this._isVisible = true;
|
|
235
|
-
if (!expression.hasChildren
|
|
238
|
+
if (!expression.hasChildren) {
|
|
236
239
|
this.complexValueContainer.hidden = true;
|
|
237
240
|
this.valueContainer.hidden = false;
|
|
238
241
|
renderExpressionValue(expression, this.valueContainer, {
|
|
@@ -256,6 +259,7 @@ let DebugHoverWidget = class DebugHoverWidget {
|
|
|
256
259
|
this.tree.scrollTop = 0;
|
|
257
260
|
this.tree.scrollLeft = 0;
|
|
258
261
|
this.complexValueContainer.hidden = false;
|
|
262
|
+
this.safeTriangle = mouseEvent && new SafeTriangle(mouseEvent.posx, mouseEvent.posy, this.domNode);
|
|
259
263
|
if (focus) {
|
|
260
264
|
this.editor.render();
|
|
261
265
|
this.tree.domFocus();
|
|
@@ -384,27 +388,30 @@ let DebugHoverComputer = class DebugHoverComputer {
|
|
|
384
388
|
return { rangeChanged: false };
|
|
385
389
|
}
|
|
386
390
|
const { range, matchingExpression } = result;
|
|
387
|
-
const rangeChanged = this.
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
this._currentExpression = matchingExpression;
|
|
391
|
-
this._currentRange = Range.lift(range);
|
|
392
|
-
return { rangeChanged, range: this._currentRange };
|
|
391
|
+
const rangeChanged = !this._current?.range.equalsRange(range);
|
|
392
|
+
this._current = { expression: matchingExpression, range: Range.lift(range) };
|
|
393
|
+
return { rangeChanged, range: this._current.range };
|
|
393
394
|
}
|
|
394
395
|
async evaluate(session) {
|
|
395
|
-
if (!this.
|
|
396
|
+
if (!this._current) {
|
|
396
397
|
this.logService.error('No expression to evaluate');
|
|
397
398
|
return;
|
|
398
399
|
}
|
|
400
|
+
const textModel = this.editor.getModel();
|
|
401
|
+
const debugSource = textModel && session.getSourceForUri(textModel?.uri);
|
|
399
402
|
if (session.capabilities.supportsEvaluateForHovers) {
|
|
400
|
-
const expression = ( (new Expression(this.
|
|
401
|
-
await expression.evaluate(session, this.debugService.getViewModel().focusedStackFrame, 'hover'
|
|
403
|
+
const expression = ( (new Expression(this._current.expression)));
|
|
404
|
+
await expression.evaluate(session, this.debugService.getViewModel().focusedStackFrame, 'hover', undefined, debugSource ? {
|
|
405
|
+
line: this._current.range.startLineNumber,
|
|
406
|
+
column: this._current.range.startColumn,
|
|
407
|
+
source: debugSource.raw,
|
|
408
|
+
} : undefined);
|
|
402
409
|
return expression;
|
|
403
410
|
}
|
|
404
411
|
else {
|
|
405
412
|
const focusedStackFrame = this.debugService.getViewModel().focusedStackFrame;
|
|
406
413
|
if (focusedStackFrame) {
|
|
407
|
-
return await findExpressionInStackFrame(focusedStackFrame, coalesce(( (this.
|
|
414
|
+
return await findExpressionInStackFrame(focusedStackFrame, coalesce(( (this._current.expression.split('.').map(word => word.trim())))));
|
|
408
415
|
}
|
|
409
416
|
}
|
|
410
417
|
return undefined;
|
|
@@ -47,6 +47,7 @@ import { saveAllBeforeDebugStart, getExtensionHostDebugSession } from 'vscode/vs
|
|
|
47
47
|
import { ViewModel } from '../common/debugViewModel.js';
|
|
48
48
|
import { DisassemblyViewInput } from 'vscode/vscode/vs/workbench/contrib/debug/common/disassemblyViewInput';
|
|
49
49
|
import { VIEWLET_ID as VIEWLET_ID$1 } from 'vscode/vscode/vs/workbench/contrib/files/common/files';
|
|
50
|
+
import { ITestService } from 'vscode/vscode/vs/workbench/contrib/testing/common/testService.service';
|
|
50
51
|
import { NumberBadge } from 'vscode/vscode/vs/workbench/services/activity/common/activity';
|
|
51
52
|
import { IActivityService } from 'vscode/vscode/vs/workbench/services/activity/common/activity.service';
|
|
52
53
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
@@ -59,7 +60,7 @@ import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/
|
|
|
59
60
|
|
|
60
61
|
const _moduleId = "vs/workbench/contrib/debug/browser/debugService";
|
|
61
62
|
let DebugService = class DebugService {
|
|
62
|
-
constructor(editorService, paneCompositeService, viewsService, viewDescriptorService, notificationService, dialogService, layoutService, contextService, contextKeyService, lifecycleService, instantiationService, extensionService, fileService, configurationService, extensionHostDebugService, activityService, commandService, quickInputService, workspaceTrustRequestService, uriIdentityService) {
|
|
63
|
+
constructor(editorService, paneCompositeService, viewsService, viewDescriptorService, notificationService, dialogService, layoutService, contextService, contextKeyService, lifecycleService, instantiationService, extensionService, fileService, configurationService, extensionHostDebugService, activityService, commandService, quickInputService, workspaceTrustRequestService, uriIdentityService, testService) {
|
|
63
64
|
this.editorService = editorService;
|
|
64
65
|
this.paneCompositeService = paneCompositeService;
|
|
65
66
|
this.viewsService = viewsService;
|
|
@@ -80,6 +81,7 @@ let DebugService = class DebugService {
|
|
|
80
81
|
this.quickInputService = quickInputService;
|
|
81
82
|
this.workspaceTrustRequestService = workspaceTrustRequestService;
|
|
82
83
|
this.uriIdentityService = uriIdentityService;
|
|
84
|
+
this.testService = testService;
|
|
83
85
|
this.restartingSessions = ( (new Set()));
|
|
84
86
|
this.disposables = ( (new DisposableStore()));
|
|
85
87
|
this.initializing = false;
|
|
@@ -159,7 +161,7 @@ let DebugService = class DebugService {
|
|
|
159
161
|
}
|
|
160
162
|
}));
|
|
161
163
|
this.disposables.add(extensionService.onWillStop(evt => {
|
|
162
|
-
evt.veto(this.
|
|
164
|
+
evt.veto(this.model.getSessions().length > 0, ( localizeWithPath(_moduleId, 2, 'A debug session is still running.')));
|
|
163
165
|
}));
|
|
164
166
|
this.initContextKeys(contextKeyService);
|
|
165
167
|
}
|
|
@@ -735,6 +737,14 @@ let DebugService = class DebugService {
|
|
|
735
737
|
}
|
|
736
738
|
}
|
|
737
739
|
};
|
|
740
|
+
if (session.correlatedTestRun) {
|
|
741
|
+
if (!session.correlatedTestRun.completedAt) {
|
|
742
|
+
this.testService.cancelTestRun(session.correlatedTestRun.id);
|
|
743
|
+
await Event.toPromise(session.correlatedTestRun.onComplete);
|
|
744
|
+
}
|
|
745
|
+
this.testService.runResolvedTests(session.correlatedTestRun.request);
|
|
746
|
+
return;
|
|
747
|
+
}
|
|
738
748
|
if (session.capabilities.supportsRestartRequest) {
|
|
739
749
|
const taskResult = await runTasks();
|
|
740
750
|
if (taskResult === TaskRunResult.Success) {
|
|
@@ -1258,7 +1268,8 @@ DebugService = ( (__decorate([
|
|
|
1258
1268
|
( (__param(16, ICommandService))),
|
|
1259
1269
|
( (__param(17, IQuickInputService))),
|
|
1260
1270
|
( (__param(18, IWorkspaceTrustRequestService))),
|
|
1261
|
-
( (__param(19, IUriIdentityService)))
|
|
1271
|
+
( (__param(19, IUriIdentityService))),
|
|
1272
|
+
( (__param(20, ITestService)))
|
|
1262
1273
|
], DebugService)));
|
|
1263
1274
|
function getStackFrameThreadAndSessionToFocus(model, stackFrame, thread, session, avoidSession) {
|
|
1264
1275
|
if (!session) {
|
|
@@ -38,11 +38,13 @@ import { IPaneCompositePartService } from 'vscode/vscode/vs/workbench/services/p
|
|
|
38
38
|
import { getActiveWindow } from 'vscode/vscode/vs/base/browser/dom';
|
|
39
39
|
import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
40
40
|
import { isDefined } from 'vscode/vscode/vs/base/common/types';
|
|
41
|
+
import { ITestService } from 'vscode/vscode/vs/workbench/contrib/testing/common/testService.service';
|
|
42
|
+
import { ITestResultService } from 'vscode/vscode/vs/workbench/contrib/testing/common/testResultService.service';
|
|
41
43
|
|
|
42
44
|
const _moduleId = "vs/workbench/contrib/debug/browser/debugSession";
|
|
43
45
|
const TRIGGERED_BREAKPOINT_MAX_DELAY = 1500;
|
|
44
46
|
let DebugSession = class DebugSession {
|
|
45
|
-
constructor(id, _configuration, root, model, options, debugService, telemetryService, hostService, configurationService, paneCompositeService, workspaceContextService, productService, notificationService, lifecycleService, uriIdentityService, instantiationService, customEndpointTelemetryService, workbenchEnvironmentService, logService) {
|
|
47
|
+
constructor(id, _configuration, root, model, options, debugService, telemetryService, hostService, configurationService, paneCompositeService, workspaceContextService, productService, notificationService, lifecycleService, uriIdentityService, instantiationService, customEndpointTelemetryService, workbenchEnvironmentService, logService, testService, testResultService) {
|
|
46
48
|
this.id = id;
|
|
47
49
|
this._configuration = _configuration;
|
|
48
50
|
this.root = root;
|
|
@@ -60,6 +62,7 @@ let DebugSession = class DebugSession {
|
|
|
60
62
|
this.customEndpointTelemetryService = customEndpointTelemetryService;
|
|
61
63
|
this.workbenchEnvironmentService = workbenchEnvironmentService;
|
|
62
64
|
this.logService = logService;
|
|
65
|
+
this.testService = testService;
|
|
63
66
|
this.initialized = false;
|
|
64
67
|
this.sources = ( (new Map()));
|
|
65
68
|
this.threads = ( (new Map()));
|
|
@@ -96,6 +99,12 @@ let DebugSession = class DebugSession {
|
|
|
96
99
|
dispose(toDispose);
|
|
97
100
|
}));
|
|
98
101
|
}
|
|
102
|
+
this.correlatedTestRun = options?.testRun
|
|
103
|
+
? testResultService.getResult(options.testRun.runId)
|
|
104
|
+
: this.parentSession?.correlatedTestRun;
|
|
105
|
+
if (this.correlatedTestRun) {
|
|
106
|
+
toDispose.add(this.correlatedTestRun.onComplete(() => this.terminate()));
|
|
107
|
+
}
|
|
99
108
|
const compoundRoot = this._options.compoundRoot;
|
|
100
109
|
if (compoundRoot) {
|
|
101
110
|
toDispose.add(compoundRoot.onDidSessionStop(() => this.terminate()));
|
|
@@ -304,6 +313,10 @@ let DebugSession = class DebugSession {
|
|
|
304
313
|
if (this._options.lifecycleManagedByParent && this.parentSession) {
|
|
305
314
|
await this.parentSession.terminate(restart);
|
|
306
315
|
}
|
|
316
|
+
else if (this.correlatedTestRun && !this.correlatedTestRun.completedAt && !this.didTerminateTestRun) {
|
|
317
|
+
this.didTerminateTestRun = true;
|
|
318
|
+
this.testService.cancelTestRun(this.correlatedTestRun.id);
|
|
319
|
+
}
|
|
307
320
|
else if (this.raw) {
|
|
308
321
|
if (this.raw.capabilities.supportsTerminateRequest && this._configuration.resolved.request === 'launch') {
|
|
309
322
|
await this.raw.terminate(restart);
|
|
@@ -577,13 +590,13 @@ let DebugSession = class DebugSession {
|
|
|
577
590
|
const token = threadId ? this.getNewCancellationToken(threadId) : undefined;
|
|
578
591
|
return this.raw.variables({ variablesReference, filter, start, count }, token);
|
|
579
592
|
}
|
|
580
|
-
evaluate(expression, frameId, context) {
|
|
593
|
+
evaluate(expression, frameId, context, location) {
|
|
581
594
|
if (!this.raw) {
|
|
582
595
|
throw ( (new Error(
|
|
583
596
|
localizeWithPath(_moduleId, 0, "No debugger available, can not send '{0}'", 'evaluate')
|
|
584
597
|
)));
|
|
585
598
|
}
|
|
586
|
-
return this.raw.evaluate({ expression, frameId, context });
|
|
599
|
+
return this.raw.evaluate({ expression, frameId, context, line: location?.line, column: location?.column, source: location?.source });
|
|
587
600
|
}
|
|
588
601
|
async restartFrame(frameId, threadId) {
|
|
589
602
|
await this.waitForTriggeredBreakpoints();
|
|
@@ -1289,8 +1302,8 @@ let DebugSession = class DebugSession {
|
|
|
1289
1302
|
removeReplExpressions() {
|
|
1290
1303
|
this.repl.removeReplExpressions();
|
|
1291
1304
|
}
|
|
1292
|
-
async addReplExpression(stackFrame,
|
|
1293
|
-
await this.repl.addReplExpression(this, stackFrame,
|
|
1305
|
+
async addReplExpression(stackFrame, expression) {
|
|
1306
|
+
await this.repl.addReplExpression(this, stackFrame, expression);
|
|
1294
1307
|
this.debugService.getViewModel().updateViews();
|
|
1295
1308
|
}
|
|
1296
1309
|
appendToRepl(data, isImportant) {
|
|
@@ -1314,7 +1327,9 @@ DebugSession = ( (__decorate([
|
|
|
1314
1327
|
( (__param(15, IInstantiationService))),
|
|
1315
1328
|
( (__param(16, ICustomEndpointTelemetryService))),
|
|
1316
1329
|
( (__param(17, IWorkbenchEnvironmentService))),
|
|
1317
|
-
( (__param(18, ILogService)))
|
|
1330
|
+
( (__param(18, ILogService))),
|
|
1331
|
+
( (__param(19, ITestService))),
|
|
1332
|
+
( (__param(20, ITestResultService)))
|
|
1318
1333
|
], DebugSession)));
|
|
1319
1334
|
class ThreadStatusScheduler extends Disposable {
|
|
1320
1335
|
constructor() {
|
|
@@ -6,7 +6,7 @@ import { Action } from 'vscode/vscode/vs/base/common/actions';
|
|
|
6
6
|
import { equals } from 'vscode/vscode/vs/base/common/arrays';
|
|
7
7
|
import { RunOnceScheduler } from 'vscode/vscode/vs/base/common/async';
|
|
8
8
|
import { isCancellationError } from 'vscode/vscode/vs/base/common/errors';
|
|
9
|
-
import { DisposableStore, MutableDisposable, dispose } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
9
|
+
import { DisposableStore, MutableDisposable, markAsSingleton, dispose } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
10
10
|
import './media/debugToolBar.css.js';
|
|
11
11
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
12
12
|
import { DropdownWithPrimaryActionViewItem } from 'vscode/vscode/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem';
|
|
@@ -337,7 +337,7 @@ const registerDebugToolBarItem = (id, title, order, icon, when, precondition, al
|
|
|
337
337
|
}
|
|
338
338
|
}));
|
|
339
339
|
};
|
|
340
|
-
MenuRegistry.onDidChangeMenu(e => {
|
|
340
|
+
markAsSingleton(MenuRegistry.onDidChangeMenu(e => {
|
|
341
341
|
if (( (e.has(MenuId.DebugToolBar)))) {
|
|
342
342
|
dispose(debugViewTitleItems);
|
|
343
343
|
const items = MenuRegistry.getMenuItems(MenuId.DebugToolBar);
|
|
@@ -353,7 +353,7 @@ MenuRegistry.onDidChangeMenu(e => {
|
|
|
353
353
|
}));
|
|
354
354
|
}
|
|
355
355
|
}
|
|
356
|
-
});
|
|
356
|
+
}));
|
|
357
357
|
const CONTEXT_TOOLBAR_COMMAND_CENTER = ( (ContextKeyExpr.equals('config.debug.toolBarLocation', 'commandCenter')));
|
|
358
358
|
MenuRegistry.appendMenuItem(MenuId.CommandCenterCenter, {
|
|
359
359
|
submenu: MenuId.DebugToolBar,
|
|
@@ -27,7 +27,7 @@ import { widgetClose } from 'vscode/vscode/vs/platform/theme/common/iconRegistry
|
|
|
27
27
|
|
|
28
28
|
const _moduleId = "vs/workbench/contrib/debug/browser/exceptionWidget";
|
|
29
29
|
const $ = $$1;
|
|
30
|
-
const debugExceptionWidgetBorder = registerColor('debugExceptionWidget.border',
|
|
30
|
+
const debugExceptionWidgetBorder = registerColor('debugExceptionWidget.border', '#a31515', ( localizeWithPath(_moduleId, 0, 'Exception widget border color.')));
|
|
31
31
|
const debugExceptionWidgetBackground = registerColor('debugExceptionWidget.background', { dark: '#420b0d', light: '#f1dfde', hcDark: '#420b0d', hcLight: '#f1dfde' }, ( localizeWithPath(_moduleId, 1, 'Exception widget background color.')));
|
|
32
32
|
let ExceptionWidget = class ExceptionWidget extends ZoneWidget {
|
|
33
33
|
constructor(editor, exceptionInfo, debugSession, themeService, instantiationService) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import n from 'vscode/external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
2
|
|
|
3
|
-
var css = ".monaco-workbench .debug-toolbar{-webkit-app-region:no-drag;border-radius:4px;display:flex;height:26px;padding-left:7px;position:absolute;z-index:
|
|
3
|
+
var css = ".monaco-workbench .debug-toolbar{-webkit-app-region:no-drag;border-radius:4px;display:flex;height:26px;padding-left:7px;position:absolute;z-index:2520}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item{margin-right:4px}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container{margin-right:7px}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container .monaco-select-box,.monaco-workbench .start-debug-action-item .select-container .monaco-select-box{padding:0 22px 0 6px}.monaco-workbench .debug-toolbar .drag-area{align-items:center;cursor:grab;display:flex;justify-content:center;opacity:.5;width:16px}.monaco-workbench .debug-toolbar .drag-area.dragged{cursor:grabbing}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item .action-label{align-items:center;background-position:50%;background-repeat:no-repeat;background-size:16px;display:flex;justify-content:center;margin-right:0}";
|
|
4
4
|
n(css,{});
|
|
5
5
|
|
|
6
6
|
export { css, css as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import n from 'vscode/external/rollup-plugin-styles/dist/runtime/inject-css.js';
|
|
2
2
|
|
|
3
|
-
var css = ".monaco-workbench .repl{box-sizing:border-box;height:100%;overflow:hidden}.monaco-workbench .repl .repl-tree .monaco-tl-contents{user-select:text;-webkit-user-select:text;white-space:pre}.monaco-workbench .repl .repl-tree .monaco-tl-contents .expression{font-family:var(--vscode-repl-font-family);font-size:var(--vscode-repl-font-size);line-height:var(--vscode-repl-line-height)}.monaco-workbench .repl .repl-tree .monaco-tl-contents .expression .lazy-button{cursor:pointer}.monaco-workbench .repl .repl-tree .monaco-tl-twistie{background-position-y:calc(100% - var(--vscode-repl-font-size-for-twistie))}.monaco-workbench .repl .repl-tree.word-wrap .monaco-tl-contents{word-wrap:break-word;white-space:pre-wrap;word-break:break-all}.monaco-workbench .repl .repl-tree.word-wrap .monaco-tl-contents .expression.nested-variable{white-space:pre}.monaco-workbench .repl .repl-tree .monaco-tl-twistie,.monaco-workbench .repl .repl-tree .monaco-tl-twistie.collapsible+.monaco-tl-contents{cursor:pointer}.monaco-workbench .repl .repl-tree .output.expression.value-and-source{display:flex}.monaco-workbench .repl .repl-tree .output.expression.value-and-source .count-badge-wrapper,.monaco-workbench .repl .repl-tree .output.expression.value-and-source .
|
|
3
|
+
var css = ".monaco-workbench .repl{box-sizing:border-box;height:100%;overflow:hidden}.monaco-workbench .repl .repl-tree .monaco-tl-contents{user-select:text;-webkit-user-select:text;white-space:pre}.monaco-workbench .repl .repl-tree .monaco-tl-contents .expression{font-family:var(--vscode-repl-font-family);font-size:var(--vscode-repl-font-size);line-height:var(--vscode-repl-line-height)}.monaco-workbench .repl .repl-tree .monaco-tl-contents .expression .lazy-button{cursor:pointer}.monaco-workbench .repl .repl-tree .monaco-tl-twistie{background-position-y:calc(100% - var(--vscode-repl-font-size-for-twistie))}.monaco-workbench .repl .repl-tree.word-wrap .monaco-tl-contents{word-wrap:break-word;white-space:pre-wrap;word-break:break-all}.monaco-workbench .repl .repl-tree.word-wrap .monaco-tl-contents .expression.nested-variable{white-space:pre}.monaco-workbench .repl .repl-tree .monaco-tl-twistie,.monaco-workbench .repl .repl-tree .monaco-tl-twistie.collapsible+.monaco-tl-contents{cursor:pointer}.monaco-workbench .repl .repl-tree .output.expression.value-and-source{display:flex}.monaco-workbench .repl .repl-tree .output.expression.value-and-source .count-badge-wrapper,.monaco-workbench .repl .repl-tree .output.expression.value-and-source .label{margin-right:4px}.monaco-workbench .repl .repl-tree .output.expression.value-and-source .count-badge-wrapper .monaco-count-badge{min-height:16px;word-break:keep-all}.monaco-workbench .repl .repl-tree .monaco-tl-contents .arrow{left:2px;position:absolute}.monaco-workbench .repl .repl-tree .group .source,.monaco-workbench .repl .repl-tree .output.expression.value-and-source .source{cursor:pointer;direction:rtl;margin-left:auto;margin-right:8px;max-width:400px;overflow:hidden;text-align:right;text-decoration:underline;text-overflow:ellipsis;white-space:nowrap}.monaco-workbench .repl .repl-tree .evaluation-result.expression>.value,.monaco-workbench .repl .repl-tree .output.expression>.value{margin-left:0}.monaco-workbench .repl .repl-tree .output.expression .name:not(:empty){margin-right:6px}.monaco-workbench .repl .repl-input-wrapper{align-items:center;display:flex}.monaco-workbench .repl .repl-input-wrapper .suggest-status-bar .monaco-action-bar.right{display:none}.monaco-workbench .repl .repl-input-wrapper .repl-input-chevron{display:flex;flex-shrink:0;font-weight:600;height:100%;justify-content:center;padding:0 6px 0 8px;width:16px}.monaco-workbench .repl .repl-tree .output.expression>.ignore{font-style:italic}.monaco-workbench .repl .repl-tree .output.expression .code-bold{font-weight:700}.monaco-workbench .repl .repl-tree .output.expression .code-italic{font-style:italic}.monaco-workbench .repl .repl-tree .output.expression .code-underline{text-decoration:underline;text-decoration-style:solid}.monaco-workbench .repl .repl-tree .output.expression .code-double-underline{text-decoration:underline;text-decoration-style:double}.monaco-workbench .repl .repl-tree .output.expression .code-strike-through{text-decoration:line-through;text-decoration-style:solid}.monaco-workbench .repl .repl-tree .output.expression .code-overline{text-decoration:overline;text-decoration-style:solid}.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-underline.code-strike-through{text-decoration:overline underline line-through;text-decoration-style:solid}.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-underline{text-decoration:overline underline;text-decoration-style:solid}.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-strike-through{text-decoration:overline line-through;text-decoration-style:solid}.monaco-workbench .repl .repl-tree .output.expression .code-underline.code-strike-through{text-decoration:underline line-through;text-decoration-style:solid}.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-double-underline.code-strike-through{text-decoration:overline underline line-through;text-decoration-style:double}.monaco-workbench .repl .repl-tree .output.expression .code-overline.code-double-underline{text-decoration:overline underline;text-decoration-style:double}.monaco-workbench .repl .repl-tree .output.expression .code-double-underline.code-strike-through{text-decoration:underline line-through;text-decoration-style:double}.monaco-workbench .repl .repl-tree .output.expression .code-dim{opacity:.4}.monaco-workbench .repl .repl-tree .output.expression .code-hidden{opacity:0}.monaco-workbench .repl .repl-tree .output.expression .code-blink{animation:code-blink-key 1s cubic-bezier(1,0,0,1) infinite alternate}.monaco-workbench .repl .repl-tree .output.expression .code-rapid-blink{animation:code-blink-key .3s cubic-bezier(1,0,0,1) infinite alternate}@keyframes code-blink-key{to{opacity:.4}}.monaco-workbench .repl .repl-tree .output.expression .code-subscript{font-size:smaller;line-height:normal;vertical-align:sub}.monaco-workbench .repl .repl-tree .output.expression .code-superscript{font-size:smaller;line-height:normal;vertical-align:super}";
|
|
4
4
|
n(css,{});
|
|
5
5
|
|
|
6
6
|
export { css, css as default };
|
|
@@ -116,7 +116,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
116
116
|
this._register(this.menu);
|
|
117
117
|
this.history = ( (new HistoryNavigator(
|
|
118
118
|
JSON.parse(this.storageService.get(HISTORY_STORAGE_KEY, StorageScope.WORKSPACE, '[]')),
|
|
119
|
-
|
|
119
|
+
100
|
|
120
120
|
)));
|
|
121
121
|
this.filter = ( (new ReplFilter()));
|
|
122
122
|
this.filter.filterQuery = filterText;
|
|
@@ -394,6 +394,14 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
396
|
}
|
|
397
|
+
sendReplInput(input) {
|
|
398
|
+
const session = this.tree?.getInput();
|
|
399
|
+
if (session && !this.isReadonly) {
|
|
400
|
+
session.addReplExpression(this.debugService.getViewModel().focusedStackFrame, input);
|
|
401
|
+
revealLastElement(this.tree);
|
|
402
|
+
this.history.add(input);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
397
405
|
getVisibleContent() {
|
|
398
406
|
let text = '';
|
|
399
407
|
if (this.model && this.tree) {
|
|
@@ -571,7 +579,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
571
579
|
historyNavigationForwardsEnablement.set(enabled);
|
|
572
580
|
};
|
|
573
581
|
CONTEXT_IN_DEBUG_REPL.bindTo(this.scopedContextKeyService).set(true);
|
|
574
|
-
this.scopedInstantiationService = this.instantiationService.createChild(( (new ServiceCollection([IContextKeyService, this.scopedContextKeyService]))));
|
|
582
|
+
this.scopedInstantiationService = this._register(this.instantiationService.createChild(( (new ServiceCollection([IContextKeyService, this.scopedContextKeyService])))));
|
|
575
583
|
const options = getSimpleEditorOptions(this.configurationService);
|
|
576
584
|
options.readOnly = true;
|
|
577
585
|
options.suggest = { showStatusBar: true };
|
|
@@ -2,17 +2,21 @@ import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
|
2
2
|
import { $ as $$1, append, clearNode, addDisposableListener } from 'vscode/vscode/vs/base/browser/dom';
|
|
3
3
|
import { CountBadge } from 'vscode/vscode/vs/base/browser/ui/countBadge/countBadge';
|
|
4
4
|
import { HighlightedLabel } from 'vscode/vscode/vs/base/browser/ui/highlightedlabel/highlightedLabel';
|
|
5
|
+
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
5
6
|
import { CachedListVirtualDelegate } from 'vscode/vscode/vs/base/browser/ui/list/list';
|
|
6
7
|
import { createMatches } from 'vscode/vscode/vs/base/common/filters';
|
|
7
|
-
import {
|
|
8
|
+
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
8
9
|
import { basename } from 'vscode/vscode/vs/base/common/path';
|
|
9
10
|
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
11
|
+
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
10
12
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
13
|
+
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
11
14
|
import { IContextViewService } from 'vscode/vscode/vs/platform/contextview/browser/contextView.service';
|
|
15
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
16
|
+
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
12
17
|
import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label.service';
|
|
13
18
|
import { defaultCountBadgeStyles } from 'vscode/vscode/vs/platform/theme/browser/defaultStyles';
|
|
14
19
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService.service';
|
|
15
|
-
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
16
20
|
import { renderExpressionValue, AbstractExpressionsRenderer, renderVariable } from 'vscode/vscode/vs/workbench/contrib/debug/browser/baseDebugView';
|
|
17
21
|
import { handleANSIOutput } from './debugANSIHandling.js';
|
|
18
22
|
import { debugConsoleEvaluationInput } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
|
|
@@ -20,9 +24,6 @@ import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/d
|
|
|
20
24
|
import { Variable } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
|
|
21
25
|
import { ReplVariableElement, ReplEvaluationResult, ReplOutputElement, ReplEvaluationInput, ReplGroup, RawObjectReplElement } from 'vscode/vscode/vs/workbench/contrib/debug/common/replModel';
|
|
22
26
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
|
|
23
|
-
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
24
|
-
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
25
|
-
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
26
27
|
|
|
27
28
|
var ReplGroupRenderer_1, ReplOutputElementRenderer_1, ReplVariablesRenderer_1;
|
|
28
29
|
const _moduleId = "vs/workbench/contrib/debug/browser/replViewer";
|
|
@@ -49,28 +50,35 @@ class ReplEvaluationInputsRenderer {
|
|
|
49
50
|
let ReplGroupRenderer = class ReplGroupRenderer {
|
|
50
51
|
static { ReplGroupRenderer_1 = this; }
|
|
51
52
|
static { this.ID = 'replGroup'; }
|
|
52
|
-
constructor(linkDetector, themeService) {
|
|
53
|
+
constructor(linkDetector, themeService, instaService) {
|
|
53
54
|
this.linkDetector = linkDetector;
|
|
54
55
|
this.themeService = themeService;
|
|
56
|
+
this.instaService = instaService;
|
|
55
57
|
}
|
|
56
58
|
get templateId() {
|
|
57
59
|
return ReplGroupRenderer_1.ID;
|
|
58
60
|
}
|
|
59
61
|
renderTemplate(container) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
container.classList.add('group');
|
|
63
|
+
const expression = append(container, $('.output.expression.value-and-source'));
|
|
64
|
+
const label = append(expression, $('span.label'));
|
|
65
|
+
const source = this.instaService.createInstance(SourceWidget, expression);
|
|
66
|
+
return { label, source };
|
|
62
67
|
}
|
|
63
68
|
renderElement(element, _index, templateData) {
|
|
64
69
|
const replGroup = element.element;
|
|
65
70
|
clearNode(templateData.label);
|
|
66
71
|
const result = handleANSIOutput(replGroup.name, this.linkDetector, this.themeService, undefined);
|
|
67
72
|
templateData.label.appendChild(result);
|
|
73
|
+
templateData.source.setSource(replGroup.sourceData);
|
|
68
74
|
}
|
|
69
|
-
disposeTemplate(
|
|
75
|
+
disposeTemplate(templateData) {
|
|
76
|
+
templateData.source.dispose();
|
|
70
77
|
}
|
|
71
78
|
};
|
|
72
79
|
ReplGroupRenderer = ReplGroupRenderer_1 = ( (__decorate([
|
|
73
|
-
( (__param(1, IThemeService)))
|
|
80
|
+
( (__param(1, IThemeService))),
|
|
81
|
+
( (__param(2, IInstantiationService)))
|
|
74
82
|
], ReplGroupRenderer)));
|
|
75
83
|
class ReplEvaluationResultsRenderer {
|
|
76
84
|
static { this.ID = 'replEvaluationResult'; }
|
|
@@ -99,12 +107,10 @@ class ReplEvaluationResultsRenderer {
|
|
|
99
107
|
let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
100
108
|
static { ReplOutputElementRenderer_1 = this; }
|
|
101
109
|
static { this.ID = 'outputReplElement'; }
|
|
102
|
-
constructor(linkDetector,
|
|
110
|
+
constructor(linkDetector, themeService, instaService) {
|
|
103
111
|
this.linkDetector = linkDetector;
|
|
104
|
-
this.editorService = editorService;
|
|
105
|
-
this.hoverService = hoverService;
|
|
106
|
-
this.labelService = labelService;
|
|
107
112
|
this.themeService = themeService;
|
|
113
|
+
this.instaService = instaService;
|
|
108
114
|
}
|
|
109
115
|
get templateId() {
|
|
110
116
|
return ReplOutputElementRenderer_1.ID;
|
|
@@ -116,22 +122,8 @@ let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
|
116
122
|
data.container = container;
|
|
117
123
|
data.countContainer = append(expression, $('.count-badge-wrapper'));
|
|
118
124
|
data.count = ( (new CountBadge(data.countContainer, {}, defaultCountBadgeStyles)));
|
|
119
|
-
data.value = append(expression, $('span.value'));
|
|
120
|
-
data.source =
|
|
121
|
-
data.toDispose = [];
|
|
122
|
-
data.toDispose.push(addDisposableListener(data.source, 'click', e => {
|
|
123
|
-
e.preventDefault();
|
|
124
|
-
e.stopPropagation();
|
|
125
|
-
const source = data.getReplElementSource();
|
|
126
|
-
if (source) {
|
|
127
|
-
source.source.openInEditor(this.editorService, {
|
|
128
|
-
startLineNumber: source.lineNumber,
|
|
129
|
-
startColumn: source.column,
|
|
130
|
-
endLineNumber: source.lineNumber,
|
|
131
|
-
endColumn: source.column
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}));
|
|
125
|
+
data.value = append(expression, $('span.value.label'));
|
|
126
|
+
data.source = this.instaService.createInstance(SourceWidget, expression);
|
|
135
127
|
return data;
|
|
136
128
|
}
|
|
137
129
|
renderElement({ element }, index, templateData) {
|
|
@@ -141,8 +133,7 @@ let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
|
141
133
|
templateData.value.className = 'value';
|
|
142
134
|
templateData.value.appendChild(handleANSIOutput(element.value, this.linkDetector, this.themeService, element.session.root));
|
|
143
135
|
templateData.value.classList.add((element.severity === Severity$1.Warning) ? 'warn' : (element.severity === Severity$1.Error) ? 'error' : (element.severity === Severity$1.Ignore) ? 'ignore' : 'info');
|
|
144
|
-
templateData.source.
|
|
145
|
-
templateData.toDispose.push(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), templateData.source, element.sourceData ? `${this.labelService.getUriLabel(element.sourceData.source.uri)}:${element.sourceData.lineNumber}` : ''));
|
|
136
|
+
templateData.source.setSource(element.sourceData);
|
|
146
137
|
templateData.getReplElementSource = () => element.sourceData;
|
|
147
138
|
}
|
|
148
139
|
setElementCount(element, templateData) {
|
|
@@ -155,17 +146,15 @@ let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
|
155
146
|
}
|
|
156
147
|
}
|
|
157
148
|
disposeTemplate(templateData) {
|
|
158
|
-
dispose(
|
|
149
|
+
templateData.source.dispose();
|
|
159
150
|
}
|
|
160
151
|
disposeElement(_element, _index, templateData) {
|
|
161
152
|
templateData.elementListener.dispose();
|
|
162
153
|
}
|
|
163
154
|
};
|
|
164
155
|
ReplOutputElementRenderer = ReplOutputElementRenderer_1 = ( (__decorate([
|
|
165
|
-
( (__param(1,
|
|
166
|
-
( (__param(2,
|
|
167
|
-
( (__param(3, ILabelService))),
|
|
168
|
-
( (__param(4, IThemeService)))
|
|
156
|
+
( (__param(1, IThemeService))),
|
|
157
|
+
( (__param(2, IInstantiationService)))
|
|
169
158
|
], ReplOutputElementRenderer)));
|
|
170
159
|
let ReplVariablesRenderer = class ReplVariablesRenderer extends AbstractExpressionsRenderer {
|
|
171
160
|
static { ReplVariablesRenderer_1 = this; }
|
|
@@ -180,6 +169,7 @@ let ReplVariablesRenderer = class ReplVariablesRenderer extends AbstractExpressi
|
|
|
180
169
|
}
|
|
181
170
|
renderElement(node, _index, data) {
|
|
182
171
|
const element = node.element;
|
|
172
|
+
data.elementDisposable.clear();
|
|
183
173
|
super.renderExpressionElement(element instanceof ReplVariableElement ? element.expression : element, node, data);
|
|
184
174
|
}
|
|
185
175
|
renderExpression(expression, data, highlights) {
|
|
@@ -335,5 +325,36 @@ class ReplAccessibilityProvider {
|
|
|
335
325
|
return '';
|
|
336
326
|
}
|
|
337
327
|
}
|
|
328
|
+
let SourceWidget = class SourceWidget extends Disposable {
|
|
329
|
+
constructor(container, editorService, hoverService, labelService) {
|
|
330
|
+
super();
|
|
331
|
+
this.hoverService = hoverService;
|
|
332
|
+
this.labelService = labelService;
|
|
333
|
+
this.el = append(container, $('.source'));
|
|
334
|
+
this._register(addDisposableListener(this.el, 'click', e => {
|
|
335
|
+
e.preventDefault();
|
|
336
|
+
e.stopPropagation();
|
|
337
|
+
if (this.source) {
|
|
338
|
+
this.source.source.openInEditor(editorService, {
|
|
339
|
+
startLineNumber: this.source.lineNumber,
|
|
340
|
+
startColumn: this.source.column,
|
|
341
|
+
endLineNumber: this.source.lineNumber,
|
|
342
|
+
endColumn: this.source.column
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
}));
|
|
346
|
+
}
|
|
347
|
+
setSource(source) {
|
|
348
|
+
this.source = source;
|
|
349
|
+
this.el.textContent = source ? `${basename(source.source.name)}:${source.lineNumber}` : '';
|
|
350
|
+
this.hover ??= this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('mouse'), this.el, ''));
|
|
351
|
+
this.hover.update(source ? `${this.labelService.getUriLabel(source.source.uri)}:${source.lineNumber}` : '');
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
SourceWidget = ( (__decorate([
|
|
355
|
+
( (__param(1, IEditorService))),
|
|
356
|
+
( (__param(2, IHoverService))),
|
|
357
|
+
( (__param(3, ILabelService)))
|
|
358
|
+
], SourceWidget)));
|
|
338
359
|
|
|
339
360
|
export { ReplAccessibilityProvider, ReplDataSource, ReplDelegate, ReplEvaluationInputsRenderer, ReplEvaluationResultsRenderer, ReplGroupRenderer, ReplOutputElementRenderer, ReplRawObjectsRenderer, ReplVariablesRenderer };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
|
|
2
2
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
3
|
-
import { registerColor,
|
|
3
|
+
import { registerColor, transparent, asCssVariableName, asCssVariable } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
4
4
|
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
5
5
|
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
6
6
|
import 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
@@ -41,22 +41,12 @@ const STATUS_BAR_DEBUGGING_FOREGROUND = registerColor('statusBar.debuggingForegr
|
|
|
41
41
|
1,
|
|
42
42
|
"Status bar foreground color when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
43
43
|
)));
|
|
44
|
-
const STATUS_BAR_DEBUGGING_BORDER = registerColor('statusBar.debuggingBorder',
|
|
45
|
-
dark: STATUS_BAR_BORDER,
|
|
46
|
-
light: STATUS_BAR_BORDER,
|
|
47
|
-
hcDark: STATUS_BAR_BORDER,
|
|
48
|
-
hcLight: STATUS_BAR_BORDER
|
|
49
|
-
}, ( localizeWithPath(
|
|
44
|
+
const STATUS_BAR_DEBUGGING_BORDER = registerColor('statusBar.debuggingBorder', STATUS_BAR_BORDER, ( localizeWithPath(
|
|
50
45
|
_moduleId,
|
|
51
46
|
2,
|
|
52
47
|
"Status bar border color separating to the sidebar and editor when a program is being debugged. The status bar is shown in the bottom of the window"
|
|
53
48
|
)));
|
|
54
|
-
const COMMAND_CENTER_DEBUGGING_BACKGROUND = registerColor('commandCenter.debuggingBackground',
|
|
55
|
-
dark: { value: STATUS_BAR_DEBUGGING_BACKGROUND, op: ColorTransformType.Transparent, factor: 0.258 },
|
|
56
|
-
hcDark: { value: STATUS_BAR_DEBUGGING_BACKGROUND, op: ColorTransformType.Transparent, factor: 0.258 },
|
|
57
|
-
light: { value: STATUS_BAR_DEBUGGING_BACKGROUND, op: ColorTransformType.Transparent, factor: 0.258 },
|
|
58
|
-
hcLight: { value: STATUS_BAR_DEBUGGING_BACKGROUND, op: ColorTransformType.Transparent, factor: 0.258 }
|
|
59
|
-
}, ( localizeWithPath(
|
|
49
|
+
const COMMAND_CENTER_DEBUGGING_BACKGROUND = registerColor('commandCenter.debuggingBackground', ( (transparent(STATUS_BAR_DEBUGGING_BACKGROUND, 0.258))), ( localizeWithPath(
|
|
60
50
|
_moduleId,
|
|
61
51
|
3,
|
|
62
52
|
"Command center background color when a program is being debugged"
|
|
@@ -92,7 +82,7 @@ let StatusBarColorProvider = class StatusBarColorProvider {
|
|
|
92
82
|
if (e.affectsConfiguration('debug.enableStatusBarColor') || e.affectsConfiguration('debug.toolBarLocation')) {
|
|
93
83
|
this.update();
|
|
94
84
|
}
|
|
95
|
-
}, this.disposables);
|
|
85
|
+
}, undefined, this.disposables);
|
|
96
86
|
this.update();
|
|
97
87
|
}
|
|
98
88
|
update() {
|
|
@@ -350,6 +350,7 @@ let VisualizedVariableRenderer = class VisualizedVariableRenderer extends Abstra
|
|
|
350
350
|
return VisualizedVariableRenderer_1.ID;
|
|
351
351
|
}
|
|
352
352
|
renderElement(node, index, data) {
|
|
353
|
+
data.elementDisposable.clear();
|
|
353
354
|
super.renderExpressionElement(node.element, node, data);
|
|
354
355
|
}
|
|
355
356
|
renderExpression(expression, data, highlights) {
|
|
@@ -414,7 +415,7 @@ VisualizedVariableRenderer = VisualizedVariableRenderer_1 = ( (__decorate([
|
|
|
414
415
|
let VariablesRenderer = class VariablesRenderer extends AbstractExpressionsRenderer {
|
|
415
416
|
static { VariablesRenderer_1 = this; }
|
|
416
417
|
static { this.ID = 'variable'; }
|
|
417
|
-
constructor(linkDetector, menuService, contextKeyService, visualization, contextMenuService, commandService, debugService, contextViewService, hoverService) {
|
|
418
|
+
constructor(linkDetector, menuService, contextKeyService, visualization, contextMenuService, commandService, debugService, contextViewService, hoverService, configurationService) {
|
|
418
419
|
super(debugService, contextViewService, hoverService);
|
|
419
420
|
this.linkDetector = linkDetector;
|
|
420
421
|
this.menuService = menuService;
|
|
@@ -422,14 +423,22 @@ let VariablesRenderer = class VariablesRenderer extends AbstractExpressionsRende
|
|
|
422
423
|
this.visualization = visualization;
|
|
423
424
|
this.contextMenuService = contextMenuService;
|
|
424
425
|
this.commandService = commandService;
|
|
426
|
+
this.configurationService = configurationService;
|
|
425
427
|
}
|
|
426
428
|
get templateId() {
|
|
427
429
|
return VariablesRenderer_1.ID;
|
|
428
430
|
}
|
|
429
431
|
renderExpression(expression, data, highlights) {
|
|
430
|
-
|
|
432
|
+
const showType = this.configurationService.getValue('debug').showVariableTypes;
|
|
433
|
+
renderVariable(data.elementDisposable, this.commandService, this.hoverService, expression, data, true, highlights, this.linkDetector, showType);
|
|
431
434
|
}
|
|
432
435
|
renderElement(node, index, data) {
|
|
436
|
+
data.elementDisposable.clear();
|
|
437
|
+
data.elementDisposable.add(this.configurationService.onDidChangeConfiguration(e => {
|
|
438
|
+
if (e.affectsConfiguration('debug.showVariableTypes')) {
|
|
439
|
+
super.renderExpressionElement(node.element, node, data);
|
|
440
|
+
}
|
|
441
|
+
}));
|
|
433
442
|
super.renderExpressionElement(node.element, node, data);
|
|
434
443
|
}
|
|
435
444
|
getInputBoxOptions(expression) {
|
|
@@ -516,7 +525,8 @@ VariablesRenderer = VariablesRenderer_1 = ( (__decorate([
|
|
|
516
525
|
( (__param(5, ICommandService))),
|
|
517
526
|
( (__param(6, IDebugService))),
|
|
518
527
|
( (__param(7, IContextViewService))),
|
|
519
|
-
( (__param(8, IHoverService)))
|
|
528
|
+
( (__param(8, IHoverService))),
|
|
529
|
+
( (__param(9, IConfigurationService)))
|
|
520
530
|
], VariablesRenderer)));
|
|
521
531
|
class VariablesAccessibilityProvider {
|
|
522
532
|
getWidgetAriaLabel() {
|