@codingame/monaco-vscode-debug-service-override 4.5.1 → 5.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/platform/debug/common/extensionHostDebugIpc.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +140 -177
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +260 -531
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +34 -52
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +44 -71
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +116 -120
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +8 -11
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +81 -140
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +73 -76
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +30 -30
- package/vscode/src/vs/workbench/contrib/debug/browser/debugMemory.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +17 -49
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +143 -135
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +220 -177
- package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +9 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +70 -111
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +84 -65
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +85 -57
- 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 +52 -78
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debug.contribution.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +60 -76
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +29 -54
- package/vscode/src/vs/workbench/contrib/debug/browser/replFilter.js +4 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +42 -55
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +17 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +84 -110
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +50 -88
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +60 -60
- 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/debugStorage.js +1 -0
- package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +92 -111
- 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
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +0 -1042
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +0 -116
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +0 -87
|
@@ -41,17 +41,18 @@ import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
|
41
41
|
import { ViewPane, ViewAction } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
42
42
|
import { IViewDescriptorService } from 'vscode/vscode/vs/workbench/common/views.service';
|
|
43
43
|
import { renderViewTree } from 'vscode/vscode/vs/workbench/contrib/debug/browser/baseDebugView';
|
|
44
|
-
import { STOP_ID, DISCONNECT_ID, PAUSE_ID, PAUSE_LABEL, CONTINUE_ID, CONTINUE_LABEL, STEP_OVER_ID, STEP_OVER_LABEL, STEP_INTO_ID, STEP_INTO_LABEL, STEP_OUT_ID, STEP_OUT_LABEL, RESTART_SESSION_ID, RESTART_LABEL, STOP_LABEL, DISCONNECT_LABEL } from '
|
|
44
|
+
import { STOP_ID, DISCONNECT_ID, PAUSE_ID, PAUSE_LABEL, CONTINUE_ID, CONTINUE_LABEL, STEP_OVER_ID, STEP_OVER_LABEL, STEP_INTO_ID, STEP_INTO_LABEL, STEP_OUT_ID, STEP_OUT_LABEL, RESTART_SESSION_ID, RESTART_LABEL, STOP_LABEL, DISCONNECT_LABEL } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugCommands';
|
|
45
45
|
import { callstackViewSession, debugRestartFrame, debugPause, debugContinue, debugStepOver, debugStepInto, debugStepOut, debugRestart, debugStop, debugDisconnect } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
|
|
46
46
|
import { createDisconnectMenuItemAction } from './debugToolBar.js';
|
|
47
|
-
import { CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_CALLSTACK_SESSION_IS_ATTACH, CONTEXT_CALLSTACK_ITEM_STOPPED, CONTEXT_CALLSTACK_SESSION_HAS_ONE_THREAD, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, CALLSTACK_VIEW_ID, CONTEXT_DEBUG_STATE, getStateLabel, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
47
|
+
import { CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_CALLSTACK_SESSION_IS_ATTACH, CONTEXT_CALLSTACK_ITEM_STOPPED, CONTEXT_CALLSTACK_SESSION_HAS_ONE_THREAD, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, isFrameDeemphasized, CALLSTACK_VIEW_ID, CONTEXT_DEBUG_STATE, getStateLabel, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
48
48
|
import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug.service';
|
|
49
49
|
import { StackFrame, Thread, ThreadAndSessionIds } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
|
|
50
50
|
import { isSessionAttach } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugUtils';
|
|
51
|
-
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/hover/updatableHoverWidget';
|
|
52
51
|
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
52
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
53
53
|
|
|
54
|
-
var SessionsRenderer_1, ThreadsRenderer_1, StackFramesRenderer_1;
|
|
54
|
+
var SessionsRenderer_1, ThreadsRenderer_1, StackFramesRenderer_1, ErrorsRenderer_1;
|
|
55
|
+
const _moduleId = "vs/workbench/contrib/debug/browser/callStackView";
|
|
55
56
|
const $ = $$1;
|
|
56
57
|
function assignSessionContext(element, context) {
|
|
57
58
|
context.sessionId = element.getId();
|
|
@@ -88,7 +89,9 @@ function getContextForContributedActions(element) {
|
|
|
88
89
|
if (element.source.inMemory) {
|
|
89
90
|
return element.source.raw.path || element.source.reference || element.source.name;
|
|
90
91
|
}
|
|
91
|
-
return (
|
|
92
|
+
return (
|
|
93
|
+
(element.source.uri.toString())
|
|
94
|
+
);
|
|
92
95
|
}
|
|
93
96
|
if (element instanceof Thread) {
|
|
94
97
|
return element.threadId;
|
|
@@ -101,7 +104,7 @@ function getContextForContributedActions(element) {
|
|
|
101
104
|
function getSpecificSourceName(stackFrame) {
|
|
102
105
|
let callStack = stackFrame.thread.getStaleCallStack();
|
|
103
106
|
callStack = callStack.length > 0 ? callStack : stackFrame.thread.getCallStack();
|
|
104
|
-
const otherSources = ( callStack.map(sf => sf.source)).filter(s => s !== stackFrame.source);
|
|
107
|
+
const otherSources = ( (callStack.map(sf => sf.source))).filter(s => s !== stackFrame.source);
|
|
105
108
|
let suffixLength = 0;
|
|
106
109
|
otherSources.forEach(s => {
|
|
107
110
|
if (s.name === stackFrame.source.name) {
|
|
@@ -121,17 +124,17 @@ async function expandTo(session, tree) {
|
|
|
121
124
|
await tree.expand(session);
|
|
122
125
|
}
|
|
123
126
|
let CallStackView = class CallStackView extends ViewPane {
|
|
124
|
-
constructor(options, contextMenuService, debugService, keybindingService, instantiationService, viewDescriptorService, configurationService, contextKeyService, openerService, themeService, telemetryService, menuService) {
|
|
125
|
-
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
127
|
+
constructor(options, contextMenuService, debugService, keybindingService, instantiationService, viewDescriptorService, configurationService, contextKeyService, openerService, themeService, telemetryService, hoverService, menuService) {
|
|
128
|
+
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
|
126
129
|
this.options = options;
|
|
127
130
|
this.debugService = debugService;
|
|
128
131
|
this.menuService = menuService;
|
|
129
132
|
this.needsRefresh = false;
|
|
130
133
|
this.ignoreSelectionChangedEvent = false;
|
|
131
134
|
this.ignoreFocusStackFrameEvent = false;
|
|
132
|
-
this.autoExpandedSessions = ( new Set());
|
|
135
|
+
this.autoExpandedSessions = ( (new Set()));
|
|
133
136
|
this.selectionNeedsUpdate = false;
|
|
134
|
-
this.onCallStackChangeScheduler = this._register(( new RunOnceScheduler(async () => {
|
|
137
|
+
this.onCallStackChangeScheduler = this._register(( (new RunOnceScheduler(async () => {
|
|
135
138
|
const sessions = this.debugService.getModel().getSessions();
|
|
136
139
|
if (sessions.length === 0) {
|
|
137
140
|
this.autoExpandedSessions.clear();
|
|
@@ -145,11 +148,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
145
148
|
this.stateMessage.hidden = false;
|
|
146
149
|
}
|
|
147
150
|
else if (sessions.length === 1 && sessions[0].state === 3 ) {
|
|
148
|
-
this.stateMessageLabel.textContent = ( localizeWithPath(
|
|
149
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
150
|
-
{ key: 'running', comment: ['indicates state'] },
|
|
151
|
-
"Running"
|
|
152
|
-
));
|
|
151
|
+
this.stateMessageLabel.textContent = ( localizeWithPath(_moduleId, 0, "Running"));
|
|
153
152
|
this.stateMessageLabelHover.update(sessions[0].getLabel());
|
|
154
153
|
this.stateMessageLabel.classList.remove('exception');
|
|
155
154
|
this.stateMessage.hidden = false;
|
|
@@ -162,9 +161,9 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
162
161
|
this.dataSource.deemphasizedStackFramesToShow = [];
|
|
163
162
|
await this.tree.updateChildren();
|
|
164
163
|
try {
|
|
165
|
-
const toExpand = ( new Set());
|
|
164
|
+
const toExpand = ( (new Set()));
|
|
166
165
|
sessions.forEach(s => {
|
|
167
|
-
if (s.parentSession && !( this.autoExpandedSessions.has(s.parentSession))) {
|
|
166
|
+
if (s.parentSession && !( (this.autoExpandedSessions.has(s.parentSession)))) {
|
|
168
167
|
toExpand.add(s.parentSession);
|
|
169
168
|
}
|
|
170
169
|
});
|
|
@@ -179,30 +178,30 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
179
178
|
this.selectionNeedsUpdate = false;
|
|
180
179
|
await this.updateTreeSelection();
|
|
181
180
|
}
|
|
182
|
-
}, 50)));
|
|
181
|
+
}, 50))));
|
|
183
182
|
}
|
|
184
183
|
renderHeaderTitle(container) {
|
|
185
184
|
super.renderHeaderTitle(container, this.options.title);
|
|
186
185
|
this.stateMessage = append(container, $('span.call-stack-state-message'));
|
|
187
186
|
this.stateMessage.hidden = true;
|
|
188
187
|
this.stateMessageLabel = append(this.stateMessage, $('span.label'));
|
|
189
|
-
this.stateMessageLabelHover = this._register(
|
|
188
|
+
this.stateMessageLabelHover = this._register(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.stateMessage, ''));
|
|
190
189
|
}
|
|
191
190
|
renderBody(container) {
|
|
192
191
|
super.renderBody(container);
|
|
193
192
|
this.element.classList.add('debug-pane');
|
|
194
193
|
container.classList.add('debug-call-stack');
|
|
195
194
|
const treeContainer = renderViewTree(container);
|
|
196
|
-
this.dataSource = ( new CallStackDataSource(this.debugService));
|
|
197
|
-
this.tree = this.instantiationService.createInstance(WorkbenchCompressibleAsyncDataTree, 'CallStackView', treeContainer, ( new CallStackDelegate()), ( new CallStackCompressionDelegate(this.debugService)), [
|
|
195
|
+
this.dataSource = ( (new CallStackDataSource(this.debugService)));
|
|
196
|
+
this.tree = this.instantiationService.createInstance(WorkbenchCompressibleAsyncDataTree, 'CallStackView', treeContainer, ( (new CallStackDelegate())), ( (new CallStackCompressionDelegate(this.debugService))), [
|
|
198
197
|
this.instantiationService.createInstance(SessionsRenderer),
|
|
199
198
|
this.instantiationService.createInstance(ThreadsRenderer),
|
|
200
199
|
this.instantiationService.createInstance(StackFramesRenderer),
|
|
201
|
-
(
|
|
202
|
-
( new LoadMoreRenderer()),
|
|
203
|
-
( new ShowMoreRenderer())
|
|
200
|
+
this.instantiationService.createInstance(ErrorsRenderer),
|
|
201
|
+
( (new LoadMoreRenderer())),
|
|
202
|
+
( (new ShowMoreRenderer()))
|
|
204
203
|
], this.dataSource, {
|
|
205
|
-
accessibilityProvider: ( new CallStackAccessibilityProvider()),
|
|
204
|
+
accessibilityProvider: ( (new CallStackAccessibilityProvider())),
|
|
206
205
|
compressionEnabled: true,
|
|
207
206
|
autoExpandSingleChildren: true,
|
|
208
207
|
identityProvider: {
|
|
@@ -230,11 +229,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
230
229
|
if (e instanceof ThreadAndSessionIds) {
|
|
231
230
|
return LoadMoreRenderer.LABEL;
|
|
232
231
|
}
|
|
233
|
-
return ( localizeWithPath(
|
|
234
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
235
|
-
'showMoreStackFrames2',
|
|
236
|
-
"Show More Stack Frames"
|
|
237
|
-
));
|
|
232
|
+
return ( localizeWithPath(_moduleId, 1, "Show More Stack Frames"));
|
|
238
233
|
},
|
|
239
234
|
getCompressedNodeKeyboardNavigationLabel: (e) => {
|
|
240
235
|
const firstItem = e[0];
|
|
@@ -245,9 +240,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
245
240
|
}
|
|
246
241
|
},
|
|
247
242
|
expandOnlyOnTwistieClick: true,
|
|
248
|
-
overrideStyles:
|
|
249
|
-
listBackground: this.getBackgroundColor()
|
|
250
|
-
}
|
|
243
|
+
overrideStyles: this.getLocationBasedColors().listOverrideStyles
|
|
251
244
|
});
|
|
252
245
|
this.tree.setInput(this.debugService.getModel());
|
|
253
246
|
this._register(this.tree);
|
|
@@ -424,19 +417,20 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
424
417
|
});
|
|
425
418
|
}
|
|
426
419
|
};
|
|
427
|
-
CallStackView = ( __decorate([
|
|
428
|
-
( __param(1, IContextMenuService)),
|
|
429
|
-
( __param(2, IDebugService)),
|
|
430
|
-
( __param(3, IKeybindingService)),
|
|
431
|
-
( __param(4, IInstantiationService)),
|
|
432
|
-
( __param(5, IViewDescriptorService)),
|
|
433
|
-
( __param(6, IConfigurationService)),
|
|
434
|
-
( __param(7, IContextKeyService)),
|
|
435
|
-
( __param(8, IOpenerService)),
|
|
436
|
-
( __param(9, IThemeService)),
|
|
437
|
-
( __param(10, ITelemetryService)),
|
|
438
|
-
( __param(11,
|
|
439
|
-
|
|
420
|
+
CallStackView = ( (__decorate([
|
|
421
|
+
( (__param(1, IContextMenuService))),
|
|
422
|
+
( (__param(2, IDebugService))),
|
|
423
|
+
( (__param(3, IKeybindingService))),
|
|
424
|
+
( (__param(4, IInstantiationService))),
|
|
425
|
+
( (__param(5, IViewDescriptorService))),
|
|
426
|
+
( (__param(6, IConfigurationService))),
|
|
427
|
+
( (__param(7, IContextKeyService))),
|
|
428
|
+
( (__param(8, IOpenerService))),
|
|
429
|
+
( (__param(9, IThemeService))),
|
|
430
|
+
( (__param(10, ITelemetryService))),
|
|
431
|
+
( (__param(11, IHoverService))),
|
|
432
|
+
( (__param(12, IMenuService)))
|
|
433
|
+
], CallStackView)));
|
|
440
434
|
function getSessionContextOverlay(session) {
|
|
441
435
|
return [
|
|
442
436
|
[CONTEXT_CALLSTACK_ITEM_TYPE.key, 'session'],
|
|
@@ -448,9 +442,10 @@ function getSessionContextOverlay(session) {
|
|
|
448
442
|
let SessionsRenderer = class SessionsRenderer {
|
|
449
443
|
static { SessionsRenderer_1 = this; }
|
|
450
444
|
static { this.ID = 'session'; }
|
|
451
|
-
constructor(instantiationService, contextKeyService, menuService) {
|
|
445
|
+
constructor(instantiationService, contextKeyService, hoverService, menuService) {
|
|
452
446
|
this.instantiationService = instantiationService;
|
|
453
447
|
this.contextKeyService = contextKeyService;
|
|
448
|
+
this.hoverService = hoverService;
|
|
454
449
|
this.menuService = menuService;
|
|
455
450
|
}
|
|
456
451
|
get templateId() {
|
|
@@ -461,14 +456,14 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
461
456
|
append(session, $(ThemeIcon.asCSSSelector(callstackViewSession)));
|
|
462
457
|
const name = append(session, $('.name'));
|
|
463
458
|
const stateLabel = append(session, $('span.state.label.monaco-count-badge.long'));
|
|
464
|
-
const templateDisposable = ( new DisposableStore());
|
|
465
|
-
const label = templateDisposable.add(( new HighlightedLabel(name)));
|
|
466
|
-
const stopActionViewItemDisposables = templateDisposable.add(( new DisposableStore()));
|
|
467
|
-
const actionBar = templateDisposable.add(( new ActionBar(session, {
|
|
459
|
+
const templateDisposable = ( (new DisposableStore()));
|
|
460
|
+
const label = templateDisposable.add(( (new HighlightedLabel(name))));
|
|
461
|
+
const stopActionViewItemDisposables = templateDisposable.add(( (new DisposableStore())));
|
|
462
|
+
const actionBar = templateDisposable.add(( (new ActionBar(session, {
|
|
468
463
|
actionViewItemProvider: (action, options) => {
|
|
469
464
|
if ((action.id === STOP_ID || action.id === DISCONNECT_ID) && action instanceof MenuItemAction) {
|
|
470
465
|
stopActionViewItemDisposables.clear();
|
|
471
|
-
const item = this.instantiationService.invokeFunction(accessor => createDisconnectMenuItemAction(action, stopActionViewItemDisposables, accessor, options));
|
|
466
|
+
const item = this.instantiationService.invokeFunction(accessor => createDisconnectMenuItemAction(action, stopActionViewItemDisposables, accessor, { ...options, menuAsChild: false }));
|
|
472
467
|
if (item) {
|
|
473
468
|
return item;
|
|
474
469
|
}
|
|
@@ -481,8 +476,8 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
481
476
|
}
|
|
482
477
|
return undefined;
|
|
483
478
|
}
|
|
484
|
-
})));
|
|
485
|
-
const elementDisposable = templateDisposable.add(( new DisposableStore()));
|
|
479
|
+
}))));
|
|
480
|
+
const elementDisposable = templateDisposable.add(( (new DisposableStore())));
|
|
486
481
|
return { session, name, stateLabel, label, actionBar, elementDisposable, templateDisposable };
|
|
487
482
|
}
|
|
488
483
|
renderElement(element, _, data) {
|
|
@@ -494,11 +489,7 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
494
489
|
this.doRenderElement(lastElement, matches, templateData);
|
|
495
490
|
}
|
|
496
491
|
doRenderElement(session, matches, data) {
|
|
497
|
-
const sessionHover = data.elementDisposable.add(
|
|
498
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
499
|
-
{ key: 'session', comment: ['Session is a noun'] },
|
|
500
|
-
"Session"
|
|
501
|
-
))));
|
|
492
|
+
const sessionHover = data.elementDisposable.add(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), data.session, ( localizeWithPath(_moduleId, 2, "Session"))));
|
|
502
493
|
data.label.set(session.getLabel(), matches);
|
|
503
494
|
const stoppedDetails = session.getStoppedDetails();
|
|
504
495
|
const thread = session.getAllThreads().find(t => t.stopped);
|
|
@@ -527,11 +518,7 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
527
518
|
data.stateLabel.classList.toggle('exception', thread.stoppedDetails.reason === 'exception');
|
|
528
519
|
}
|
|
529
520
|
else {
|
|
530
|
-
data.stateLabel.textContent = ( localizeWithPath(
|
|
531
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
532
|
-
{ key: 'running', comment: ['indicates state'] },
|
|
533
|
-
"Running"
|
|
534
|
-
));
|
|
521
|
+
data.stateLabel.textContent = ( localizeWithPath(_moduleId, 0, "Running"));
|
|
535
522
|
data.stateLabel.classList.remove('exception');
|
|
536
523
|
}
|
|
537
524
|
}
|
|
@@ -545,11 +532,12 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
545
532
|
templateData.elementDisposable.clear();
|
|
546
533
|
}
|
|
547
534
|
};
|
|
548
|
-
SessionsRenderer = SessionsRenderer_1 = ( __decorate([
|
|
549
|
-
( __param(0, IInstantiationService)),
|
|
550
|
-
( __param(1, IContextKeyService)),
|
|
551
|
-
( __param(2,
|
|
552
|
-
|
|
535
|
+
SessionsRenderer = SessionsRenderer_1 = ( (__decorate([
|
|
536
|
+
( (__param(0, IInstantiationService))),
|
|
537
|
+
( (__param(1, IContextKeyService))),
|
|
538
|
+
( (__param(2, IHoverService))),
|
|
539
|
+
( (__param(3, IMenuService)))
|
|
540
|
+
], SessionsRenderer)));
|
|
553
541
|
function getThreadContextOverlay(thread) {
|
|
554
542
|
return [
|
|
555
543
|
[CONTEXT_CALLSTACK_ITEM_TYPE.key, 'thread'],
|
|
@@ -559,8 +547,9 @@ function getThreadContextOverlay(thread) {
|
|
|
559
547
|
let ThreadsRenderer = class ThreadsRenderer {
|
|
560
548
|
static { ThreadsRenderer_1 = this; }
|
|
561
549
|
static { this.ID = 'thread'; }
|
|
562
|
-
constructor(contextKeyService, menuService) {
|
|
550
|
+
constructor(contextKeyService, hoverService, menuService) {
|
|
563
551
|
this.contextKeyService = contextKeyService;
|
|
552
|
+
this.hoverService = hoverService;
|
|
564
553
|
this.menuService = menuService;
|
|
565
554
|
}
|
|
566
555
|
get templateId() {
|
|
@@ -570,15 +559,15 @@ let ThreadsRenderer = class ThreadsRenderer {
|
|
|
570
559
|
const thread = append(container, $('.thread'));
|
|
571
560
|
const name = append(thread, $('.name'));
|
|
572
561
|
const stateLabel = append(thread, $('span.state.label.monaco-count-badge.long'));
|
|
573
|
-
const templateDisposable = ( new DisposableStore());
|
|
574
|
-
const label = templateDisposable.add(( new HighlightedLabel(name)));
|
|
575
|
-
const actionBar = templateDisposable.add(( new ActionBar(thread)));
|
|
576
|
-
const elementDisposable = templateDisposable.add(( new DisposableStore()));
|
|
562
|
+
const templateDisposable = ( (new DisposableStore()));
|
|
563
|
+
const label = templateDisposable.add(( (new HighlightedLabel(name))));
|
|
564
|
+
const actionBar = templateDisposable.add(( (new ActionBar(thread))));
|
|
565
|
+
const elementDisposable = templateDisposable.add(( (new DisposableStore())));
|
|
577
566
|
return { thread, name, stateLabel, label, actionBar, elementDisposable, templateDisposable };
|
|
578
567
|
}
|
|
579
568
|
renderElement(element, _index, data) {
|
|
580
569
|
const thread = element.element;
|
|
581
|
-
data.elementDisposable.add(
|
|
570
|
+
data.elementDisposable.add(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), data.thread, thread.name));
|
|
582
571
|
data.label.set(thread.name, createMatches(element.filterData));
|
|
583
572
|
data.stateLabel.textContent = thread.stateLabel;
|
|
584
573
|
data.stateLabel.classList.toggle('exception', thread.stoppedDetails?.reason === 'exception');
|
|
@@ -597,7 +586,7 @@ let ThreadsRenderer = class ThreadsRenderer {
|
|
|
597
586
|
setupActionBar();
|
|
598
587
|
}
|
|
599
588
|
renderCompressedElements(_node, _index, _templateData, _height) {
|
|
600
|
-
throw new Error('Method not implemented.');
|
|
589
|
+
throw ( (new Error('Method not implemented.')));
|
|
601
590
|
}
|
|
602
591
|
disposeElement(_element, _index, templateData) {
|
|
603
592
|
templateData.elementDisposable.clear();
|
|
@@ -606,10 +595,11 @@ let ThreadsRenderer = class ThreadsRenderer {
|
|
|
606
595
|
templateData.templateDisposable.dispose();
|
|
607
596
|
}
|
|
608
597
|
};
|
|
609
|
-
ThreadsRenderer = ThreadsRenderer_1 = ( __decorate([
|
|
610
|
-
( __param(0, IContextKeyService)),
|
|
611
|
-
( __param(1,
|
|
612
|
-
|
|
598
|
+
ThreadsRenderer = ThreadsRenderer_1 = ( (__decorate([
|
|
599
|
+
( (__param(0, IContextKeyService))),
|
|
600
|
+
( (__param(1, IHoverService))),
|
|
601
|
+
( (__param(2, IMenuService)))
|
|
602
|
+
], ThreadsRenderer)));
|
|
613
603
|
function getStackFrameContextOverlay(stackFrame) {
|
|
614
604
|
return [
|
|
615
605
|
[CONTEXT_CALLSTACK_ITEM_TYPE.key, 'stackFrame'],
|
|
@@ -619,7 +609,8 @@ function getStackFrameContextOverlay(stackFrame) {
|
|
|
619
609
|
let StackFramesRenderer = class StackFramesRenderer {
|
|
620
610
|
static { StackFramesRenderer_1 = this; }
|
|
621
611
|
static { this.ID = 'stackFrame'; }
|
|
622
|
-
constructor(labelService, notificationService) {
|
|
612
|
+
constructor(hoverService, labelService, notificationService) {
|
|
613
|
+
this.hoverService = hoverService;
|
|
623
614
|
this.labelService = labelService;
|
|
624
615
|
this.notificationService = notificationService;
|
|
625
616
|
}
|
|
@@ -633,23 +624,22 @@ let StackFramesRenderer = class StackFramesRenderer {
|
|
|
633
624
|
const fileName = append(file, $('span.file-name'));
|
|
634
625
|
const wrapper = append(file, $('span.line-number-wrapper'));
|
|
635
626
|
const lineNumber = append(wrapper, $('span.line-number.monaco-count-badge'));
|
|
636
|
-
const templateDisposable = ( new DisposableStore());
|
|
637
|
-
const label = templateDisposable.add(( new HighlightedLabel(labelDiv)));
|
|
638
|
-
const actionBar = templateDisposable.add(( new ActionBar(stackFrame)));
|
|
627
|
+
const templateDisposable = ( (new DisposableStore()));
|
|
628
|
+
const label = templateDisposable.add(( (new HighlightedLabel(labelDiv))));
|
|
629
|
+
const actionBar = templateDisposable.add(( (new ActionBar(stackFrame))));
|
|
639
630
|
return { file, fileName, label, lineNumber, stackFrame, actionBar, templateDisposable };
|
|
640
631
|
}
|
|
641
632
|
renderElement(element, index, data) {
|
|
642
633
|
const stackFrame = element.element;
|
|
643
|
-
data.stackFrame.classList.toggle('disabled', !stackFrame.source || !stackFrame.source.available ||
|
|
634
|
+
data.stackFrame.classList.toggle('disabled', !stackFrame.source || !stackFrame.source.available || isFrameDeemphasized(stackFrame));
|
|
644
635
|
data.stackFrame.classList.toggle('label', stackFrame.presentationHint === 'label');
|
|
645
|
-
data.stackFrame.classList.toggle('subtle', stackFrame.presentationHint === 'subtle');
|
|
646
636
|
const hasActions = !!stackFrame.thread.session.capabilities.supportsRestartFrame && stackFrame.presentationHint !== 'label' && stackFrame.presentationHint !== 'subtle' && stackFrame.canRestart;
|
|
647
637
|
data.stackFrame.classList.toggle('has-actions', hasActions);
|
|
648
638
|
let title = stackFrame.source.inMemory ? stackFrame.source.uri.path : this.labelService.getUriLabel(stackFrame.source.uri);
|
|
649
639
|
if (stackFrame.source.raw.origin) {
|
|
650
640
|
title += `\n${stackFrame.source.raw.origin}`;
|
|
651
641
|
}
|
|
652
|
-
data.templateDisposable.add(
|
|
642
|
+
data.templateDisposable.add(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), data.file, title));
|
|
653
643
|
data.label.set(stackFrame.name, createMatches(element.filterData), stackFrame.name);
|
|
654
644
|
data.fileName.textContent = getSpecificSourceName(stackFrame);
|
|
655
645
|
if (stackFrame.range.startLineNumber !== undefined) {
|
|
@@ -664,59 +654,59 @@ let StackFramesRenderer = class StackFramesRenderer {
|
|
|
664
654
|
}
|
|
665
655
|
data.actionBar.clear();
|
|
666
656
|
if (hasActions) {
|
|
667
|
-
const action = ( new Action('debug.callStack.restartFrame', ( localizeWithPath(
|
|
668
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
669
|
-
'restartFrame',
|
|
670
|
-
"Restart Frame"
|
|
671
|
-
)), ThemeIcon.asClassName(debugRestartFrame), true, async () => {
|
|
657
|
+
const action = ( (new Action('debug.callStack.restartFrame', ( localizeWithPath(_moduleId, 3, "Restart Frame")), ThemeIcon.asClassName(debugRestartFrame), true, async () => {
|
|
672
658
|
try {
|
|
673
659
|
await stackFrame.restart();
|
|
674
660
|
}
|
|
675
661
|
catch (e) {
|
|
676
662
|
this.notificationService.error(e);
|
|
677
663
|
}
|
|
678
|
-
}));
|
|
664
|
+
})));
|
|
679
665
|
data.actionBar.push(action, { icon: true, label: false });
|
|
680
666
|
}
|
|
681
667
|
}
|
|
682
668
|
renderCompressedElements(node, index, templateData, height) {
|
|
683
|
-
throw new Error('Method not implemented.');
|
|
669
|
+
throw ( (new Error('Method not implemented.')));
|
|
684
670
|
}
|
|
685
671
|
disposeTemplate(templateData) {
|
|
686
672
|
templateData.actionBar.dispose();
|
|
687
673
|
}
|
|
688
674
|
};
|
|
689
|
-
StackFramesRenderer = StackFramesRenderer_1 = ( __decorate([
|
|
690
|
-
( __param(0,
|
|
691
|
-
( __param(1,
|
|
692
|
-
|
|
693
|
-
|
|
675
|
+
StackFramesRenderer = StackFramesRenderer_1 = ( (__decorate([
|
|
676
|
+
( (__param(0, IHoverService))),
|
|
677
|
+
( (__param(1, ILabelService))),
|
|
678
|
+
( (__param(2, INotificationService)))
|
|
679
|
+
], StackFramesRenderer)));
|
|
680
|
+
let ErrorsRenderer = class ErrorsRenderer {
|
|
681
|
+
static { ErrorsRenderer_1 = this; }
|
|
694
682
|
static { this.ID = 'error'; }
|
|
695
683
|
get templateId() {
|
|
696
|
-
return
|
|
684
|
+
return ErrorsRenderer_1.ID;
|
|
685
|
+
}
|
|
686
|
+
constructor(hoverService) {
|
|
687
|
+
this.hoverService = hoverService;
|
|
697
688
|
}
|
|
698
689
|
renderTemplate(container) {
|
|
699
690
|
const label = append(container, $('.error'));
|
|
700
|
-
return { label, templateDisposable: ( new DisposableStore()) };
|
|
691
|
+
return { label, templateDisposable: ( (new DisposableStore())) };
|
|
701
692
|
}
|
|
702
693
|
renderElement(element, index, data) {
|
|
703
694
|
const error = element.element;
|
|
704
695
|
data.label.textContent = error;
|
|
705
|
-
data.templateDisposable.add(
|
|
696
|
+
data.templateDisposable.add(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), data.label, error));
|
|
706
697
|
}
|
|
707
698
|
renderCompressedElements(node, index, templateData, height) {
|
|
708
|
-
throw new Error('Method not implemented.');
|
|
699
|
+
throw ( (new Error('Method not implemented.')));
|
|
709
700
|
}
|
|
710
701
|
disposeTemplate(templateData) {
|
|
711
702
|
}
|
|
712
|
-
}
|
|
703
|
+
};
|
|
704
|
+
ErrorsRenderer = ErrorsRenderer_1 = ( (__decorate([
|
|
705
|
+
( (__param(0, IHoverService)))
|
|
706
|
+
], ErrorsRenderer)));
|
|
713
707
|
class LoadMoreRenderer {
|
|
714
708
|
static { this.ID = 'loadMore'; }
|
|
715
|
-
static { this.LABEL = ( localizeWithPath(
|
|
716
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
717
|
-
'loadAllStackFrames',
|
|
718
|
-
"Load More Stack Frames"
|
|
719
|
-
)); }
|
|
709
|
+
static { this.LABEL = ( localizeWithPath(_moduleId, 4, "Load More Stack Frames")); }
|
|
720
710
|
constructor() { }
|
|
721
711
|
get templateId() {
|
|
722
712
|
return LoadMoreRenderer.ID;
|
|
@@ -730,7 +720,7 @@ class LoadMoreRenderer {
|
|
|
730
720
|
data.label.textContent = LoadMoreRenderer.LABEL;
|
|
731
721
|
}
|
|
732
722
|
renderCompressedElements(node, index, templateData, height) {
|
|
733
|
-
throw new Error('Method not implemented.');
|
|
723
|
+
throw ( (new Error('Method not implemented.')));
|
|
734
724
|
}
|
|
735
725
|
disposeTemplate(templateData) {
|
|
736
726
|
}
|
|
@@ -750,24 +740,19 @@ class ShowMoreRenderer {
|
|
|
750
740
|
const stackFrames = element.element;
|
|
751
741
|
if (stackFrames.every(sf => !!(sf.source && sf.source.origin && sf.source.origin === stackFrames[0].source.origin))) {
|
|
752
742
|
data.label.textContent = ( localizeWithPath(
|
|
753
|
-
|
|
754
|
-
|
|
743
|
+
_moduleId,
|
|
744
|
+
5,
|
|
755
745
|
"Show {0} More: {1}",
|
|
756
746
|
stackFrames.length,
|
|
757
747
|
stackFrames[0].source.origin
|
|
758
748
|
));
|
|
759
749
|
}
|
|
760
750
|
else {
|
|
761
|
-
data.label.textContent = ( localizeWithPath(
|
|
762
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
763
|
-
'showMoreStackFrames',
|
|
764
|
-
"Show {0} More Stack Frames",
|
|
765
|
-
stackFrames.length
|
|
766
|
-
));
|
|
751
|
+
data.label.textContent = ( localizeWithPath(_moduleId, 6, "Show {0} More Stack Frames", stackFrames.length));
|
|
767
752
|
}
|
|
768
753
|
}
|
|
769
754
|
renderCompressedElements(node, index, templateData, height) {
|
|
770
|
-
throw new Error('Method not implemented.');
|
|
755
|
+
throw ( (new Error('Method not implemented.')));
|
|
771
756
|
}
|
|
772
757
|
disposeTemplate(templateData) {
|
|
773
758
|
}
|
|
@@ -806,12 +791,7 @@ function stoppedText(stoppedDetails) {
|
|
|
806
791
|
}
|
|
807
792
|
function stoppedDescription(stoppedDetails) {
|
|
808
793
|
return stoppedDetails.description ||
|
|
809
|
-
(stoppedDetails.reason ? ( localizeWithPath(
|
|
810
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
811
|
-
{ key: 'pausedOn', comment: ['indicates reason for program being paused'] },
|
|
812
|
-
"Paused on {0}",
|
|
813
|
-
stoppedDetails.reason
|
|
814
|
-
)) : ( localizeWithPath('vs/workbench/contrib/debug/browser/callStackView', 'paused', "Paused")));
|
|
794
|
+
(stoppedDetails.reason ? ( localizeWithPath(_moduleId, 7, "Paused on {0}", stoppedDetails.reason)) : ( localizeWithPath(_moduleId, 8, "Paused")));
|
|
815
795
|
}
|
|
816
796
|
function isDebugModel(obj) {
|
|
817
797
|
return typeof obj.getSessions === 'function';
|
|
@@ -819,9 +799,6 @@ function isDebugModel(obj) {
|
|
|
819
799
|
function isDebugSession(obj) {
|
|
820
800
|
return obj && typeof obj.getAllThreads === 'function';
|
|
821
801
|
}
|
|
822
|
-
function isDeemphasized(frame) {
|
|
823
|
-
return frame.source.presentationHint === 'deemphasize' || frame.presentationHint === 'deemphasize';
|
|
824
|
-
}
|
|
825
802
|
class CallStackDataSource {
|
|
826
803
|
constructor(debugService) {
|
|
827
804
|
this.debugService = debugService;
|
|
@@ -863,7 +840,7 @@ class CallStackDataSource {
|
|
|
863
840
|
return this.getThreadCallstack(thread).then(children => {
|
|
864
841
|
const result = [];
|
|
865
842
|
children.forEach((child, index) => {
|
|
866
|
-
if (child instanceof StackFrame && child.source &&
|
|
843
|
+
if (child instanceof StackFrame && child.source && isFrameDeemphasized(child)) {
|
|
867
844
|
if (this.deemphasizedStackFramesToShow.indexOf(child) === -1) {
|
|
868
845
|
if (result.length) {
|
|
869
846
|
const last = result[result.length - 1];
|
|
@@ -873,7 +850,7 @@ class CallStackDataSource {
|
|
|
873
850
|
}
|
|
874
851
|
}
|
|
875
852
|
const nextChild = index < children.length - 1 ? children[index + 1] : undefined;
|
|
876
|
-
if (nextChild instanceof StackFrame && nextChild.source &&
|
|
853
|
+
if (nextChild instanceof StackFrame && nextChild.source && isFrameDeemphasized(nextChild)) {
|
|
877
854
|
result.push([child]);
|
|
878
855
|
return;
|
|
879
856
|
}
|
|
@@ -897,18 +874,14 @@ class CallStackDataSource {
|
|
|
897
874
|
callStack = callStack.concat([thread.stoppedDetails.framesErrorMessage]);
|
|
898
875
|
}
|
|
899
876
|
if (!thread.reachedEndOfCallStack && thread.stoppedDetails) {
|
|
900
|
-
callStack = callStack.concat([( new ThreadAndSessionIds(thread.session.getId(), thread.threadId))]);
|
|
877
|
+
callStack = callStack.concat([( (new ThreadAndSessionIds(thread.session.getId(), thread.threadId)))]);
|
|
901
878
|
}
|
|
902
879
|
return callStack;
|
|
903
880
|
}
|
|
904
881
|
}
|
|
905
882
|
class CallStackAccessibilityProvider {
|
|
906
883
|
getWidgetAriaLabel() {
|
|
907
|
-
return ( localizeWithPath(
|
|
908
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
909
|
-
{ comment: ['Debug is a noun in this context, not a verb.'], key: 'callStackAriaLabel' },
|
|
910
|
-
"Debug Call Stack"
|
|
911
|
-
));
|
|
884
|
+
return ( localizeWithPath(_moduleId, 9, "Debug Call Stack"));
|
|
912
885
|
}
|
|
913
886
|
getWidgetRole() {
|
|
914
887
|
return 'treegrid';
|
|
@@ -918,18 +891,12 @@ class CallStackAccessibilityProvider {
|
|
|
918
891
|
}
|
|
919
892
|
getAriaLabel(element) {
|
|
920
893
|
if (element instanceof Thread) {
|
|
921
|
-
return ( localizeWithPath(
|
|
922
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
923
|
-
{ key: 'threadAriaLabel', comment: ['Placeholders stand for the thread name and the thread state.For example "Thread 1" and "Stopped'] },
|
|
924
|
-
"Thread {0} {1}",
|
|
925
|
-
element.name,
|
|
926
|
-
element.stateLabel
|
|
927
|
-
));
|
|
894
|
+
return ( localizeWithPath(_moduleId, 10, "Thread {0} {1}", element.name, element.stateLabel));
|
|
928
895
|
}
|
|
929
896
|
if (element instanceof StackFrame) {
|
|
930
897
|
return ( localizeWithPath(
|
|
931
|
-
|
|
932
|
-
|
|
898
|
+
_moduleId,
|
|
899
|
+
11,
|
|
933
900
|
"Stack Frame {0}, line {1}, {2}",
|
|
934
901
|
element.name,
|
|
935
902
|
element.range.startLineNumber,
|
|
@@ -938,29 +905,14 @@ class CallStackAccessibilityProvider {
|
|
|
938
905
|
}
|
|
939
906
|
if (isDebugSession(element)) {
|
|
940
907
|
const thread = element.getAllThreads().find(t => t.stopped);
|
|
941
|
-
const state = thread ? thread.stateLabel : ( localizeWithPath(
|
|
942
|
-
|
|
943
|
-
{ key: 'running', comment: ['indicates state'] },
|
|
944
|
-
"Running"
|
|
945
|
-
));
|
|
946
|
-
return ( localizeWithPath(
|
|
947
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
948
|
-
{ key: 'sessionLabel', comment: ['Placeholders stand for the session name and the session state. For example "Launch Program" and "Running"'] },
|
|
949
|
-
"Session {0} {1}",
|
|
950
|
-
element.getLabel(),
|
|
951
|
-
state
|
|
952
|
-
));
|
|
908
|
+
const state = thread ? thread.stateLabel : ( localizeWithPath(_moduleId, 0, "Running"));
|
|
909
|
+
return ( localizeWithPath(_moduleId, 12, "Session {0} {1}", element.getLabel(), state));
|
|
953
910
|
}
|
|
954
911
|
if (typeof element === 'string') {
|
|
955
912
|
return element;
|
|
956
913
|
}
|
|
957
914
|
if (element instanceof Array) {
|
|
958
|
-
return ( localizeWithPath(
|
|
959
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
960
|
-
'showMoreStackFrames',
|
|
961
|
-
"Show {0} More Stack Frames",
|
|
962
|
-
element.length
|
|
963
|
-
));
|
|
915
|
+
return ( localizeWithPath(_moduleId, 6, "Show {0} More Stack Frames", element.length));
|
|
964
916
|
}
|
|
965
917
|
return LoadMoreRenderer.LABEL;
|
|
966
918
|
}
|
|
@@ -975,7 +927,7 @@ class CallStackCompressionDelegate {
|
|
|
975
927
|
return false;
|
|
976
928
|
}
|
|
977
929
|
const sessions = this.debugService.getModel().getSessions();
|
|
978
|
-
if (( sessions.some(s => s.parentSession === stat && s.compact))) {
|
|
930
|
+
if (( (sessions.some(s => s.parentSession === stat && s.compact)))) {
|
|
979
931
|
return false;
|
|
980
932
|
}
|
|
981
933
|
return true;
|
|
@@ -988,19 +940,15 @@ registerAction2(class Collapse extends ViewAction {
|
|
|
988
940
|
super({
|
|
989
941
|
id: 'callStack.collapse',
|
|
990
942
|
viewId: CALLSTACK_VIEW_ID,
|
|
991
|
-
title: ( localizeWithPath(
|
|
992
|
-
'vs/workbench/contrib/debug/browser/callStackView',
|
|
993
|
-
'collapse',
|
|
994
|
-
"Collapse All"
|
|
995
|
-
)),
|
|
943
|
+
title: ( localizeWithPath(_moduleId, 13, "Collapse All")),
|
|
996
944
|
f1: false,
|
|
997
945
|
icon: Codicon.collapseAll,
|
|
998
|
-
precondition: ( CONTEXT_DEBUG_STATE.isEqualTo(getStateLabel(2 ))),
|
|
946
|
+
precondition: ( (CONTEXT_DEBUG_STATE.isEqualTo(getStateLabel(2 )))),
|
|
999
947
|
menu: {
|
|
1000
948
|
id: MenuId.ViewTitle,
|
|
1001
949
|
order: 10,
|
|
1002
950
|
group: 'navigation',
|
|
1003
|
-
when: ( ContextKeyExpr.equals('view', CALLSTACK_VIEW_ID))
|
|
951
|
+
when: ( (ContextKeyExpr.equals('view', CALLSTACK_VIEW_ID)))
|
|
1004
952
|
}
|
|
1005
953
|
});
|
|
1006
954
|
}
|
|
@@ -1016,14 +964,29 @@ function registerCallStackInlineMenuItem(id, title, icon, when, order, precondit
|
|
|
1016
964
|
command: { id, title, icon, precondition }
|
|
1017
965
|
});
|
|
1018
966
|
}
|
|
1019
|
-
const threadOrSessionWithOneThread = ( ContextKeyExpr.or(
|
|
1020
|
-
|
|
1021
|
-
|
|
967
|
+
const threadOrSessionWithOneThread = ( (ContextKeyExpr.or(
|
|
968
|
+
(CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('thread')),
|
|
969
|
+
(ContextKeyExpr.and(
|
|
970
|
+
(CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session')),
|
|
971
|
+
CONTEXT_CALLSTACK_SESSION_HAS_ONE_THREAD
|
|
972
|
+
))
|
|
973
|
+
)));
|
|
974
|
+
registerCallStackInlineMenuItem(PAUSE_ID, PAUSE_LABEL, debugPause, ( (ContextKeyExpr.and(
|
|
975
|
+
threadOrSessionWithOneThread,
|
|
976
|
+
(CONTEXT_CALLSTACK_ITEM_STOPPED.toNegated())
|
|
977
|
+
))), 10, ( (CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG.toNegated())));
|
|
978
|
+
registerCallStackInlineMenuItem(CONTINUE_ID, CONTINUE_LABEL, debugContinue, ( (ContextKeyExpr.and(threadOrSessionWithOneThread, CONTEXT_CALLSTACK_ITEM_STOPPED))), 10);
|
|
1022
979
|
registerCallStackInlineMenuItem(STEP_OVER_ID, STEP_OVER_LABEL, debugStepOver, threadOrSessionWithOneThread, 20, CONTEXT_CALLSTACK_ITEM_STOPPED);
|
|
1023
980
|
registerCallStackInlineMenuItem(STEP_INTO_ID, STEP_INTO_LABEL, debugStepInto, threadOrSessionWithOneThread, 30, CONTEXT_CALLSTACK_ITEM_STOPPED);
|
|
1024
981
|
registerCallStackInlineMenuItem(STEP_OUT_ID, STEP_OUT_LABEL, debugStepOut, threadOrSessionWithOneThread, 40, CONTEXT_CALLSTACK_ITEM_STOPPED);
|
|
1025
|
-
registerCallStackInlineMenuItem(RESTART_SESSION_ID, RESTART_LABEL, debugRestart, ( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session')), 50);
|
|
1026
|
-
registerCallStackInlineMenuItem(STOP_ID, STOP_LABEL, debugStop, ( ContextKeyExpr.and(
|
|
1027
|
-
|
|
982
|
+
registerCallStackInlineMenuItem(RESTART_SESSION_ID, RESTART_LABEL, debugRestart, ( (CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session'))), 50);
|
|
983
|
+
registerCallStackInlineMenuItem(STOP_ID, STOP_LABEL, debugStop, ( (ContextKeyExpr.and(
|
|
984
|
+
(CONTEXT_CALLSTACK_SESSION_IS_ATTACH.toNegated()),
|
|
985
|
+
(CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session'))
|
|
986
|
+
))), 60);
|
|
987
|
+
registerCallStackInlineMenuItem(DISCONNECT_ID, DISCONNECT_LABEL, debugDisconnect, ( (ContextKeyExpr.and(
|
|
988
|
+
CONTEXT_CALLSTACK_SESSION_IS_ATTACH,
|
|
989
|
+
(CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session'))
|
|
990
|
+
))), 60);
|
|
1028
991
|
|
|
1029
992
|
export { CallStackView, getContext, getContextForContributedActions, getSpecificSourceName };
|