@codingame/monaco-vscode-debug-service-override 3.2.2 → 4.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/override/vs/platform/dialogs/common/dialogs.js +2 -0
- package/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +32 -17
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +34 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +16 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +27 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +11 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +5 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +39 -14
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +4 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +18 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +21 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +11 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/extensionHostDebugService.js +1 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +12 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +8 -4
- package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +12 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +27 -56
- package/vscode/src/vs/workbench/contrib/debug/common/debugStorage.js +5 -1
- package/vscode/src/vs/workbench/contrib/debug/common/debugViewModel.js +12 -10
- package/vscode/src/vs/workbench/services/configurationResolver/browser/configurationResolverService.js +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-debug-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
"module": "index.js",
|
|
19
19
|
"types": "index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
21
|
+
"vscode": "npm:@codingame/monaco-vscode-api@4.0.0"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -23,7 +23,17 @@ import { WorkbenchCompressibleAsyncDataTree } from 'vscode/vscode/vs/platform/li
|
|
|
23
23
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
|
|
24
24
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener';
|
|
25
25
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
26
|
-
import { asCssVariable
|
|
26
|
+
import { asCssVariable } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
27
|
+
import { textLinkForeground } from 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
28
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
29
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
30
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
31
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
32
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
33
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
34
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
35
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
36
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
27
37
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
|
|
28
38
|
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
29
39
|
import { ViewAction, ViewPane } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
@@ -35,6 +45,8 @@ import { createDisconnectMenuItemAction } from './debugToolBar.js';
|
|
|
35
45
|
import { CALLSTACK_VIEW_ID, CONTEXT_DEBUG_STATE, getStateLabel, CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_CALLSTACK_SESSION_HAS_ONE_THREAD, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_CALLSTACK_ITEM_STOPPED, CONTEXT_CALLSTACK_SESSION_IS_ATTACH, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
36
46
|
import { Thread, StackFrame, ThreadAndSessionIds } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
|
|
37
47
|
import { isSessionAttach } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugUtils';
|
|
48
|
+
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/hover/updatableHoverWidget';
|
|
49
|
+
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
38
50
|
|
|
39
51
|
var SessionsRenderer_1, ThreadsRenderer_1, StackFramesRenderer_1;
|
|
40
52
|
const $ = $$1;
|
|
@@ -125,7 +137,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
125
137
|
const stoppedDetails = sessions.length === 1 ? sessions[0].getStoppedDetails() : undefined;
|
|
126
138
|
if (stoppedDetails && (thread || typeof stoppedDetails.threadId !== 'number')) {
|
|
127
139
|
this.stateMessageLabel.textContent = stoppedDescription(stoppedDetails);
|
|
128
|
-
this.
|
|
140
|
+
this.stateMessageLabelHover.update(stoppedText(stoppedDetails));
|
|
129
141
|
this.stateMessageLabel.classList.toggle('exception', stoppedDetails.reason === 'exception');
|
|
130
142
|
this.stateMessage.hidden = false;
|
|
131
143
|
}
|
|
@@ -135,7 +147,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
135
147
|
{ key: 'running', comment: ['indicates state'] },
|
|
136
148
|
"Running"
|
|
137
149
|
));
|
|
138
|
-
this.
|
|
150
|
+
this.stateMessageLabelHover.update(sessions[0].getLabel());
|
|
139
151
|
this.stateMessageLabel.classList.remove('exception');
|
|
140
152
|
this.stateMessage.hidden = false;
|
|
141
153
|
}
|
|
@@ -171,6 +183,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
171
183
|
this.stateMessage = append(container, $('span.call-stack-state-message'));
|
|
172
184
|
this.stateMessage.hidden = true;
|
|
173
185
|
this.stateMessageLabel = append(this.stateMessage, $('span.label'));
|
|
186
|
+
this.stateMessageLabelHover = this._register(setupCustomHover(getDefaultHoverDelegate('mouse'), this.stateMessage, ''));
|
|
174
187
|
}
|
|
175
188
|
renderBody(container) {
|
|
176
189
|
super.renderBody(container);
|
|
@@ -294,6 +307,7 @@ let CallStackView = class CallStackView extends ViewPane {
|
|
|
294
307
|
}
|
|
295
308
|
if (!this.isBodyVisible()) {
|
|
296
309
|
this.needsRefresh = true;
|
|
310
|
+
this.selectionNeedsUpdate = true;
|
|
297
311
|
return;
|
|
298
312
|
}
|
|
299
313
|
if (this.onCallStackChangeScheduler.isScheduled()) {
|
|
@@ -444,8 +458,8 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
444
458
|
append(session, $(ThemeIcon.asCSSSelector(callstackViewSession)));
|
|
445
459
|
const name = append(session, $('.name'));
|
|
446
460
|
const stateLabel = append(session, $('span.state.label.monaco-count-badge.long'));
|
|
447
|
-
const label = ( new HighlightedLabel(name));
|
|
448
461
|
const templateDisposable = ( new DisposableStore());
|
|
462
|
+
const label = templateDisposable.add(( new HighlightedLabel(name)));
|
|
449
463
|
const stopActionViewItemDisposables = templateDisposable.add(( new DisposableStore()));
|
|
450
464
|
const actionBar = templateDisposable.add(( new ActionBar(session, {
|
|
451
465
|
actionViewItemProvider: (action, options) => {
|
|
@@ -457,10 +471,10 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
457
471
|
}
|
|
458
472
|
}
|
|
459
473
|
if (action instanceof MenuItemAction) {
|
|
460
|
-
return this.instantiationService.createInstance(MenuEntryActionViewItem, action,
|
|
474
|
+
return this.instantiationService.createInstance(MenuEntryActionViewItem, action, { hoverDelegate: options.hoverDelegate });
|
|
461
475
|
}
|
|
462
476
|
else if (action instanceof SubmenuItemAction) {
|
|
463
|
-
return this.instantiationService.createInstance(SubmenuEntryActionViewItem, action,
|
|
477
|
+
return this.instantiationService.createInstance(SubmenuEntryActionViewItem, action, { hoverDelegate: options.hoverDelegate });
|
|
464
478
|
}
|
|
465
479
|
return undefined;
|
|
466
480
|
}
|
|
@@ -477,11 +491,11 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
477
491
|
this.doRenderElement(lastElement, matches, templateData);
|
|
478
492
|
}
|
|
479
493
|
doRenderElement(session, matches, data) {
|
|
480
|
-
data.
|
|
494
|
+
const sessionHover = data.elementDisposable.add(setupCustomHover(getDefaultHoverDelegate('mouse'), data.session, ( localizeWithPath(
|
|
481
495
|
'vs/workbench/contrib/debug/browser/callStackView',
|
|
482
496
|
{ key: 'session', comment: ['Session is a noun'] },
|
|
483
497
|
"Session"
|
|
484
|
-
));
|
|
498
|
+
))));
|
|
485
499
|
data.label.set(session.getLabel(), matches);
|
|
486
500
|
const stoppedDetails = session.getStoppedDetails();
|
|
487
501
|
const thread = session.getAllThreads().find(t => t.stopped);
|
|
@@ -501,12 +515,12 @@ let SessionsRenderer = class SessionsRenderer {
|
|
|
501
515
|
data.stateLabel.style.display = '';
|
|
502
516
|
if (stoppedDetails) {
|
|
503
517
|
data.stateLabel.textContent = stoppedDescription(stoppedDetails);
|
|
504
|
-
|
|
518
|
+
sessionHover.update(`${session.getLabel()}: ${stoppedText(stoppedDetails)}`);
|
|
505
519
|
data.stateLabel.classList.toggle('exception', stoppedDetails.reason === 'exception');
|
|
506
520
|
}
|
|
507
521
|
else if (thread && thread.stoppedDetails) {
|
|
508
522
|
data.stateLabel.textContent = stoppedDescription(thread.stoppedDetails);
|
|
509
|
-
|
|
523
|
+
sessionHover.update(`${session.getLabel()}: ${stoppedText(thread.stoppedDetails)}`);
|
|
510
524
|
data.stateLabel.classList.toggle('exception', thread.stoppedDetails.reason === 'exception');
|
|
511
525
|
}
|
|
512
526
|
else {
|
|
@@ -553,15 +567,15 @@ let ThreadsRenderer = class ThreadsRenderer {
|
|
|
553
567
|
const thread = append(container, $('.thread'));
|
|
554
568
|
const name = append(thread, $('.name'));
|
|
555
569
|
const stateLabel = append(thread, $('span.state.label.monaco-count-badge.long'));
|
|
556
|
-
const label = ( new HighlightedLabel(name));
|
|
557
570
|
const templateDisposable = ( new DisposableStore());
|
|
571
|
+
const label = templateDisposable.add(( new HighlightedLabel(name)));
|
|
558
572
|
const actionBar = templateDisposable.add(( new ActionBar(thread)));
|
|
559
573
|
const elementDisposable = templateDisposable.add(( new DisposableStore()));
|
|
560
574
|
return { thread, name, stateLabel, label, actionBar, elementDisposable, templateDisposable };
|
|
561
575
|
}
|
|
562
576
|
renderElement(element, _index, data) {
|
|
563
577
|
const thread = element.element;
|
|
564
|
-
data.
|
|
578
|
+
data.elementDisposable.add(setupCustomHover(getDefaultHoverDelegate('mouse'), data.thread, thread.name));
|
|
565
579
|
data.label.set(thread.name, createMatches(element.filterData));
|
|
566
580
|
data.stateLabel.textContent = thread.stateLabel;
|
|
567
581
|
data.stateLabel.classList.toggle('exception', thread.stoppedDetails?.reason === 'exception');
|
|
@@ -616,8 +630,8 @@ let StackFramesRenderer = class StackFramesRenderer {
|
|
|
616
630
|
const fileName = append(file, $('span.file-name'));
|
|
617
631
|
const wrapper = append(file, $('span.line-number-wrapper'));
|
|
618
632
|
const lineNumber = append(wrapper, $('span.line-number.monaco-count-badge'));
|
|
619
|
-
const label = ( new HighlightedLabel(labelDiv));
|
|
620
633
|
const templateDisposable = ( new DisposableStore());
|
|
634
|
+
const label = templateDisposable.add(( new HighlightedLabel(labelDiv)));
|
|
621
635
|
const actionBar = templateDisposable.add(( new ActionBar(stackFrame)));
|
|
622
636
|
return { file, fileName, label, lineNumber, stackFrame, actionBar, templateDisposable };
|
|
623
637
|
}
|
|
@@ -628,10 +642,11 @@ let StackFramesRenderer = class StackFramesRenderer {
|
|
|
628
642
|
data.stackFrame.classList.toggle('subtle', stackFrame.presentationHint === 'subtle');
|
|
629
643
|
const hasActions = !!stackFrame.thread.session.capabilities.supportsRestartFrame && stackFrame.presentationHint !== 'label' && stackFrame.presentationHint !== 'subtle' && stackFrame.canRestart;
|
|
630
644
|
data.stackFrame.classList.toggle('has-actions', hasActions);
|
|
631
|
-
|
|
645
|
+
let title = stackFrame.source.inMemory ? stackFrame.source.uri.path : this.labelService.getUriLabel(stackFrame.source.uri);
|
|
632
646
|
if (stackFrame.source.raw.origin) {
|
|
633
|
-
|
|
647
|
+
title += `\n${stackFrame.source.raw.origin}`;
|
|
634
648
|
}
|
|
649
|
+
data.templateDisposable.add(setupCustomHover(getDefaultHoverDelegate('mouse'), data.file, title));
|
|
635
650
|
data.label.set(stackFrame.name, createMatches(element.filterData), stackFrame.name);
|
|
636
651
|
data.fileName.textContent = getSpecificSourceName(stackFrame);
|
|
637
652
|
if (stackFrame.range.startLineNumber !== undefined) {
|
|
@@ -679,12 +694,12 @@ class ErrorsRenderer {
|
|
|
679
694
|
}
|
|
680
695
|
renderTemplate(container) {
|
|
681
696
|
const label = append(container, $('.error'));
|
|
682
|
-
return { label };
|
|
697
|
+
return { label, templateDisposable: ( new DisposableStore()) };
|
|
683
698
|
}
|
|
684
699
|
renderElement(element, index, data) {
|
|
685
700
|
const error = element.element;
|
|
686
701
|
data.label.textContent = error;
|
|
687
|
-
data.
|
|
702
|
+
data.templateDisposable.add(setupCustomHover(getDefaultHoverDelegate('mouse'), data.label, error));
|
|
688
703
|
}
|
|
689
704
|
renderCompressedElements(node, index, templateData, height) {
|
|
690
705
|
throw new Error('Method not implemented.');
|
|
@@ -27,6 +27,7 @@ import { DebugEditorContribution } from './debugEditorContribution.js';
|
|
|
27
27
|
import { debugRun, debugConsoleViewIcon, runViewIcon, variablesViewIcon, watchViewIcon, callStackViewIcon, breakpointsViewIcon, loadedScriptsViewIcon, debugInspectMemory, watchExpressionRemove } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
|
|
28
28
|
import { DebugProgressContribution } from './debugProgress.js';
|
|
29
29
|
import { StartDebugQuickAccessProvider } from './debugQuickAccess.js';
|
|
30
|
+
import './debugService.js';
|
|
30
31
|
import { DebugStatusContribution } from './debugStatus.js';
|
|
31
32
|
import { DebugTitleContribution } from './debugTitle.js';
|
|
32
33
|
import { DebugToolBar } from './debugToolBar.js';
|
|
@@ -41,6 +42,7 @@ import { WelcomeView } from './welcomeView.js';
|
|
|
41
42
|
import { BREAKPOINT_EDITOR_CONTRIBUTION_ID, EDITOR_CONTRIBUTION_ID, CONTEXT_DEBUG_STATE, CONTEXT_IN_DEBUG_MODE, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_DEBUGGERS_AVAILABLE, getStateLabel, CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_VARIABLE_IS_READONLY, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_VARIABLE_EVALUATE_NAME_PRESENT, CONTEXT_SET_EXPRESSION_SUPPORTED, CONTEXT_WATCH_ITEM_TYPE, DEBUG_PANEL_ID, REPL_VIEW_ID, VIEWLET_ID, VARIABLES_VIEW_ID, CONTEXT_DEBUG_UX, WATCH_VIEW_ID, CALLSTACK_VIEW_ID, BREAKPOINTS_VIEW_ID, CONTEXT_BREAKPOINTS_EXIST, CONTEXT_HAS_DEBUGGED, LOADED_SCRIPTS_VIEW_ID, CONTEXT_LOADED_SCRIPTS_SUPPORTED, DISASSEMBLY_VIEW_ID, INTERNAL_CONSOLE_OPTIONS_SCHEMA, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, CONTEXT_CAN_VIEW_MEMORY, CONTEXT_BREAK_WHEN_VALUE_IS_READ_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_CHANGES_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_IS_ACCESSED_SUPPORTED, CONTEXT_VARIABLE_VALUE } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
42
43
|
import { DebugContentProvider } from '../common/debugContentProvider.js';
|
|
43
44
|
import { DebugLifecycle } from '../common/debugLifecycle.js';
|
|
45
|
+
import 'vscode/vscode/vs/workbench/contrib/debug/common/debugVisualizers';
|
|
44
46
|
import { DisassemblyViewInput } from 'vscode/vscode/vs/workbench/contrib/debug/common/disassemblyViewInput';
|
|
45
47
|
import { COPY_NOTEBOOK_VARIABLE_VALUE_LABEL, COPY_NOTEBOOK_VARIABLE_VALUE_ID } from '../../notebook/browser/contrib/notebookVariables/notebookVariableCommands.js';
|
|
46
48
|
import { launchSchemaId } from 'vscode/vscode/vs/workbench/services/configuration/common/configuration';
|
|
@@ -609,6 +611,38 @@ configurationRegistry.registerConfiguration({
|
|
|
609
611
|
)),
|
|
610
612
|
default: false
|
|
611
613
|
},
|
|
614
|
+
'debug.gutterMiddleClickAction': {
|
|
615
|
+
type: 'string',
|
|
616
|
+
enum: ['logpoint', 'conditionalBreakpoint', 'triggeredBreakpoint', 'none'],
|
|
617
|
+
description: ( localizeWithPath(
|
|
618
|
+
'vs/workbench/contrib/debug/browser/debug.contribution',
|
|
619
|
+
{ comment: ['This is the description for a setting'], key: 'gutterMiddleClickAction' },
|
|
620
|
+
'Controls the action to perform when clicking the editor gutter with the middle mouse button.'
|
|
621
|
+
)),
|
|
622
|
+
enumDescriptions: [
|
|
623
|
+
( localizeWithPath(
|
|
624
|
+
'vs/workbench/contrib/debug/browser/debug.contribution',
|
|
625
|
+
'debug.gutterMiddleClickAction.logpoint',
|
|
626
|
+
"Add Logpoint."
|
|
627
|
+
)),
|
|
628
|
+
( localizeWithPath(
|
|
629
|
+
'vs/workbench/contrib/debug/browser/debug.contribution',
|
|
630
|
+
'debug.gutterMiddleClickAction.conditionalBreakpoint',
|
|
631
|
+
"Add Conditional Breakpoint."
|
|
632
|
+
)),
|
|
633
|
+
( localizeWithPath(
|
|
634
|
+
'vs/workbench/contrib/debug/browser/debug.contribution',
|
|
635
|
+
'debug.gutterMiddleClickAction.triggeredBreakpoint',
|
|
636
|
+
"Add Triggered Breakpoint."
|
|
637
|
+
)),
|
|
638
|
+
( localizeWithPath(
|
|
639
|
+
'vs/workbench/contrib/debug/browser/debug.contribution',
|
|
640
|
+
'debug.gutterMiddleClickAction.none',
|
|
641
|
+
"Don't perform any action."
|
|
642
|
+
)),
|
|
643
|
+
],
|
|
644
|
+
default: 'logpoint',
|
|
645
|
+
},
|
|
612
646
|
'debug.openExplorerOnEnd': {
|
|
613
647
|
type: 'boolean',
|
|
614
648
|
description: ( localizeWithPath(
|
|
@@ -7,7 +7,17 @@ import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/c
|
|
|
7
7
|
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands';
|
|
8
8
|
import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
9
9
|
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
10
|
-
import { asCssVariable
|
|
10
|
+
import { asCssVariable } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
11
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
12
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
13
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
14
|
+
import { selectBorder, selectBackground } from 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
15
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
16
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
17
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
18
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
19
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
20
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
11
21
|
import { IContextViewService } from 'vscode/vscode/vs/platform/contextview/browser/contextView';
|
|
12
22
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
13
23
|
import { dispose } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
@@ -16,6 +26,8 @@ import { BaseActionViewItem, SelectActionViewItem } from 'vscode/vscode/vs/base/
|
|
|
16
26
|
import { debugStart } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
|
|
17
27
|
import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding';
|
|
18
28
|
import { defaultSelectBoxStyles } from 'vscode/vscode/vs/platform/theme/browser/defaultStyles';
|
|
29
|
+
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/hover/updatableHoverWidget';
|
|
30
|
+
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
19
31
|
|
|
20
32
|
var StartDebugActionViewItem_1;
|
|
21
33
|
const $ = $$1;
|
|
@@ -65,9 +77,10 @@ let StartDebugActionViewItem = class StartDebugActionViewItem extends BaseAction
|
|
|
65
77
|
this.start = append(container, $(ThemeIcon.asCSSSelector(debugStart)));
|
|
66
78
|
const keybinding = this.keybindingService.lookupKeybinding(this.action.id)?.getLabel();
|
|
67
79
|
const keybindingLabel = keybinding ? ` (${keybinding})` : '';
|
|
68
|
-
|
|
80
|
+
const title = this.action.label + keybindingLabel;
|
|
81
|
+
this.toDispose.push(setupCustomHover(getDefaultHoverDelegate('mouse'), this.start, title));
|
|
69
82
|
this.start.setAttribute('role', 'button');
|
|
70
|
-
this.start.ariaLabel =
|
|
83
|
+
this.start.ariaLabel = title;
|
|
71
84
|
this.toDispose.push(addDisposableListener(this.start, EventType.CLICK, () => {
|
|
72
85
|
this.start.blur();
|
|
73
86
|
if (this.debugService.state !== 1 ) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
3
3
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
4
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
4
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
5
5
|
import { equalsIgnoreCase } from 'vscode/vscode/vs/base/common/strings';
|
|
6
6
|
import { isCodeEditor } from 'vscode/vscode/vs/editor/browser/editorBrowser';
|
|
7
7
|
import { ILanguageService } from 'vscode/vscode/vs/editor/common/languages/language';
|
|
@@ -317,7 +317,7 @@ let AdapterManager = class AdapterManager extends Disposable {
|
|
|
317
317
|
languageLabel = `'${languageLabel}'`;
|
|
318
318
|
}
|
|
319
319
|
const { confirmed } = await this.dialogService.confirm({
|
|
320
|
-
type: Severity.Warning,
|
|
320
|
+
type: Severity$1.Warning,
|
|
321
321
|
message: ( localizeWithPath(
|
|
322
322
|
'vs/workbench/contrib/debug/browser/debugAdapterManager',
|
|
323
323
|
'CouldNotFindLanguage',
|
|
@@ -297,7 +297,7 @@ async function goToBottomOfCallStack(debugService) {
|
|
|
297
297
|
if (callStack.length > 0) {
|
|
298
298
|
const nextVisibleFrame = findNextVisibleFrame(false, callStack, 0);
|
|
299
299
|
if (nextVisibleFrame) {
|
|
300
|
-
debugService.focusStackFrame(nextVisibleFrame);
|
|
300
|
+
debugService.focusStackFrame(nextVisibleFrame, undefined, undefined, { preserveFocus: false });
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
}
|
|
@@ -305,7 +305,7 @@ async function goToBottomOfCallStack(debugService) {
|
|
|
305
305
|
function goToTopOfCallStack(debugService) {
|
|
306
306
|
const thread = debugService.getViewModel().focusedThread;
|
|
307
307
|
if (thread) {
|
|
308
|
-
debugService.focusStackFrame(thread.getTopStackFrame());
|
|
308
|
+
debugService.focusStackFrame(thread.getTopStackFrame(), undefined, undefined, { preserveFocus: false });
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
311
|
function findNextVisibleFrame(down, callStack, startIndex) {
|
|
@@ -2,7 +2,7 @@ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.e
|
|
|
2
2
|
import { addDisposableListener, isKeyboardEvent } from 'vscode/vscode/vs/base/browser/dom';
|
|
3
3
|
import { DomEmitter } from 'vscode/vscode/vs/base/browser/event';
|
|
4
4
|
import { StandardKeyboardEvent } from 'vscode/vscode/vs/base/browser/keyboardEvent';
|
|
5
|
-
import {
|
|
5
|
+
import { distinct } from 'vscode/vscode/vs/base/common/arrays';
|
|
6
6
|
import { RunOnceScheduler } from 'vscode/vscode/vs/base/common/async';
|
|
7
7
|
import { CancellationToken, CancellationTokenSource } from 'vscode/vscode/vs/base/common/cancellation';
|
|
8
8
|
import { memoize } from 'vscode/vscode/vs/base/common/decorators';
|
|
@@ -10,7 +10,7 @@ import { illegalArgument, onUnexpectedExternalError } from 'vscode/vscode/vs/bas
|
|
|
10
10
|
import { Event } from 'vscode/vscode/vs/base/common/event';
|
|
11
11
|
import { visit } from 'vscode/vscode/vs/base/common/json';
|
|
12
12
|
import { setProperty } from 'vscode/vscode/vs/base/common/jsonEdit';
|
|
13
|
-
import { MutableDisposable, dispose } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
13
|
+
import { MutableDisposable, DisposableStore, toDisposable, dispose } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
14
14
|
import { clamp } from 'vscode/vscode/vs/base/common/numbers';
|
|
15
15
|
import { basename } from 'vscode/vscode/vs/base/common/path';
|
|
16
16
|
import { isMacintosh } from 'vscode/vscode/vs/base/common/platform';
|
|
@@ -32,7 +32,17 @@ import { CommandsRegistry, ICommandService } from 'vscode/vscode/vs/platform/com
|
|
|
32
32
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
|
|
33
33
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
34
34
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
35
|
-
import { registerColor } from 'vscode/vscode/vs/platform/theme/common/
|
|
35
|
+
import { registerColor } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
36
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
37
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
38
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
39
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
40
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
41
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
42
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
43
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
44
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
45
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
36
46
|
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
|
|
37
47
|
import { DebugHoverWidget } from './debugHover.js';
|
|
38
48
|
import { ExceptionWidget } from './exceptionWidget.js';
|
|
@@ -190,10 +200,11 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
190
200
|
this.altListener = ( new MutableDisposable());
|
|
191
201
|
this.altPressed = false;
|
|
192
202
|
this.oldDecorations = this.editor.createDecorationsCollection();
|
|
203
|
+
this.displayedStore = ( new DisposableStore());
|
|
193
204
|
this.defaultHoverLockout = ( new MutableDisposable());
|
|
194
205
|
this.debounceInfo = featureDebounceService.for(languageFeaturesService.inlineValuesProvider, 'InlineValues', { min: DEAFULT_INLINE_DEBOUNCE_DELAY });
|
|
195
206
|
this.hoverWidget = this.instantiationService.createInstance(DebugHoverWidget, this.editor);
|
|
196
|
-
this.toDispose = [this.defaultHoverLockout, this.altListener];
|
|
207
|
+
this.toDispose = [this.defaultHoverLockout, this.altListener, this.displayedStore];
|
|
197
208
|
this.registerListeners();
|
|
198
209
|
this.exceptionWidgetVisible = CONTEXT_EXCEPTION_WIDGET_VISIBLE.bindTo(contextKeyService);
|
|
199
210
|
this.toggleExceptionWidget();
|
|
@@ -519,7 +530,7 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
519
530
|
}
|
|
520
531
|
get removeInlineValuesScheduler() {
|
|
521
532
|
return ( new RunOnceScheduler(() => {
|
|
522
|
-
this.
|
|
533
|
+
this.displayedStore.clear();
|
|
523
534
|
}, 100));
|
|
524
535
|
}
|
|
525
536
|
get updateInlineValuesScheduler() {
|
|
@@ -542,8 +553,11 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
542
553
|
return;
|
|
543
554
|
}
|
|
544
555
|
this.removeInlineValuesScheduler.cancel();
|
|
556
|
+
this.displayedStore.clear();
|
|
545
557
|
const viewRanges = this.editor.getVisibleRangesPlusViewportAboveBelow();
|
|
546
558
|
let allDecorations;
|
|
559
|
+
const cts = ( new CancellationTokenSource());
|
|
560
|
+
this.displayedStore.add(toDisposable(() => cts.dispose(true)));
|
|
547
561
|
if (( this.languageFeaturesService.inlineValuesProvider.has(model))) {
|
|
548
562
|
const findVariable = async (_key, caseSensitiveLookup) => {
|
|
549
563
|
const scopes = await stackFrame.getMostSpecificScopes(stackFrame.range);
|
|
@@ -566,12 +580,11 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
566
580
|
stackFrame.range.endColumn + 1
|
|
567
581
|
))
|
|
568
582
|
};
|
|
569
|
-
const token = ( new CancellationTokenSource()).token;
|
|
570
583
|
const providers = this.languageFeaturesService.inlineValuesProvider.ordered(model).reverse();
|
|
571
584
|
allDecorations = [];
|
|
572
585
|
const lineDecorations = ( new Map());
|
|
573
|
-
const promises =
|
|
574
|
-
range => Promise.resolve(provider.provideInlineValues(model, range, ctx, token)).then(async (result) => {
|
|
586
|
+
const promises = providers.flatMap(provider => ( viewRanges.map(
|
|
587
|
+
range => Promise.resolve(provider.provideInlineValues(model, range, ctx, cts.token)).then(async (result) => {
|
|
575
588
|
if (result) {
|
|
576
589
|
for (const iv of result) {
|
|
577
590
|
let text = undefined;
|
|
@@ -623,7 +636,7 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
623
636
|
}, err => {
|
|
624
637
|
onUnexpectedExternalError(err);
|
|
625
638
|
})
|
|
626
|
-
)))
|
|
639
|
+
)));
|
|
627
640
|
const startTime = Date.now();
|
|
628
641
|
await Promise.all(promises);
|
|
629
642
|
this.updateInlineValuesScheduler.delay = this.debounceInfo.update(model, Date.now() - startTime);
|
|
@@ -650,10 +663,13 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
650
663
|
}
|
|
651
664
|
return createInlineValueDecorationsInsideRange(variables, ownRanges, model, this._wordToLineNumbersMap.value);
|
|
652
665
|
})));
|
|
653
|
-
allDecorations = distinct(decorationsPerScope.
|
|
666
|
+
allDecorations = distinct(decorationsPerScope.flat(),
|
|
654
667
|
decoration => `${decoration.range.startLineNumber}:${decoration?.options.after?.content}`);
|
|
655
668
|
}
|
|
656
|
-
|
|
669
|
+
if (!cts.token.isCancellationRequested) {
|
|
670
|
+
this.oldDecorations.set(allDecorations);
|
|
671
|
+
this.displayedStore.add(toDisposable(() => this.oldDecorations.clear()));
|
|
672
|
+
}
|
|
657
673
|
}
|
|
658
674
|
dispose() {
|
|
659
675
|
if (this.hoverWidget) {
|
|
@@ -663,7 +679,6 @@ let DebugEditorContribution = class DebugEditorContribution {
|
|
|
663
679
|
this.configurationWidget.dispose();
|
|
664
680
|
}
|
|
665
681
|
this.toDispose = dispose(this.toDispose);
|
|
666
|
-
this.oldDecorations.clear();
|
|
667
682
|
}
|
|
668
683
|
};
|
|
669
684
|
DebugEditorContribution.__decorator = ( __decorate([
|
|
@@ -16,7 +16,17 @@ import { IContextMenuService } from 'vscode/vscode/vs/platform/contextview/brows
|
|
|
16
16
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
17
17
|
import { WorkbenchAsyncDataTree } from 'vscode/vscode/vs/platform/list/browser/listService';
|
|
18
18
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
19
|
-
import {
|
|
19
|
+
import { asCssVariable } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
20
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
21
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
22
|
+
import { editorHoverBackground, editorHoverBorder, editorHoverForeground } from 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
23
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
24
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
25
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
26
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
27
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
28
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
29
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
20
30
|
import { renderExpressionValue, AbstractExpressionDataSource } from 'vscode/vscode/vs/workbench/contrib/debug/browser/baseDebugView';
|
|
21
31
|
import { LinkDetector } from './linkDetector.js';
|
|
22
32
|
import { VariablesRenderer, VisualizedVariableRenderer, openContextMenuForVariableTreeElement } from './variablesView.js';
|
|
@@ -9,7 +9,7 @@ import { isCancellationError } from 'vscode/vscode/vs/base/common/errors';
|
|
|
9
9
|
import { Emitter, Event } from 'vscode/vscode/vs/base/common/event';
|
|
10
10
|
import { DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
11
11
|
import { deepClone, equals } from 'vscode/vscode/vs/base/common/objects';
|
|
12
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
12
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
13
13
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
14
14
|
import { generateUuid } from 'vscode/vscode/vs/base/common/uuid';
|
|
15
15
|
import { isCodeEditor } from 'vscode/vscode/vs/editor/browser/editorBrowser';
|
|
@@ -27,7 +27,6 @@ import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/commo
|
|
|
27
27
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
28
28
|
import { IWorkspaceTrustRequestService } from 'vscode/vscode/vs/platform/workspace/common/workspaceTrust';
|
|
29
29
|
import { IViewDescriptorService } from 'vscode/vscode/vs/workbench/common/views';
|
|
30
|
-
import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService';
|
|
31
30
|
import { AdapterManager } from './debugAdapterManager.js';
|
|
32
31
|
import { DEBUG_CONFIGURE_COMMAND_ID, DEBUG_CONFIGURE_LABEL } from './debugCommands.js';
|
|
33
32
|
import { ConfigurationManager } from './debugConfigurationManager.js';
|
|
@@ -50,6 +49,7 @@ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extension
|
|
|
50
49
|
import { IWorkbenchLayoutService } from 'vscode/vscode/vs/workbench/services/layout/browser/layoutService';
|
|
51
50
|
import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle/common/lifecycle';
|
|
52
51
|
import { IPaneCompositePartService } from 'vscode/vscode/vs/workbench/services/panecomposite/browser/panecomposite';
|
|
52
|
+
import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService';
|
|
53
53
|
import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs';
|
|
54
54
|
|
|
55
55
|
let DebugService = class DebugService {
|
|
@@ -811,7 +811,7 @@ let DebugService = class DebugService {
|
|
|
811
811
|
errorActions :
|
|
812
812
|
[...errorActions, ...(promptLaunchJson ? [configureAction] : [])];
|
|
813
813
|
await this.dialogService.prompt({
|
|
814
|
-
type: Severity.Error,
|
|
814
|
+
type: Severity$1.Error,
|
|
815
815
|
message,
|
|
816
816
|
buttons: ( actions.map(action => ({
|
|
817
817
|
label: action.label,
|
|
@@ -965,8 +965,8 @@ let DebugService = class DebugService {
|
|
|
965
965
|
this.debugStorage.storeBreakpoints(this.model);
|
|
966
966
|
await this.sendFunctionBreakpoints();
|
|
967
967
|
}
|
|
968
|
-
async addDataBreakpoint(
|
|
969
|
-
this.model.addDataBreakpoint(
|
|
968
|
+
async addDataBreakpoint(opts) {
|
|
969
|
+
this.model.addDataBreakpoint(opts);
|
|
970
970
|
this.debugStorage.storeBreakpoints(this.model);
|
|
971
971
|
await this.sendDataBreakpoints();
|
|
972
972
|
this.debugStorage.storeBreakpoints(this.model);
|
|
@@ -10,7 +10,7 @@ import { DisposableStore, MutableDisposable, dispose, Disposable, DisposableMap
|
|
|
10
10
|
import { mixin } from 'vscode/vscode/vs/base/common/objects';
|
|
11
11
|
import { language } from 'vscode/vscode/vs/base/common/platform';
|
|
12
12
|
import { basenameOrAuthority } from 'vscode/vscode/vs/base/common/resources';
|
|
13
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
13
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
14
14
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
15
15
|
import { generateUuid } from 'vscode/vscode/vs/base/common/uuid';
|
|
16
16
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
@@ -34,6 +34,7 @@ import { ILifecycleService } from 'vscode/vscode/vs/workbench/services/lifecycle
|
|
|
34
34
|
import { IPaneCompositePartService } from 'vscode/vscode/vs/workbench/services/panecomposite/browser/panecomposite';
|
|
35
35
|
import { getActiveWindow } from 'vscode/vscode/vs/base/browser/dom';
|
|
36
36
|
import { mainWindow } from 'vscode/vscode/vs/base/browser/window';
|
|
37
|
+
import { isDefined } from 'vscode/vscode/vs/base/common/types';
|
|
37
38
|
|
|
38
39
|
const TRIGGERED_BREAKPOINT_MAX_DELAY = 1500;
|
|
39
40
|
let DebugSession = class DebugSession {
|
|
@@ -351,7 +352,7 @@ let DebugSession = class DebugSession {
|
|
|
351
352
|
breakpoints: ( breakpointsToSend.map(bp => bp.toDAP())),
|
|
352
353
|
sourceModified
|
|
353
354
|
});
|
|
354
|
-
if (response
|
|
355
|
+
if (response?.body) {
|
|
355
356
|
const data = ( new Map());
|
|
356
357
|
for (let i = 0; i < breakpointsToSend.length; i++) {
|
|
357
358
|
data.set(breakpointsToSend[i].getId(), response.body.breakpoints[i]);
|
|
@@ -365,7 +366,7 @@ let DebugSession = class DebugSession {
|
|
|
365
366
|
}
|
|
366
367
|
if (this.raw.readyForBreakpoints) {
|
|
367
368
|
const response = await this.raw.setFunctionBreakpoints({ breakpoints: ( fbpts.map(bp => bp.toDAP())) });
|
|
368
|
-
if (response
|
|
369
|
+
if (response?.body) {
|
|
369
370
|
const data = ( new Map());
|
|
370
371
|
for (let i = 0; i < fbpts.length; i++) {
|
|
371
372
|
data.set(fbpts[i].getId(), response.body.breakpoints[i]);
|
|
@@ -389,7 +390,7 @@ let DebugSession = class DebugSession {
|
|
|
389
390
|
}))
|
|
390
391
|
} : { filters: ( exbpts.map(exb => exb.filter)) };
|
|
391
392
|
const response = await this.raw.setExceptionBreakpoints(args);
|
|
392
|
-
if (response
|
|
393
|
+
if (response?.body && response.body.breakpoints) {
|
|
393
394
|
const data = ( new Map());
|
|
394
395
|
for (let i = 0; i < exbpts.length; i++) {
|
|
395
396
|
data.set(exbpts[i].getId(), response.body.breakpoints[i]);
|
|
@@ -398,14 +399,23 @@ let DebugSession = class DebugSession {
|
|
|
398
399
|
}
|
|
399
400
|
}
|
|
400
401
|
}
|
|
401
|
-
|
|
402
|
+
dataBytesBreakpointInfo(address, bytes) {
|
|
403
|
+
if (this.raw?.capabilities.supportsDataBreakpointBytes === false) {
|
|
404
|
+
throw new Error(localizeWithPath('vs/workbench/contrib/debug/browser/debugSession', 'sessionDoesNotSupporBytesBreakpoints', "Session does not support breakpoints with bytes"));
|
|
405
|
+
}
|
|
406
|
+
return this._dataBreakpointInfo({ name: address, bytes, asAddress: true });
|
|
407
|
+
}
|
|
408
|
+
dataBreakpointInfo(name, variablesReference) {
|
|
409
|
+
return this._dataBreakpointInfo({ name, variablesReference });
|
|
410
|
+
}
|
|
411
|
+
async _dataBreakpointInfo(args) {
|
|
402
412
|
if (!this.raw) {
|
|
403
413
|
throw new Error(localizeWithPath('vs/workbench/contrib/debug/browser/debugSession', 'noDebugAdapter', "No debugger available, can not send '{0}'", 'data breakpoints info'));
|
|
404
414
|
}
|
|
405
415
|
if (!this.raw.readyForBreakpoints) {
|
|
406
416
|
throw new Error(localizeWithPath('vs/workbench/contrib/debug/browser/debugSession', 'sessionNotReadyForBreakpoints', "Session is not ready for breakpoints"));
|
|
407
417
|
}
|
|
408
|
-
const response = await this.raw.dataBreakpointInfo(
|
|
418
|
+
const response = await this.raw.dataBreakpointInfo(args);
|
|
409
419
|
return response?.body;
|
|
410
420
|
}
|
|
411
421
|
async sendDataBreakpoints(dataBreakpoints) {
|
|
@@ -413,11 +423,26 @@ let DebugSession = class DebugSession {
|
|
|
413
423
|
throw new Error(localizeWithPath('vs/workbench/contrib/debug/browser/debugSession', 'noDebugAdapter', "No debugger available, can not send '{0}'", 'data breakpoints'));
|
|
414
424
|
}
|
|
415
425
|
if (this.raw.readyForBreakpoints) {
|
|
416
|
-
const
|
|
417
|
-
|
|
426
|
+
const converted = await Promise.all(( dataBreakpoints.map(async (bp) => {
|
|
427
|
+
try {
|
|
428
|
+
const dap = await bp.toDAP(this);
|
|
429
|
+
return { dap, bp };
|
|
430
|
+
}
|
|
431
|
+
catch (e) {
|
|
432
|
+
return { bp, message: e.message };
|
|
433
|
+
}
|
|
434
|
+
})));
|
|
435
|
+
const response = await this.raw.setDataBreakpoints({ breakpoints: ( converted.map(d => d.dap)).filter(isDefined) });
|
|
436
|
+
if (response?.body) {
|
|
418
437
|
const data = ( new Map());
|
|
419
|
-
|
|
420
|
-
|
|
438
|
+
let i = 0;
|
|
439
|
+
for (const dap of converted) {
|
|
440
|
+
if (!dap.dap) {
|
|
441
|
+
data.set(dap.bp.getId(), dap.message);
|
|
442
|
+
}
|
|
443
|
+
else if (i < response.body.breakpoints.length) {
|
|
444
|
+
data.set(dap.bp.getId(), response.body.breakpoints[i++]);
|
|
445
|
+
}
|
|
421
446
|
}
|
|
422
447
|
this.model.setBreakpointSessionData(this.getId(), this.capabilities, data);
|
|
423
448
|
}
|
|
@@ -429,7 +454,7 @@ let DebugSession = class DebugSession {
|
|
|
429
454
|
}
|
|
430
455
|
if (this.raw.readyForBreakpoints) {
|
|
431
456
|
const response = await this.raw.setInstructionBreakpoints({ breakpoints: ( instructionBreakpoints.map(ib => ib.toDAP())) });
|
|
432
|
-
if (response
|
|
457
|
+
if (response?.body) {
|
|
433
458
|
const data = ( new Map());
|
|
434
459
|
for (let i = 0; i < instructionBreakpoints.length; i++) {
|
|
435
460
|
data.set(instructionBreakpoints[i].getId(), response.body.breakpoints[i]);
|
|
@@ -626,7 +651,7 @@ let DebugSession = class DebugSession {
|
|
|
626
651
|
)))));
|
|
627
652
|
}
|
|
628
653
|
const response = await this.raw.loadedSources({});
|
|
629
|
-
if (response
|
|
654
|
+
if (response?.body && response.body.sources) {
|
|
630
655
|
return ( response.body.sources.map(src => this.getSource(src)));
|
|
631
656
|
}
|
|
632
657
|
else {
|
|
@@ -795,7 +820,7 @@ let DebugSession = class DebugSession {
|
|
|
795
820
|
async fetchThreads(stoppedDetails) {
|
|
796
821
|
if (this.raw) {
|
|
797
822
|
const response = await this.raw.threads();
|
|
798
|
-
if (response
|
|
823
|
+
if (response?.body && response.body.threads) {
|
|
799
824
|
this.model.rawUpdate({
|
|
800
825
|
sessionId: this.getId(),
|
|
801
826
|
threads: response.body.threads,
|
|
@@ -903,7 +928,7 @@ let DebugSession = class DebugSession {
|
|
|
903
928
|
}));
|
|
904
929
|
const outputQueue = ( new Queue());
|
|
905
930
|
this.rawListeners.add(this.raw.onDidOutput(async (event) => {
|
|
906
|
-
const outputSeverity = event.body.category === 'stderr' ? Severity.Error : event.body.category === 'console' ? Severity.Warning : Severity.Info;
|
|
931
|
+
const outputSeverity = event.body.category === 'stderr' ? Severity$1.Error : event.body.category === 'console' ? Severity$1.Warning : Severity$1.Info;
|
|
907
932
|
if (event.body.variablesReference) {
|
|
908
933
|
const source = event.body.source && event.body.line ? {
|
|
909
934
|
lineNumber: event.body.line,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
3
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
3
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
4
4
|
import { Markers } from 'vscode/vscode/vs/workbench/contrib/markers/common/markers';
|
|
5
5
|
import { ITaskService } from 'vscode/vscode/vs/workbench/contrib/tasks/common/taskService';
|
|
6
6
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
|
|
@@ -97,7 +97,7 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
97
97
|
DebugChoice[DebugChoice["Cancel"] = 0] = "Cancel";
|
|
98
98
|
})(DebugChoice || (DebugChoice = {})));
|
|
99
99
|
const { result, checkboxChecked } = await this.dialogService.prompt({
|
|
100
|
-
type: Severity.Warning,
|
|
100
|
+
type: Severity$1.Warning,
|
|
101
101
|
message,
|
|
102
102
|
buttons: [
|
|
103
103
|
{
|
|
@@ -158,7 +158,7 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
158
158
|
}
|
|
159
159
|
else {
|
|
160
160
|
const { result, checkboxChecked } = await this.dialogService.prompt({
|
|
161
|
-
type: Severity.Error,
|
|
161
|
+
type: Severity$1.Error,
|
|
162
162
|
message: err.message,
|
|
163
163
|
buttons: [
|
|
164
164
|
{
|
|
@@ -287,7 +287,7 @@ let DebugTaskRunner = class DebugTaskRunner {
|
|
|
287
287
|
"The task '{0}' cannot be tracked. Make sure to have a problem matcher defined.",
|
|
288
288
|
JSON.stringify(taskId)
|
|
289
289
|
));
|
|
290
|
-
e({ severity: Severity.Error, message: errorMessage });
|
|
290
|
+
e({ severity: Severity$1.Error, message: errorMessage });
|
|
291
291
|
}
|
|
292
292
|
}, waitTime);
|
|
293
293
|
});
|
|
@@ -19,7 +19,17 @@ import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/c
|
|
|
19
19
|
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
|
|
20
20
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
21
21
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
22
|
-
import
|
|
22
|
+
import 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
23
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
24
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
25
|
+
import { widgetShadow, widgetBorder } from 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
26
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
27
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
28
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
29
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
30
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
31
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
32
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
23
33
|
import { Themable, IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
|
|
24
34
|
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
25
35
|
import { FocusSessionActionViewItem } from './debugActionViewItems.js';
|
|
@@ -129,15 +139,14 @@ let DebugToolBar = class DebugToolBar extends Themable {
|
|
|
129
139
|
}));
|
|
130
140
|
this._register(this.layoutService.onDidChangePartVisibility(() => this.setYCoordinate()));
|
|
131
141
|
const resizeListener = this._register(( new MutableDisposable()));
|
|
132
|
-
this._register(this.layoutService.onDidChangeActiveContainer(() => {
|
|
142
|
+
this._register(this.layoutService.onDidChangeActiveContainer(async () => {
|
|
133
143
|
this._yRange = undefined;
|
|
134
|
-
this.layoutService.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
});
|
|
144
|
+
await this.layoutService.whenContainerStylesLoaded(getWindow(this.layoutService.activeContainer));
|
|
145
|
+
if (this.isBuilt) {
|
|
146
|
+
this.doShowInActiveContainer();
|
|
147
|
+
this.setCoordinates();
|
|
148
|
+
}
|
|
149
|
+
resizeListener.value = this._register(addDisposableListener(getWindow(this.layoutService.activeContainer), EventType.RESIZE, () => this.setYCoordinate()));
|
|
141
150
|
}));
|
|
142
151
|
}
|
|
143
152
|
storePosition() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { PixelRatio } from 'vscode/vscode/vs/base/browser/pixelRatio';
|
|
3
|
-
import {
|
|
3
|
+
import { append, $, addStandardDisposableListener } from 'vscode/vscode/vs/base/browser/dom';
|
|
4
4
|
import { binarySearch2 } from 'vscode/vscode/vs/base/common/arrays';
|
|
5
5
|
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
6
6
|
import { dispose, Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
@@ -20,7 +20,17 @@ import { WorkbenchTable } from 'vscode/vscode/vs/platform/list/browser/listServi
|
|
|
20
20
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
21
21
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
22
22
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
23
|
-
import
|
|
23
|
+
import 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
24
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
25
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
26
|
+
import { editorBackground } from 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
27
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
28
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
29
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
30
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
31
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
32
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
33
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
24
34
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
|
|
25
35
|
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
|
|
26
36
|
import { EditorPane } from 'vscode/vscode/vs/workbench/browser/parts/editor/editorPane';
|
|
@@ -53,8 +63,8 @@ const disassemblyNotAvailable = {
|
|
|
53
63
|
let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
54
64
|
static { DisassemblyView_1 = this; }
|
|
55
65
|
static { this.NUM_INSTRUCTIONS_TO_LOAD = 50; }
|
|
56
|
-
constructor(telemetryService, themeService, storageService, _configurationService, _instantiationService, _debugService) {
|
|
57
|
-
super(DISASSEMBLY_VIEW_ID, telemetryService, themeService, storageService);
|
|
66
|
+
constructor(group, telemetryService, themeService, storageService, _configurationService, _instantiationService, _debugService) {
|
|
67
|
+
super(DISASSEMBLY_VIEW_ID, group, telemetryService, themeService, storageService);
|
|
58
68
|
this._configurationService = _configurationService;
|
|
59
69
|
this._instantiationService = _instantiationService;
|
|
60
70
|
this._debugService = _debugService;
|
|
@@ -89,8 +99,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
|
89
99
|
return this._fontInfo;
|
|
90
100
|
}
|
|
91
101
|
createFontInfo() {
|
|
92
|
-
|
|
93
|
-
return BareFontInfo.createFromRawSettings(this._configurationService.getValue('editor'), PixelRatio.getInstance(window).value);
|
|
102
|
+
return BareFontInfo.createFromRawSettings(this._configurationService.getValue('editor'), PixelRatio.getInstance(this.window).value);
|
|
94
103
|
}
|
|
95
104
|
get currentInstructionAddresses() {
|
|
96
105
|
return ( ( ( ( this._debugService.getModel().getSessions(false).
|
|
@@ -476,12 +485,12 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
|
|
|
476
485
|
}
|
|
477
486
|
};
|
|
478
487
|
DisassemblyView = DisassemblyView_1 = ( __decorate([
|
|
479
|
-
( __param(
|
|
480
|
-
( __param(
|
|
481
|
-
( __param(
|
|
482
|
-
( __param(
|
|
483
|
-
( __param(
|
|
484
|
-
( __param(
|
|
488
|
+
( __param(1, ITelemetryService)),
|
|
489
|
+
( __param(2, IThemeService)),
|
|
490
|
+
( __param(3, IStorageService)),
|
|
491
|
+
( __param(4, IConfigurationService)),
|
|
492
|
+
( __param(5, IInstantiationService)),
|
|
493
|
+
( __param(6, IDebugService))
|
|
485
494
|
], DisassemblyView));
|
|
486
495
|
let BreakpointRenderer = class BreakpointRenderer {
|
|
487
496
|
static { BreakpointRenderer_1 = this; }
|
|
@@ -7,7 +7,17 @@ import { EDITOR_CONTRIBUTION_ID } from 'vscode/vscode/vs/workbench/contrib/debug
|
|
|
7
7
|
import { RunOnceScheduler } from 'vscode/vscode/vs/base/common/async';
|
|
8
8
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
|
|
9
9
|
import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
|
|
10
|
-
import { registerColor } from 'vscode/vscode/vs/platform/theme/common/
|
|
10
|
+
import { registerColor } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
11
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
12
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
13
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
14
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
15
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
16
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
17
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
18
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
19
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
20
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
11
21
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
12
22
|
import { LinkDetector } from './linkDetector.js';
|
|
13
23
|
import { ActionBar } from 'vscode/vscode/vs/base/browser/ui/actionbar/actionbar';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { Event } from 'vscode/vscode/vs/base/common/event';
|
|
3
3
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
4
|
+
import 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
4
5
|
import { ExtensionHostDebugChannelClient, ExtensionHostDebugBroadcastChannel } from '../../../../platform/debug/common/extensionHostDebugIpc.js';
|
|
5
6
|
import { IFileService } from 'vscode/vscode/vs/platform/files/common/files';
|
|
6
7
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
@@ -14,7 +14,7 @@ import './media/repl.css.js';
|
|
|
14
14
|
import { isCodeEditor } from 'vscode/vscode/vs/editor/browser/editorBrowser';
|
|
15
15
|
import { registerEditorAction, EditorAction } from 'vscode/vscode/vs/editor/browser/editorExtensions';
|
|
16
16
|
import { ICodeEditorService } from 'vscode/vscode/vs/editor/browser/services/codeEditorService';
|
|
17
|
-
import { CodeEditorWidget } from 'vscode/vscode/vs/editor/browser/widget/codeEditorWidget';
|
|
17
|
+
import { CodeEditorWidget } from 'vscode/vscode/vs/editor/browser/widget/codeEditor/codeEditorWidget';
|
|
18
18
|
import { EDITOR_FONT_DEFAULTS } from 'vscode/vscode/vs/editor/common/config/editorOptions';
|
|
19
19
|
import { Range } from 'vscode/vscode/vs/editor/common/core/range';
|
|
20
20
|
import { EditorContextKeys } from 'vscode/vscode/vs/editor/common/editorContextKeys';
|
|
@@ -39,7 +39,17 @@ import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
|
39
39
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener';
|
|
40
40
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
41
41
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
42
|
-
import { resolveColorValue
|
|
42
|
+
import { resolveColorValue } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
43
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
44
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
45
|
+
import { editorForeground } from 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
46
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
47
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
48
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
49
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
50
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
51
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
52
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
43
53
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
|
|
44
54
|
import { FilterViewPane, ViewAction } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
45
55
|
import { IViewDescriptorService } from 'vscode/vscode/vs/workbench/common/views';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
|
-
import { append, clearNode,
|
|
2
|
+
import { append, clearNode, $ as $$1, 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
5
|
import { CachedListVirtualDelegate } from 'vscode/vscode/vs/base/browser/ui/list/list';
|
|
6
6
|
import { createMatches } from 'vscode/vscode/vs/base/common/filters';
|
|
7
7
|
import { dispose } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
8
8
|
import { basename } from 'vscode/vscode/vs/base/common/path';
|
|
9
|
-
import Severity from 'vscode/vscode/vs/base/common/severity';
|
|
9
|
+
import Severity$1 from 'vscode/vscode/vs/base/common/severity';
|
|
10
10
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
11
11
|
import { IContextViewService } from 'vscode/vscode/vs/platform/contextview/browser/contextView';
|
|
12
12
|
import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label';
|
|
@@ -20,6 +20,8 @@ import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/d
|
|
|
20
20
|
import { Variable } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
|
|
21
21
|
import { ReplVariableElement, ReplEvaluationResult, ReplOutputElement, ReplEvaluationInput, ReplGroup, RawObjectReplElement } from 'vscode/vscode/vs/workbench/contrib/debug/common/replModel';
|
|
22
22
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
|
|
23
|
+
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/hover/updatableHoverWidget';
|
|
24
|
+
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
23
25
|
|
|
24
26
|
var ReplGroupRenderer_1, ReplOutputElementRenderer_1, ReplVariablesRenderer_1;
|
|
25
27
|
const $ = $$1;
|
|
@@ -39,6 +41,7 @@ class ReplEvaluationInputsRenderer {
|
|
|
39
41
|
templateData.label.set(evaluation.value, createMatches(element.filterData));
|
|
40
42
|
}
|
|
41
43
|
disposeTemplate(templateData) {
|
|
44
|
+
templateData.label.dispose();
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
let ReplGroupRenderer = class ReplGroupRenderer {
|
|
@@ -134,9 +137,9 @@ let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
|
134
137
|
clearNode(templateData.value);
|
|
135
138
|
templateData.value.className = 'value';
|
|
136
139
|
templateData.value.appendChild(handleANSIOutput(element.value, this.linkDetector, this.themeService, element.session.root));
|
|
137
|
-
templateData.value.classList.add((element.severity === Severity.Warning) ? 'warn' : (element.severity === Severity.Error) ? 'error' : (element.severity === Severity.Ignore) ? 'ignore' : 'info');
|
|
140
|
+
templateData.value.classList.add((element.severity === Severity$1.Warning) ? 'warn' : (element.severity === Severity$1.Error) ? 'error' : (element.severity === Severity$1.Ignore) ? 'ignore' : 'info');
|
|
138
141
|
templateData.source.textContent = element.sourceData ? `${basename(element.sourceData.source.name)}:${element.sourceData.lineNumber}` : '';
|
|
139
|
-
templateData.
|
|
142
|
+
templateData.toDispose.push(setupCustomHover(getDefaultHoverDelegate('mouse'), templateData.source, element.sourceData ? `${this.labelService.getUriLabel(element.sourceData.source.uri)}:${element.sourceData.lineNumber}` : ''));
|
|
140
143
|
templateData.getReplElementSource = () => element.sourceData;
|
|
141
144
|
}
|
|
142
145
|
setElementCount(element, templateData) {
|
|
@@ -225,6 +228,7 @@ class ReplRawObjectsRenderer {
|
|
|
225
228
|
});
|
|
226
229
|
}
|
|
227
230
|
disposeTemplate(templateData) {
|
|
231
|
+
templateData.label.dispose();
|
|
228
232
|
}
|
|
229
233
|
}
|
|
230
234
|
function isNestedVariable(element) {
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
3
|
-
import { registerColor, asCssVariableName, asCssVariable } from 'vscode/vscode/vs/platform/theme/common/
|
|
3
|
+
import { registerColor, asCssVariableName, asCssVariable } from 'vscode/vscode/vs/platform/theme/common/colorUtils';
|
|
4
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/baseColors';
|
|
5
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/chartsColors';
|
|
6
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/editorColors';
|
|
7
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/inputColors';
|
|
8
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/listColors';
|
|
9
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/menuColors';
|
|
10
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/minimapColors';
|
|
11
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
|
|
12
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
|
|
13
|
+
import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
|
|
4
14
|
import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
5
15
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
6
16
|
import { STATUS_BAR_FOREGROUND, STATUS_BAR_BORDER, COMMAND_CENTER_BACKGROUND } from 'vscode/vscode/vs/workbench/common/theme';
|
|
@@ -80,7 +90,7 @@ let StatusBarColorProvider = class StatusBarColorProvider {
|
|
|
80
90
|
if (e.affectsConfiguration('debug.enableStatusBarColor') || e.affectsConfiguration('debug.toolBarLocation')) {
|
|
81
91
|
this.update();
|
|
82
92
|
}
|
|
83
|
-
});
|
|
93
|
+
}, this.disposables);
|
|
84
94
|
this.update();
|
|
85
95
|
}
|
|
86
96
|
update() {
|
|
@@ -3,7 +3,7 @@ import { append, $ as $$1 } from 'vscode/vscode/vs/base/browser/dom';
|
|
|
3
3
|
import { HighlightedLabel } from 'vscode/vscode/vs/base/browser/ui/highlightedlabel/highlightedLabel';
|
|
4
4
|
import { Action } from 'vscode/vscode/vs/base/common/actions';
|
|
5
5
|
import { coalesce } from 'vscode/vscode/vs/base/common/arrays';
|
|
6
|
-
import {
|
|
6
|
+
import { RunOnceScheduler } from 'vscode/vscode/vs/base/common/async';
|
|
7
7
|
import { CancellationTokenSource } from 'vscode/vscode/vs/base/common/cancellation';
|
|
8
8
|
import { Codicon } from 'vscode/vscode/vs/base/common/codicons';
|
|
9
9
|
import { createMatches } from 'vscode/vscode/vs/base/common/filters';
|
|
@@ -13,16 +13,15 @@ import { localizeWithPath } from 'vscode/vscode/vs/nls';
|
|
|
13
13
|
import { createAndFillInContextMenuActions } from 'vscode/vscode/vs/platform/actions/browser/menuEntryActionViewItem';
|
|
14
14
|
import { MenuId, registerAction2, IMenuService } from 'vscode/vscode/vs/platform/actions/common/actions';
|
|
15
15
|
import { IClipboardService } from 'vscode/vscode/vs/platform/clipboard/common/clipboardService';
|
|
16
|
-
import { CommandsRegistry
|
|
16
|
+
import { CommandsRegistry } from 'vscode/vscode/vs/platform/commands/common/commands';
|
|
17
17
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
|
|
18
18
|
import { ContextKeyExpr, IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
19
19
|
import { IContextMenuService, IContextViewService } from 'vscode/vscode/vs/platform/contextview/browser/contextView';
|
|
20
20
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
21
21
|
import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding';
|
|
22
22
|
import { WorkbenchAsyncDataTree } from 'vscode/vscode/vs/platform/list/browser/listService';
|
|
23
|
-
import { INotificationService
|
|
23
|
+
import { INotificationService } from 'vscode/vscode/vs/platform/notification/common/notification';
|
|
24
24
|
import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener';
|
|
25
|
-
import { IProgressService } from 'vscode/vscode/vs/platform/progress/common/progress';
|
|
26
25
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
|
|
27
26
|
import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeService';
|
|
28
27
|
import { ViewAction, ViewPane } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
@@ -33,6 +32,7 @@ import { IDebugService, VARIABLES_VIEW_ID, CONTEXT_VARIABLES_FOCUSED, CONTEXT_BR
|
|
|
33
32
|
import { getContextForVariable } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugContext';
|
|
34
33
|
import { VisualizedExpression, Variable, getUriForDebugMemory, Expression, ErrorScope, Scope, StackFrame } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
|
|
35
34
|
import { IDebugVisualizerService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugVisualizers';
|
|
35
|
+
import { IExtensionsWorkbenchService } from 'vscode/vscode/vs/workbench/contrib/extensions/common/extensions';
|
|
36
36
|
import { IEditorService, SIDE_GROUP } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
|
|
37
37
|
import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
38
38
|
|
|
@@ -301,6 +301,7 @@ class ScopesRenderer {
|
|
|
301
301
|
templateData.label.set(element.element.name, createMatches(element.filterData));
|
|
302
302
|
}
|
|
303
303
|
disposeTemplate(templateData) {
|
|
304
|
+
templateData.label.dispose();
|
|
304
305
|
}
|
|
305
306
|
}
|
|
306
307
|
class ScopeErrorRenderer {
|
|
@@ -623,14 +624,13 @@ CommandsRegistry.registerCommand({
|
|
|
623
624
|
sessionId = focused.getId();
|
|
624
625
|
memoryReference = arg.memoryReference;
|
|
625
626
|
}
|
|
626
|
-
const
|
|
627
|
+
const extensionsWorkbenchService = accessor.get(IExtensionsWorkbenchService);
|
|
627
628
|
const editorService = accessor.get(IEditorService);
|
|
628
|
-
const
|
|
629
|
-
const progressService = accessor.get(IProgressService);
|
|
629
|
+
const notificationService = accessor.get(INotificationService);
|
|
630
630
|
const extensionService = accessor.get(IExtensionService);
|
|
631
631
|
const telemetryService = accessor.get(ITelemetryService);
|
|
632
632
|
const ext = await extensionService.getExtension(HEX_EDITOR_EXTENSION_ID);
|
|
633
|
-
if (ext || (await tryInstallHexEditor(
|
|
633
|
+
if (ext || (await tryInstallHexEditor(extensionsWorkbenchService, notificationService))) {
|
|
634
634
|
telemetryService.publicLog('debug/didViewMemory', {
|
|
635
635
|
debugType: debugService.getModel().getSession(sessionId)?.configuration.type,
|
|
636
636
|
});
|
|
@@ -644,51 +644,22 @@ CommandsRegistry.registerCommand({
|
|
|
644
644
|
}
|
|
645
645
|
}
|
|
646
646
|
});
|
|
647
|
-
function tryInstallHexEditor(
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
try {
|
|
664
|
-
await progressService.withProgress({
|
|
665
|
-
location: 15 ,
|
|
666
|
-
title: ( localizeWithPath(
|
|
667
|
-
'vs/workbench/contrib/debug/browser/variablesView',
|
|
668
|
-
"viewMemory.install.progress",
|
|
669
|
-
"Installing the Hex Editor..."
|
|
670
|
-
)),
|
|
671
|
-
}, async () => {
|
|
672
|
-
await commandService.executeCommand('workbench.extensions.installExtension', HEX_EDITOR_EXTENSION_ID);
|
|
673
|
-
while (!(await extensionService.getExtension(HEX_EDITOR_EXTENSION_ID))) {
|
|
674
|
-
await timeout(30);
|
|
675
|
-
}
|
|
676
|
-
});
|
|
677
|
-
resolve(true);
|
|
678
|
-
}
|
|
679
|
-
catch (e) {
|
|
680
|
-
notifications.error(e);
|
|
681
|
-
resolve(false);
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
},
|
|
685
|
-
], { sticky: true });
|
|
686
|
-
handle.onDidClose(e => {
|
|
687
|
-
if (!installing) {
|
|
688
|
-
resolve(false);
|
|
689
|
-
}
|
|
690
|
-
});
|
|
691
|
-
}));
|
|
647
|
+
async function tryInstallHexEditor(extensionsWorkbenchService, notificationService) {
|
|
648
|
+
try {
|
|
649
|
+
await extensionsWorkbenchService.install(HEX_EDITOR_EXTENSION_ID, {
|
|
650
|
+
justification: ( localizeWithPath(
|
|
651
|
+
'vs/workbench/contrib/debug/browser/variablesView',
|
|
652
|
+
"viewMemory.prompt",
|
|
653
|
+
"Inspecting binary data requires this extension."
|
|
654
|
+
)),
|
|
655
|
+
enable: true
|
|
656
|
+
}, 15 );
|
|
657
|
+
return true;
|
|
658
|
+
}
|
|
659
|
+
catch (error) {
|
|
660
|
+
notificationService.error(error);
|
|
661
|
+
return false;
|
|
662
|
+
}
|
|
692
663
|
}
|
|
693
664
|
const BREAK_WHEN_VALUE_CHANGES_ID = 'debug.breakWhenValueChanges';
|
|
694
665
|
CommandsRegistry.registerCommand({
|
|
@@ -696,7 +667,7 @@ CommandsRegistry.registerCommand({
|
|
|
696
667
|
handler: async (accessor) => {
|
|
697
668
|
const debugService = accessor.get(IDebugService);
|
|
698
669
|
if (dataBreakpointInfoResponse) {
|
|
699
|
-
await debugService.addDataBreakpoint(dataBreakpointInfoResponse.description, dataBreakpointInfoResponse.dataId, !!dataBreakpointInfoResponse.canPersist, dataBreakpointInfoResponse.accessTypes, 'write'
|
|
670
|
+
await debugService.addDataBreakpoint({ description: dataBreakpointInfoResponse.description, src: { type: 0 , dataId: dataBreakpointInfoResponse.dataId }, canPersist: !!dataBreakpointInfoResponse.canPersist, accessTypes: dataBreakpointInfoResponse.accessTypes, accessType: 'write' });
|
|
700
671
|
}
|
|
701
672
|
}
|
|
702
673
|
});
|
|
@@ -706,7 +677,7 @@ CommandsRegistry.registerCommand({
|
|
|
706
677
|
handler: async (accessor) => {
|
|
707
678
|
const debugService = accessor.get(IDebugService);
|
|
708
679
|
if (dataBreakpointInfoResponse) {
|
|
709
|
-
await debugService.addDataBreakpoint(dataBreakpointInfoResponse.description, dataBreakpointInfoResponse.dataId, !!dataBreakpointInfoResponse.canPersist, dataBreakpointInfoResponse.accessTypes, 'readWrite'
|
|
680
|
+
await debugService.addDataBreakpoint({ description: dataBreakpointInfoResponse.description, src: { type: 0 , dataId: dataBreakpointInfoResponse.dataId }, canPersist: !!dataBreakpointInfoResponse.canPersist, accessTypes: dataBreakpointInfoResponse.accessTypes, accessType: 'readWrite' });
|
|
710
681
|
}
|
|
711
682
|
}
|
|
712
683
|
});
|
|
@@ -716,7 +687,7 @@ CommandsRegistry.registerCommand({
|
|
|
716
687
|
handler: async (accessor) => {
|
|
717
688
|
const debugService = accessor.get(IDebugService);
|
|
718
689
|
if (dataBreakpointInfoResponse) {
|
|
719
|
-
await debugService.addDataBreakpoint(dataBreakpointInfoResponse.description, dataBreakpointInfoResponse.dataId, !!dataBreakpointInfoResponse.canPersist, dataBreakpointInfoResponse.accessTypes, 'read'
|
|
690
|
+
await debugService.addDataBreakpoint({ description: dataBreakpointInfoResponse.description, src: { type: 0 , dataId: dataBreakpointInfoResponse.dataId }, canPersist: !!dataBreakpointInfoResponse.canPersist, accessTypes: dataBreakpointInfoResponse.accessTypes, accessType: 'read' });
|
|
720
691
|
}
|
|
721
692
|
}
|
|
722
693
|
});
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
|
|
2
2
|
import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
3
|
+
import { observableValue } from 'vscode/vscode/vs/base/common/observableInternal/base';
|
|
4
|
+
import 'vscode/vscode/vs/base/common/observableInternal/derived';
|
|
5
|
+
import 'vscode/vscode/vs/base/common/observableInternal/autorun';
|
|
6
|
+
import 'vscode/vscode/vs/base/common/observableInternal/utils';
|
|
7
|
+
import 'vscode/vscode/vs/base/common/cancellation';
|
|
3
8
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
4
9
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log';
|
|
5
10
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
|
|
6
11
|
import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
|
|
7
12
|
import { Breakpoint, FunctionBreakpoint, ExceptionBreakpoint, DataBreakpoint, Expression } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
|
|
8
13
|
import { ITextFileService } from 'vscode/vscode/vs/workbench/services/textfile/common/textfiles';
|
|
9
|
-
import { observableValue } from 'vscode/vscode/vs/base/common/observableInternal/base';
|
|
10
14
|
|
|
11
15
|
const DEBUG_BREAKPOINTS_KEY = 'debug.breakpoint';
|
|
12
16
|
const DEBUG_FUNCTION_BREAKPOINTS_KEY = 'debug.functionbreakpoint';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Emitter } from 'vscode/vscode/vs/base/common/event';
|
|
2
|
-
import { CONTEXT_EXPRESSION_SELECTED, CONTEXT_LOADED_SCRIPTS_SUPPORTED, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_SET_EXPRESSION_SUPPORTED, CONTEXT_MULTI_SESSION_DEBUG, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_DISASSEMBLE_REQUEST_SUPPORTED, CONTEXT_FOCUSED_STACK_FRAME_HAS_INSTRUCTION_POINTER_REFERENCE } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
2
|
+
import { CONTEXT_EXPRESSION_SELECTED, CONTEXT_LOADED_SCRIPTS_SUPPORTED, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_SET_DATA_BREAKPOINT_BYTES_SUPPORTED, CONTEXT_SET_EXPRESSION_SUPPORTED, CONTEXT_MULTI_SESSION_DEBUG, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_DISASSEMBLE_REQUEST_SUPPORTED, CONTEXT_FOCUSED_STACK_FRAME_HAS_INSTRUCTION_POINTER_REFERENCE } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
3
3
|
import { isSessionAttach } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugUtils';
|
|
4
4
|
|
|
5
5
|
class ViewModel {
|
|
@@ -25,6 +25,7 @@ class ViewModel {
|
|
|
25
25
|
this.stepIntoTargetsSupported = CONTEXT_STEP_INTO_TARGETS_SUPPORTED.bindTo(contextKeyService);
|
|
26
26
|
this.jumpToCursorSupported = CONTEXT_JUMP_TO_CURSOR_SUPPORTED.bindTo(contextKeyService);
|
|
27
27
|
this.setVariableSupported = CONTEXT_SET_VARIABLE_SUPPORTED.bindTo(contextKeyService);
|
|
28
|
+
this.setDataBreakpointAtByteSupported = CONTEXT_SET_DATA_BREAKPOINT_BYTES_SUPPORTED.bindTo(contextKeyService);
|
|
28
29
|
this.setExpressionSupported = CONTEXT_SET_EXPRESSION_SUPPORTED.bindTo(contextKeyService);
|
|
29
30
|
this.multiSessionDebug = CONTEXT_MULTI_SESSION_DEBUG.bindTo(contextKeyService);
|
|
30
31
|
this.terminateDebuggeeSupported = CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED.bindTo(contextKeyService);
|
|
@@ -53,15 +54,16 @@ class ViewModel {
|
|
|
53
54
|
this._focusedThread = thread;
|
|
54
55
|
this._focusedSession = session;
|
|
55
56
|
this.contextKeyService.bufferChangeEvents(() => {
|
|
56
|
-
this.loadedScriptsSupportedContextKey.set(
|
|
57
|
-
this.stepBackSupportedContextKey.set(
|
|
58
|
-
this.restartFrameSupportedContextKey.set(
|
|
59
|
-
this.stepIntoTargetsSupported.set(
|
|
60
|
-
this.jumpToCursorSupported.set(
|
|
61
|
-
this.setVariableSupported.set(
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
64
|
-
this.
|
|
57
|
+
this.loadedScriptsSupportedContextKey.set(!!session?.capabilities.supportsLoadedSourcesRequest);
|
|
58
|
+
this.stepBackSupportedContextKey.set(!!session?.capabilities.supportsStepBack);
|
|
59
|
+
this.restartFrameSupportedContextKey.set(!!session?.capabilities.supportsRestartFrame);
|
|
60
|
+
this.stepIntoTargetsSupported.set(!!session?.capabilities.supportsStepInTargetsRequest);
|
|
61
|
+
this.jumpToCursorSupported.set(!!session?.capabilities.supportsGotoTargetsRequest);
|
|
62
|
+
this.setVariableSupported.set(!!session?.capabilities.supportsSetVariable);
|
|
63
|
+
this.setDataBreakpointAtByteSupported.set(!!session?.capabilities.supportsDataBreakpointBytes);
|
|
64
|
+
this.setExpressionSupported.set(!!session?.capabilities.supportsSetExpression);
|
|
65
|
+
this.terminateDebuggeeSupported.set(!!session?.capabilities.supportTerminateDebuggee);
|
|
66
|
+
this.suspendDebuggeeSupported.set(!!session?.capabilities.supportSuspendDebuggee);
|
|
65
67
|
this.disassembleRequestSupported.set(!!session?.capabilities.supportsDisassembleRequest);
|
|
66
68
|
this.focusedStackFrameHasInstructionPointerReference.set(!!stackFrame?.instructionPointerReference);
|
|
67
69
|
const attach = !!session && isSessionAttach(session);
|
|
@@ -5,6 +5,7 @@ import { ILabelService } from 'vscode/vscode/vs/platform/label/common/label';
|
|
|
5
5
|
import { IQuickInputService } from 'vscode/vscode/vs/platform/quickinput/common/quickInput';
|
|
6
6
|
import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
|
|
7
7
|
import { BaseConfigurationResolverService } from './baseConfigurationResolverService.js';
|
|
8
|
+
import 'vscode/vscode/vs/workbench/services/configurationResolver/common/configurationResolver';
|
|
8
9
|
import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
|
|
9
10
|
import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
|
|
10
11
|
import { IPathService } from 'vscode/vscode/vs/workbench/services/path/common/pathService';
|