@codingame/monaco-vscode-debug-service-override 4.5.2 → 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/workbench/contrib/debug/browser/callStackView.js +42 -34
- package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +93 -93
- package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +7 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +12 -9
- package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +6 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +3 -3
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +2 -2
- package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +1 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +16 -12
- package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +12 -5
- package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +6 -6
- 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/repl.js +20 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/replFilter.js +4 -1
- package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +22 -16
- package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +33 -21
- package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +12 -11
- package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +6 -4
- package/vscode/src/vs/workbench/contrib/debug/common/debugStorage.js +1 -0
- package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +0 -963
- package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +0 -103
- package/vscode/src/vs/workbench/contrib/debug/common/loadedScriptsPicker.js +0 -84
|
@@ -70,6 +70,7 @@ import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/commo
|
|
|
70
70
|
import { registerNavigableContainer } from 'vscode/vscode/vs/workbench/browser/actions/widgetNavigationCommands';
|
|
71
71
|
import { AccessibilitySignal } from 'vscode/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService';
|
|
72
72
|
import { IAccessibilitySignalService } from 'vscode/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service';
|
|
73
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
73
74
|
|
|
74
75
|
var Repl_1, ReplOptions_1;
|
|
75
76
|
const _moduleId = "vs/workbench/contrib/debug/browser/repl";
|
|
@@ -87,16 +88,16 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
87
88
|
static { Repl_1 = this; }
|
|
88
89
|
static { this.REFRESH_DELAY = 50; }
|
|
89
90
|
static { this.URI = ( URI.parse(`${DEBUG_SCHEME}:replinput`)); }
|
|
90
|
-
constructor(options, debugService, instantiationService, storageService, themeService, modelService, contextKeyService, codeEditorService, viewDescriptorService, contextMenuService, configurationService, textResourcePropertiesService, editorService, keybindingService, openerService, telemetryService, menuService, languageFeaturesService, logService) {
|
|
91
|
+
constructor(options, debugService, instantiationService, storageService, themeService, modelService, contextKeyService, codeEditorService, viewDescriptorService, contextMenuService, configurationService, textResourcePropertiesService, editorService, keybindingService, openerService, telemetryService, hoverService, menuService, languageFeaturesService, logService) {
|
|
91
92
|
const filterText = storageService.get(FILTER_VALUE_STORAGE_KEY, 1 , '');
|
|
92
93
|
super({
|
|
93
94
|
...options,
|
|
94
95
|
filterOptions: {
|
|
95
|
-
placeholder: ( localizeWithPath(_moduleId, 0, "Filter (e.g. text, !exclude)")),
|
|
96
|
+
placeholder: ( localizeWithPath(_moduleId, 0, "Filter (e.g. text, !exclude, \\escape)")),
|
|
96
97
|
text: filterText,
|
|
97
98
|
history: JSON.parse(storageService.get(FILTER_HISTORY_STORAGE_KEY, 1 , '[]')),
|
|
98
99
|
}
|
|
99
|
-
}, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
100
|
+
}, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
|
100
101
|
this.debugService = debugService;
|
|
101
102
|
this.storageService = storageService;
|
|
102
103
|
this.modelService = modelService;
|
|
@@ -117,7 +118,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
117
118
|
this.filter = ( (new ReplFilter()));
|
|
118
119
|
this.filter.filterQuery = filterText;
|
|
119
120
|
this.multiSessionRepl = CONTEXT_MULTI_SESSION_REPL.bindTo(contextKeyService);
|
|
120
|
-
this.replOptions = this._register(this.instantiationService.createInstance(ReplOptions, this.id, () => this.
|
|
121
|
+
this.replOptions = this._register(this.instantiationService.createInstance(ReplOptions, this.id, () => this.getLocationBasedColors().background));
|
|
121
122
|
this._register(this.replOptions.onDidChange(() => this.onDidStyleChange()));
|
|
122
123
|
codeEditorService.registerDecorationType('repl-decoration', DECORATION_KEY, {});
|
|
123
124
|
this.multiSessionRepl.set(this.isMultiSessionView);
|
|
@@ -479,6 +480,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
479
480
|
render() {
|
|
480
481
|
super.render();
|
|
481
482
|
this._register(registerNavigableContainer({
|
|
483
|
+
name: 'repl',
|
|
482
484
|
focusNotifiers: [this, this.filterWidget],
|
|
483
485
|
focusNextWidget: () => {
|
|
484
486
|
const element = this.tree?.getHTMLElement();
|
|
@@ -517,8 +519,8 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
517
519
|
this.instantiationService.createInstance(ReplOutputElementRenderer, linkDetector),
|
|
518
520
|
( (new ReplEvaluationInputsRenderer())),
|
|
519
521
|
this.instantiationService.createInstance(ReplGroupRenderer, linkDetector),
|
|
520
|
-
( (new ReplEvaluationResultsRenderer(linkDetector))),
|
|
521
|
-
( (new ReplRawObjectsRenderer(linkDetector))),
|
|
522
|
+
( (new ReplEvaluationResultsRenderer(linkDetector, this.hoverService))),
|
|
523
|
+
( (new ReplRawObjectsRenderer(linkDetector, this.hoverService))),
|
|
522
524
|
],
|
|
523
525
|
(
|
|
524
526
|
(new ReplDataSource())), {
|
|
@@ -531,9 +533,7 @@ let Repl = class Repl extends FilterViewPane {
|
|
|
531
533
|
horizontalScrolling: !wordWrap,
|
|
532
534
|
setRowLineHeight: false,
|
|
533
535
|
supportDynamicHeights: wordWrap,
|
|
534
|
-
overrideStyles:
|
|
535
|
-
listBackground: this.getBackgroundColor()
|
|
536
|
-
}
|
|
536
|
+
overrideStyles: this.getLocationBasedColors().listOverrideStyles
|
|
537
537
|
});
|
|
538
538
|
this._register(tree.onDidChangeContentHeight(() => {
|
|
539
539
|
if (tree.scrollHeight !== this.previousTreeScrollHeight) {
|
|
@@ -684,9 +684,10 @@ Repl = Repl_1 = ( (__decorate([
|
|
|
684
684
|
( (__param(13, IKeybindingService))),
|
|
685
685
|
( (__param(14, IOpenerService))),
|
|
686
686
|
( (__param(15, ITelemetryService))),
|
|
687
|
-
( (__param(16,
|
|
688
|
-
( (__param(17,
|
|
689
|
-
( (__param(18,
|
|
687
|
+
( (__param(16, IHoverService))),
|
|
688
|
+
( (__param(17, IMenuService))),
|
|
689
|
+
( (__param(18, ILanguageFeaturesService))),
|
|
690
|
+
( (__param(19, ILogService)))
|
|
690
691
|
], Repl)));
|
|
691
692
|
let ReplOptions = class ReplOptions extends Disposable {
|
|
692
693
|
static { ReplOptions_1 = this; }
|
|
@@ -845,6 +846,9 @@ registerAction2(class extends ViewAction {
|
|
|
845
846
|
id: 'workbench.debug.panel.action.clearReplAction',
|
|
846
847
|
viewId: REPL_VIEW_ID,
|
|
847
848
|
title: ( localize2WithPath(_moduleId, 8, 'Clear Console')),
|
|
849
|
+
metadata: {
|
|
850
|
+
description: ( localize2WithPath(_moduleId, 9, 'Clears all program output from your debug REPL'))
|
|
851
|
+
},
|
|
848
852
|
f1: true,
|
|
849
853
|
icon: debugConsoleClearAll,
|
|
850
854
|
menu: [{
|
|
@@ -869,7 +873,7 @@ registerAction2(class extends ViewAction {
|
|
|
869
873
|
constructor() {
|
|
870
874
|
super({
|
|
871
875
|
id: 'debug.collapseRepl',
|
|
872
|
-
title: ( localizeWithPath(_moduleId,
|
|
876
|
+
title: ( localizeWithPath(_moduleId, 10, "Collapse All")),
|
|
873
877
|
viewId: REPL_VIEW_ID,
|
|
874
878
|
menu: {
|
|
875
879
|
id: MenuId.DebugConsoleContext,
|
|
@@ -887,7 +891,7 @@ registerAction2(class extends ViewAction {
|
|
|
887
891
|
constructor() {
|
|
888
892
|
super({
|
|
889
893
|
id: 'debug.replPaste',
|
|
890
|
-
title: ( localizeWithPath(_moduleId,
|
|
894
|
+
title: ( localizeWithPath(_moduleId, 11, "Paste")),
|
|
891
895
|
viewId: REPL_VIEW_ID,
|
|
892
896
|
precondition: ( (CONTEXT_DEBUG_STATE.notEqualsTo(getStateLabel(0 )))),
|
|
893
897
|
menu: {
|
|
@@ -917,7 +921,7 @@ registerAction2(class extends ViewAction {
|
|
|
917
921
|
constructor() {
|
|
918
922
|
super({
|
|
919
923
|
id: 'workbench.debug.action.copyAll',
|
|
920
|
-
title: ( localizeWithPath(_moduleId,
|
|
924
|
+
title: ( localizeWithPath(_moduleId, 12, "Copy All")),
|
|
921
925
|
viewId: REPL_VIEW_ID,
|
|
922
926
|
menu: {
|
|
923
927
|
id: MenuId.DebugConsoleContext,
|
|
@@ -935,7 +939,7 @@ registerAction2(class extends Action2 {
|
|
|
935
939
|
constructor() {
|
|
936
940
|
super({
|
|
937
941
|
id: 'debug.replCopy',
|
|
938
|
-
title: ( localizeWithPath(_moduleId,
|
|
942
|
+
title: ( localizeWithPath(_moduleId, 13, "Copy")),
|
|
939
943
|
menu: {
|
|
940
944
|
id: MenuId.DebugConsoleContext,
|
|
941
945
|
group: '2_cutcopypaste',
|
|
@@ -14,7 +14,10 @@ class ReplFilter {
|
|
|
14
14
|
if (query && query !== '') {
|
|
15
15
|
const filters = ( splitGlobAware(query, ',').map(s => s.trim())).filter(s => !!s.length);
|
|
16
16
|
for (const f of filters) {
|
|
17
|
-
if (f.startsWith('
|
|
17
|
+
if (f.startsWith('\\')) {
|
|
18
|
+
this._parsedQueries.push({ type: 'include', query: f.slice(1) });
|
|
19
|
+
}
|
|
20
|
+
else if (f.startsWith('!')) {
|
|
18
21
|
this._parsedQueries.push({ type: 'exclude', query: f.slice(1) });
|
|
19
22
|
}
|
|
20
23
|
else {
|
|
@@ -20,8 +20,9 @@ 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.service';
|
|
23
|
-
import { setupCustomHover } from 'vscode/vscode/vs/base/browser/ui/hover/updatableHoverWidget';
|
|
24
23
|
import { getDefaultHoverDelegate } from 'vscode/vscode/vs/base/browser/ui/hover/hoverDelegateFactory';
|
|
24
|
+
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
25
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
25
26
|
|
|
26
27
|
var ReplGroupRenderer_1, ReplOutputElementRenderer_1, ReplVariablesRenderer_1;
|
|
27
28
|
const _moduleId = "vs/workbench/contrib/debug/browser/replViewer";
|
|
@@ -76,8 +77,9 @@ class ReplEvaluationResultsRenderer {
|
|
|
76
77
|
get templateId() {
|
|
77
78
|
return ReplEvaluationResultsRenderer.ID;
|
|
78
79
|
}
|
|
79
|
-
constructor(linkDetector) {
|
|
80
|
+
constructor(linkDetector, hoverService) {
|
|
80
81
|
this.linkDetector = linkDetector;
|
|
82
|
+
this.hoverService = hoverService;
|
|
81
83
|
}
|
|
82
84
|
renderTemplate(container) {
|
|
83
85
|
const output = append(container, $('.evaluation-result.expression'));
|
|
@@ -87,10 +89,9 @@ class ReplEvaluationResultsRenderer {
|
|
|
87
89
|
renderElement(element, index, templateData) {
|
|
88
90
|
const expression = element.element;
|
|
89
91
|
renderExpressionValue(expression, templateData.value, {
|
|
90
|
-
showHover: false,
|
|
91
92
|
colorize: true,
|
|
92
93
|
linkDetector: this.linkDetector
|
|
93
|
-
});
|
|
94
|
+
}, this.hoverService);
|
|
94
95
|
}
|
|
95
96
|
disposeTemplate(templateData) {
|
|
96
97
|
}
|
|
@@ -98,9 +99,10 @@ class ReplEvaluationResultsRenderer {
|
|
|
98
99
|
let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
99
100
|
static { ReplOutputElementRenderer_1 = this; }
|
|
100
101
|
static { this.ID = 'outputReplElement'; }
|
|
101
|
-
constructor(linkDetector, editorService, labelService, themeService) {
|
|
102
|
+
constructor(linkDetector, editorService, hoverService, labelService, themeService) {
|
|
102
103
|
this.linkDetector = linkDetector;
|
|
103
104
|
this.editorService = editorService;
|
|
105
|
+
this.hoverService = hoverService;
|
|
104
106
|
this.labelService = labelService;
|
|
105
107
|
this.themeService = themeService;
|
|
106
108
|
}
|
|
@@ -140,7 +142,7 @@ let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
|
140
142
|
templateData.value.appendChild(handleANSIOutput(element.value, this.linkDetector, this.themeService, element.session.root));
|
|
141
143
|
templateData.value.classList.add((element.severity === Severity$1.Warning) ? 'warn' : (element.severity === Severity$1.Error) ? 'error' : (element.severity === Severity$1.Ignore) ? 'ignore' : 'info');
|
|
142
144
|
templateData.source.textContent = element.sourceData ? `${basename(element.sourceData.source.name)}:${element.sourceData.lineNumber}` : '';
|
|
143
|
-
templateData.toDispose.push(
|
|
145
|
+
templateData.toDispose.push(this.hoverService.setupUpdatableHover(getDefaultHoverDelegate('mouse'), templateData.source, element.sourceData ? `${this.labelService.getUriLabel(element.sourceData.source.uri)}:${element.sourceData.lineNumber}` : ''));
|
|
144
146
|
templateData.getReplElementSource = () => element.sourceData;
|
|
145
147
|
}
|
|
146
148
|
setElementCount(element, templateData) {
|
|
@@ -161,8 +163,9 @@ let ReplOutputElementRenderer = class ReplOutputElementRenderer {
|
|
|
161
163
|
};
|
|
162
164
|
ReplOutputElementRenderer = ReplOutputElementRenderer_1 = ( (__decorate([
|
|
163
165
|
( (__param(1, IEditorService))),
|
|
164
|
-
( (__param(2,
|
|
165
|
-
( (__param(3,
|
|
166
|
+
( (__param(2, IHoverService))),
|
|
167
|
+
( (__param(3, ILabelService))),
|
|
168
|
+
( (__param(4, IThemeService)))
|
|
166
169
|
], ReplOutputElementRenderer)));
|
|
167
170
|
let ReplVariablesRenderer = class ReplVariablesRenderer extends AbstractExpressionsRenderer {
|
|
168
171
|
static { ReplVariablesRenderer_1 = this; }
|
|
@@ -170,9 +173,10 @@ let ReplVariablesRenderer = class ReplVariablesRenderer extends AbstractExpressi
|
|
|
170
173
|
get templateId() {
|
|
171
174
|
return ReplVariablesRenderer_1.ID;
|
|
172
175
|
}
|
|
173
|
-
constructor(linkDetector, debugService, contextViewService) {
|
|
174
|
-
super(debugService, contextViewService);
|
|
176
|
+
constructor(linkDetector, debugService, contextViewService, commandService, hoverService) {
|
|
177
|
+
super(debugService, contextViewService, hoverService);
|
|
175
178
|
this.linkDetector = linkDetector;
|
|
179
|
+
this.commandService = commandService;
|
|
176
180
|
}
|
|
177
181
|
renderElement(node, _index, data) {
|
|
178
182
|
const element = node.element;
|
|
@@ -182,11 +186,11 @@ let ReplVariablesRenderer = class ReplVariablesRenderer extends AbstractExpressi
|
|
|
182
186
|
const isReplVariable = expression instanceof ReplVariableElement;
|
|
183
187
|
if (isReplVariable || !expression.name) {
|
|
184
188
|
data.label.set('');
|
|
185
|
-
renderExpressionValue(isReplVariable ? expression.expression : expression, data.value, {
|
|
189
|
+
renderExpressionValue(isReplVariable ? expression.expression : expression, data.value, { colorize: true, linkDetector: this.linkDetector }, this.hoverService);
|
|
186
190
|
data.expression.classList.remove('nested-variable');
|
|
187
191
|
}
|
|
188
192
|
else {
|
|
189
|
-
renderVariable(expression, data, true, highlights, this.linkDetector);
|
|
193
|
+
renderVariable(data.elementDisposable, this.commandService, this.hoverService, expression, data, true, highlights, this.linkDetector);
|
|
190
194
|
data.expression.classList.toggle('nested-variable', isNestedVariable(expression));
|
|
191
195
|
}
|
|
192
196
|
}
|
|
@@ -196,12 +200,15 @@ let ReplVariablesRenderer = class ReplVariablesRenderer extends AbstractExpressi
|
|
|
196
200
|
};
|
|
197
201
|
ReplVariablesRenderer = ReplVariablesRenderer_1 = ( (__decorate([
|
|
198
202
|
( (__param(1, IDebugService))),
|
|
199
|
-
( (__param(2, IContextViewService)))
|
|
203
|
+
( (__param(2, IContextViewService))),
|
|
204
|
+
( (__param(3, ICommandService))),
|
|
205
|
+
( (__param(4, IHoverService)))
|
|
200
206
|
], ReplVariablesRenderer)));
|
|
201
207
|
class ReplRawObjectsRenderer {
|
|
202
208
|
static { this.ID = 'rawObject'; }
|
|
203
|
-
constructor(linkDetector) {
|
|
209
|
+
constructor(linkDetector, hoverService) {
|
|
204
210
|
this.linkDetector = linkDetector;
|
|
211
|
+
this.hoverService = hoverService;
|
|
205
212
|
}
|
|
206
213
|
get templateId() {
|
|
207
214
|
return ReplRawObjectsRenderer.ID;
|
|
@@ -224,9 +231,8 @@ class ReplRawObjectsRenderer {
|
|
|
224
231
|
templateData.name.textContent = '';
|
|
225
232
|
}
|
|
226
233
|
renderExpressionValue(element.value, templateData.value, {
|
|
227
|
-
showHover: false,
|
|
228
234
|
linkDetector: this.linkDetector
|
|
229
|
-
});
|
|
235
|
+
}, this.hoverService);
|
|
230
236
|
}
|
|
231
237
|
disposeTemplate(templateData) {
|
|
232
238
|
templateData.label.dispose();
|
|
@@ -15,10 +15,12 @@ import { MenuId, registerAction2 } from 'vscode/vscode/vs/platform/actions/commo
|
|
|
15
15
|
import { IMenuService } from 'vscode/vscode/vs/platform/actions/common/actions.service';
|
|
16
16
|
import { IClipboardService } from 'vscode/vscode/vs/platform/clipboard/common/clipboardService.service';
|
|
17
17
|
import { CommandsRegistry } from 'vscode/vscode/vs/platform/commands/common/commands';
|
|
18
|
+
import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
|
|
18
19
|
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
19
20
|
import { ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
20
21
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
21
22
|
import { IContextMenuService, IContextViewService } from 'vscode/vscode/vs/platform/contextview/browser/contextView.service';
|
|
23
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
22
24
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
23
25
|
import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
24
26
|
import { WorkbenchAsyncDataTree } from 'vscode/vscode/vs/platform/list/browser/listService';
|
|
@@ -29,6 +31,7 @@ import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeServi
|
|
|
29
31
|
import { ViewPane, ViewAction } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
|
|
30
32
|
import { IViewDescriptorService } from 'vscode/vscode/vs/workbench/common/views.service';
|
|
31
33
|
import { renderViewTree, AbstractExpressionDataSource, AbstractExpressionsRenderer, renderExpressionValue, renderVariable } from 'vscode/vscode/vs/workbench/contrib/debug/browser/baseDebugView';
|
|
34
|
+
import { COPY_VALUE_LABEL, COPY_VALUE_ID, COPY_EVALUATE_PATH_LABEL, COPY_EVALUATE_PATH_ID, ADD_TO_WATCH_LABEL, ADD_TO_WATCH_ID } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugCommands';
|
|
32
35
|
import { LinkDetector } from './linkDetector.js';
|
|
33
36
|
import { CONTEXT_VARIABLES_FOCUSED, CONTEXT_BREAK_WHEN_VALUE_CHANGES_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_IS_ACCESSED_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_IS_READ_SUPPORTED, VARIABLES_VIEW_ID } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
|
|
34
37
|
import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug.service';
|
|
@@ -47,8 +50,8 @@ let forgetScopes = true;
|
|
|
47
50
|
let variableInternalContext;
|
|
48
51
|
let dataBreakpointInfoResponse;
|
|
49
52
|
let VariablesView = class VariablesView extends ViewPane {
|
|
50
|
-
constructor(options, contextMenuService, debugService, keybindingService, configurationService, instantiationService, viewDescriptorService, contextKeyService, openerService, themeService, telemetryService, menuService) {
|
|
51
|
-
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
53
|
+
constructor(options, contextMenuService, debugService, keybindingService, configurationService, instantiationService, viewDescriptorService, contextKeyService, openerService, themeService, telemetryService, hoverService, menuService) {
|
|
54
|
+
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
|
52
55
|
this.debugService = debugService;
|
|
53
56
|
this.menuService = menuService;
|
|
54
57
|
this.needsRefresh = false;
|
|
@@ -90,9 +93,7 @@ let VariablesView = class VariablesView extends ViewPane {
|
|
|
90
93
|
accessibilityProvider: ( (new VariablesAccessibilityProvider())),
|
|
91
94
|
identityProvider: { getId: (element) => element.getId() },
|
|
92
95
|
keyboardNavigationLabelProvider: { getKeyboardNavigationLabel: (e) => e.name },
|
|
93
|
-
overrideStyles:
|
|
94
|
-
listBackground: this.getBackgroundColor()
|
|
95
|
-
}
|
|
96
|
+
overrideStyles: this.getLocationBasedColors().listOverrideStyles
|
|
96
97
|
});
|
|
97
98
|
this._register(VisualizedVariableRenderer.rendererOnVisualizationRange(this.debugService.getViewModel(), this.tree));
|
|
98
99
|
this.tree.setInput(this.debugService.getViewModel().focusedStackFrame ?? null);
|
|
@@ -192,7 +193,8 @@ VariablesView = ( (__decorate([
|
|
|
192
193
|
( (__param(8, IOpenerService))),
|
|
193
194
|
( (__param(9, IThemeService))),
|
|
194
195
|
( (__param(10, ITelemetryService))),
|
|
195
|
-
( (__param(11,
|
|
196
|
+
( (__param(11, IHoverService))),
|
|
197
|
+
( (__param(12, IMenuService)))
|
|
196
198
|
], VariablesView)));
|
|
197
199
|
async function openContextMenuForVariableTreeElement(parentContextKeyService, menuService, contextMenuService, menuId, e) {
|
|
198
200
|
const variable = e.element;
|
|
@@ -337,8 +339,8 @@ let VisualizedVariableRenderer = class VisualizedVariableRenderer extends Abstra
|
|
|
337
339
|
tree.updateChildren(parent, false, false);
|
|
338
340
|
});
|
|
339
341
|
}
|
|
340
|
-
constructor(linkDetector, debugService, contextViewService, menuService, contextKeyService) {
|
|
341
|
-
super(debugService, contextViewService);
|
|
342
|
+
constructor(linkDetector, debugService, contextViewService, hoverService, menuService, contextKeyService) {
|
|
343
|
+
super(debugService, contextViewService, hoverService);
|
|
342
344
|
this.linkDetector = linkDetector;
|
|
343
345
|
this.menuService = menuService;
|
|
344
346
|
this.contextKeyService = contextKeyService;
|
|
@@ -359,10 +361,10 @@ let VisualizedVariableRenderer = class VisualizedVariableRenderer extends Abstra
|
|
|
359
361
|
renderExpressionValue(viz, data.value, {
|
|
360
362
|
showChanged: false,
|
|
361
363
|
maxValueLength: 1024,
|
|
362
|
-
|
|
364
|
+
hover: data.elementDisposable,
|
|
363
365
|
colorize: true,
|
|
364
366
|
linkDetector: this.linkDetector
|
|
365
|
-
});
|
|
367
|
+
}, this.hoverService);
|
|
366
368
|
}
|
|
367
369
|
getInputBoxOptions(expression) {
|
|
368
370
|
const viz = expression;
|
|
@@ -404,25 +406,27 @@ let VisualizedVariableRenderer = class VisualizedVariableRenderer extends Abstra
|
|
|
404
406
|
VisualizedVariableRenderer = VisualizedVariableRenderer_1 = ( (__decorate([
|
|
405
407
|
( (__param(1, IDebugService))),
|
|
406
408
|
( (__param(2, IContextViewService))),
|
|
407
|
-
( (__param(3,
|
|
408
|
-
( (__param(4,
|
|
409
|
+
( (__param(3, IHoverService))),
|
|
410
|
+
( (__param(4, IMenuService))),
|
|
411
|
+
( (__param(5, IContextKeyService)))
|
|
409
412
|
], VisualizedVariableRenderer)));
|
|
410
413
|
let VariablesRenderer = class VariablesRenderer extends AbstractExpressionsRenderer {
|
|
411
414
|
static { VariablesRenderer_1 = this; }
|
|
412
415
|
static { this.ID = 'variable'; }
|
|
413
|
-
constructor(linkDetector, menuService, contextKeyService, visualization, contextMenuService, debugService, contextViewService) {
|
|
414
|
-
super(debugService, contextViewService);
|
|
416
|
+
constructor(linkDetector, menuService, contextKeyService, visualization, contextMenuService, commandService, debugService, contextViewService, hoverService) {
|
|
417
|
+
super(debugService, contextViewService, hoverService);
|
|
415
418
|
this.linkDetector = linkDetector;
|
|
416
419
|
this.menuService = menuService;
|
|
417
420
|
this.contextKeyService = contextKeyService;
|
|
418
421
|
this.visualization = visualization;
|
|
419
422
|
this.contextMenuService = contextMenuService;
|
|
423
|
+
this.commandService = commandService;
|
|
420
424
|
}
|
|
421
425
|
get templateId() {
|
|
422
426
|
return VariablesRenderer_1.ID;
|
|
423
427
|
}
|
|
424
428
|
renderExpression(expression, data, highlights) {
|
|
425
|
-
renderVariable(expression, data, true, highlights, this.linkDetector);
|
|
429
|
+
renderVariable(data.elementDisposable, this.commandService, this.hoverService, expression, data, true, highlights, this.linkDetector);
|
|
426
430
|
}
|
|
427
431
|
renderElement(node, index, data) {
|
|
428
432
|
super.renderExpressionElement(node.element, node, data);
|
|
@@ -508,8 +512,10 @@ VariablesRenderer = VariablesRenderer_1 = ( (__decorate([
|
|
|
508
512
|
( (__param(2, IContextKeyService))),
|
|
509
513
|
( (__param(3, IDebugVisualizerService))),
|
|
510
514
|
( (__param(4, IContextMenuService))),
|
|
511
|
-
( (__param(5,
|
|
512
|
-
( (__param(6,
|
|
515
|
+
( (__param(5, ICommandService))),
|
|
516
|
+
( (__param(6, IDebugService))),
|
|
517
|
+
( (__param(7, IContextViewService))),
|
|
518
|
+
( (__param(8, IHoverService)))
|
|
513
519
|
], VariablesRenderer)));
|
|
514
520
|
class VariablesAccessibilityProvider {
|
|
515
521
|
getWidgetAriaLabel() {
|
|
@@ -533,8 +539,10 @@ CommandsRegistry.registerCommand({
|
|
|
533
539
|
debugService.getViewModel().setSelectedExpression(variableInternalContext, false);
|
|
534
540
|
}
|
|
535
541
|
});
|
|
536
|
-
const COPY_VALUE_ID = 'workbench.debug.viewlet.action.copyValue';
|
|
537
542
|
CommandsRegistry.registerCommand({
|
|
543
|
+
metadata: {
|
|
544
|
+
description: COPY_VALUE_LABEL,
|
|
545
|
+
},
|
|
538
546
|
id: COPY_VALUE_ID,
|
|
539
547
|
handler: async (accessor, arg, ctx) => {
|
|
540
548
|
const debugService = accessor.get(IDebugService);
|
|
@@ -661,16 +669,20 @@ CommandsRegistry.registerCommand({
|
|
|
661
669
|
}
|
|
662
670
|
}
|
|
663
671
|
});
|
|
664
|
-
const COPY_EVALUATE_PATH_ID = 'debug.copyEvaluatePath';
|
|
665
672
|
CommandsRegistry.registerCommand({
|
|
673
|
+
metadata: {
|
|
674
|
+
description: COPY_EVALUATE_PATH_LABEL,
|
|
675
|
+
},
|
|
666
676
|
id: COPY_EVALUATE_PATH_ID,
|
|
667
677
|
handler: async (accessor, context) => {
|
|
668
678
|
const clipboardService = accessor.get(IClipboardService);
|
|
669
679
|
await clipboardService.writeText(context.variable.evaluateName);
|
|
670
680
|
}
|
|
671
681
|
});
|
|
672
|
-
const ADD_TO_WATCH_ID = 'debug.addToWatchExpressions';
|
|
673
682
|
CommandsRegistry.registerCommand({
|
|
683
|
+
metadata: {
|
|
684
|
+
description: ADD_TO_WATCH_LABEL,
|
|
685
|
+
},
|
|
674
686
|
id: ADD_TO_WATCH_ID,
|
|
675
687
|
handler: async (accessor, context) => {
|
|
676
688
|
const debugService = accessor.get(IDebugService);
|
|
@@ -697,4 +709,4 @@ registerAction2(class extends ViewAction {
|
|
|
697
709
|
}
|
|
698
710
|
});
|
|
699
711
|
|
|
700
|
-
export {
|
|
712
|
+
export { BREAK_WHEN_VALUE_CHANGES_ID, BREAK_WHEN_VALUE_IS_ACCESSED_ID, BREAK_WHEN_VALUE_IS_READ_ID, SET_VARIABLE_ID, VIEW_MEMORY_ID, VariablesRenderer, VariablesView, VisualizedVariableRenderer, openContextMenuForVariableTreeElement };
|
|
@@ -10,6 +10,7 @@ import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/c
|
|
|
10
10
|
import { ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/contextkey';
|
|
11
11
|
import { IContextKeyService } from 'vscode/vscode/vs/platform/contextkey/common/contextkey.service';
|
|
12
12
|
import { IContextMenuService, IContextViewService } from 'vscode/vscode/vs/platform/contextview/browser/contextView.service';
|
|
13
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
13
14
|
import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
|
|
14
15
|
import { IKeybindingService } from 'vscode/vscode/vs/platform/keybinding/common/keybinding.service';
|
|
15
16
|
import { WorkbenchAsyncDataTree } from 'vscode/vscode/vs/platform/list/browser/listService';
|
|
@@ -32,8 +33,8 @@ const MAX_VALUE_RENDER_LENGTH_IN_VIEWLET = 1024;
|
|
|
32
33
|
let ignoreViewUpdates = false;
|
|
33
34
|
let useCachedEvaluation = false;
|
|
34
35
|
let WatchExpressionsView = class WatchExpressionsView extends ViewPane {
|
|
35
|
-
constructor(options, contextMenuService, debugService, keybindingService, instantiationService, viewDescriptorService, configurationService, contextKeyService, openerService, themeService, telemetryService, menuService) {
|
|
36
|
-
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
36
|
+
constructor(options, contextMenuService, debugService, keybindingService, instantiationService, viewDescriptorService, configurationService, contextKeyService, openerService, themeService, telemetryService, hoverService, menuService) {
|
|
37
|
+
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
|
37
38
|
this.debugService = debugService;
|
|
38
39
|
this.needsRefresh = false;
|
|
39
40
|
this.menu = menuService.createMenu(MenuId.DebugWatchContext, contextKeyService);
|
|
@@ -70,9 +71,7 @@ let WatchExpressionsView = class WatchExpressionsView extends ViewPane {
|
|
|
70
71
|
}
|
|
71
72
|
},
|
|
72
73
|
dnd: ( (new WatchExpressionsDragAndDrop(this.debugService))),
|
|
73
|
-
overrideStyles:
|
|
74
|
-
listBackground: this.getBackgroundColor()
|
|
75
|
-
}
|
|
74
|
+
overrideStyles: this.getLocationBasedColors().listOverrideStyles
|
|
76
75
|
});
|
|
77
76
|
this.tree.setInput(this.debugService);
|
|
78
77
|
CONTEXT_WATCH_EXPRESSIONS_FOCUSED.bindTo(this.tree.contextKeyService);
|
|
@@ -188,7 +187,8 @@ WatchExpressionsView = ( (__decorate([
|
|
|
188
187
|
( (__param(8, IOpenerService))),
|
|
189
188
|
( (__param(9, IThemeService))),
|
|
190
189
|
( (__param(10, ITelemetryService))),
|
|
191
|
-
( (__param(11,
|
|
190
|
+
( (__param(11, IHoverService))),
|
|
191
|
+
( (__param(12, IMenuService)))
|
|
192
192
|
], WatchExpressionsView)));
|
|
193
193
|
class WatchExpressionsDelegate {
|
|
194
194
|
getHeight(_element) {
|
|
@@ -226,8 +226,8 @@ class WatchExpressionsDataSource extends AbstractExpressionDataSource {
|
|
|
226
226
|
let WatchExpressionsRenderer = class WatchExpressionsRenderer extends AbstractExpressionsRenderer {
|
|
227
227
|
static { WatchExpressionsRenderer_1 = this; }
|
|
228
228
|
static { this.ID = 'watchexpression'; }
|
|
229
|
-
constructor(menuService, contextKeyService, debugService, contextViewService) {
|
|
230
|
-
super(debugService, contextViewService);
|
|
229
|
+
constructor(menuService, contextKeyService, debugService, contextViewService, hoverService) {
|
|
230
|
+
super(debugService, contextViewService, hoverService);
|
|
231
231
|
this.menuService = menuService;
|
|
232
232
|
this.contextKeyService = contextKeyService;
|
|
233
233
|
}
|
|
@@ -252,9 +252,9 @@ let WatchExpressionsRenderer = class WatchExpressionsRenderer extends AbstractEx
|
|
|
252
252
|
renderExpressionValue(expression, data.value, {
|
|
253
253
|
showChanged: true,
|
|
254
254
|
maxValueLength: MAX_VALUE_RENDER_LENGTH_IN_VIEWLET,
|
|
255
|
-
|
|
255
|
+
hover: data.elementDisposable,
|
|
256
256
|
colorize: true
|
|
257
|
-
});
|
|
257
|
+
}, this.hoverService);
|
|
258
258
|
}
|
|
259
259
|
getInputBoxOptions(expression, settingValue) {
|
|
260
260
|
if (settingValue) {
|
|
@@ -304,7 +304,8 @@ WatchExpressionsRenderer = WatchExpressionsRenderer_1 = ( (__decorate([
|
|
|
304
304
|
( (__param(0, IMenuService))),
|
|
305
305
|
( (__param(1, IContextKeyService))),
|
|
306
306
|
( (__param(2, IDebugService))),
|
|
307
|
-
( (__param(3, IContextViewService)))
|
|
307
|
+
( (__param(3, IContextViewService))),
|
|
308
|
+
( (__param(4, IHoverService)))
|
|
308
309
|
], WatchExpressionsRenderer)));
|
|
309
310
|
function getContextForWatchExpressionMenu(parentContext, expression) {
|
|
310
311
|
return parentContext.createOverlay([
|
|
@@ -22,7 +22,8 @@ import { isDiffEditor, isCodeEditor } from 'vscode/vscode/vs/editor/browser/edit
|
|
|
22
22
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|
|
23
23
|
import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry.service';
|
|
24
24
|
import { DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
|
|
25
|
-
import { DEBUG_START_COMMAND_ID, SELECT_AND_START_ID, DEBUG_CONFIGURE_COMMAND_ID } from '
|
|
25
|
+
import { DEBUG_START_COMMAND_ID, SELECT_AND_START_ID, DEBUG_CONFIGURE_COMMAND_ID } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugCommands';
|
|
26
|
+
import { IHoverService } from 'vscode/vscode/vs/platform/hover/browser/hover.service';
|
|
26
27
|
|
|
27
28
|
const _moduleId = "vs/workbench/contrib/debug/browser/welcomeView";
|
|
28
29
|
const debugStartLanguageKey = 'debugStartLanguage';
|
|
@@ -31,8 +32,8 @@ const CONTEXT_DEBUGGER_INTERESTED_IN_ACTIVE_EDITOR = ( (new RawContextKey('debug
|
|
|
31
32
|
let WelcomeView = class WelcomeView extends ViewPane {
|
|
32
33
|
static { this.ID = 'workbench.debug.welcome'; }
|
|
33
34
|
static { this.LABEL = ( localize2WithPath(_moduleId, 0, "Run")); }
|
|
34
|
-
constructor(options, themeService, keybindingService, contextMenuService, configurationService, contextKeyService, debugService, editorService, instantiationService, viewDescriptorService, openerService, storageSevice, telemetryService) {
|
|
35
|
-
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
|
|
35
|
+
constructor(options, themeService, keybindingService, contextMenuService, configurationService, contextKeyService, debugService, editorService, instantiationService, viewDescriptorService, openerService, storageSevice, telemetryService, hoverService) {
|
|
36
|
+
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService, hoverService);
|
|
36
37
|
this.debugService = debugService;
|
|
37
38
|
this.editorService = editorService;
|
|
38
39
|
this.debugStartLanguageContext = CONTEXT_DEBUG_START_LANGUAGE.bindTo(contextKeyService);
|
|
@@ -95,7 +96,8 @@ WelcomeView = ( (__decorate([
|
|
|
95
96
|
( (__param(9, IViewDescriptorService))),
|
|
96
97
|
( (__param(10, IOpenerService))),
|
|
97
98
|
( (__param(11, IStorageService))),
|
|
98
|
-
( (__param(12, ITelemetryService)))
|
|
99
|
+
( (__param(12, ITelemetryService))),
|
|
100
|
+
( (__param(13, IHoverService)))
|
|
99
101
|
], WelcomeView)));
|
|
100
102
|
const viewsRegistry = ( (Registry.as(Extensions.ViewsRegistry)));
|
|
101
103
|
viewsRegistry.registerViewWelcomeContent(WelcomeView.ID, {
|
|
@@ -5,6 +5,7 @@ import 'vscode/vscode/vs/base/common/observableInternal/derived';
|
|
|
5
5
|
import 'vscode/vscode/vs/base/common/observableInternal/autorun';
|
|
6
6
|
import 'vscode/vscode/vs/base/common/observableInternal/utils';
|
|
7
7
|
import 'vscode/vscode/vs/base/common/cancellation';
|
|
8
|
+
import 'vscode/vscode/vs/base/common/arrays';
|
|
8
9
|
import { URI } from 'vscode/vscode/vs/base/common/uri';
|
|
9
10
|
import { ILogService } from 'vscode/vscode/vs/platform/log/common/log.service';
|
|
10
11
|
import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
|