@codingame/monaco-vscode-debug-service-override 4.5.2 → 5.0.1

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.
Files changed (27) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +42 -34
  3. package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +93 -93
  4. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +7 -5
  5. package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +1 -1
  6. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +12 -9
  7. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +1 -1
  8. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +6 -3
  9. package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +3 -3
  11. package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +1 -1
  13. package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +16 -12
  14. package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +12 -5
  15. package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +6 -6
  16. package/vscode/src/vs/workbench/contrib/debug/browser/media/debug.contribution.css.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css.js +1 -1
  18. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +20 -16
  19. package/vscode/src/vs/workbench/contrib/debug/browser/replFilter.js +4 -1
  20. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +22 -16
  21. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +33 -21
  22. package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +12 -11
  23. package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +6 -4
  24. package/vscode/src/vs/workbench/contrib/debug/common/debugStorage.js +1 -0
  25. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +0 -963
  26. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +0 -103
  27. 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.getBackgroundColor()));
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, IMenuService))),
688
- ( (__param(17, ILanguageFeaturesService))),
689
- ( (__param(18, ILogService)))
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, 9, "Collapse All")),
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, 10, "Paste")),
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, 11, "Copy All")),
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, 12, "Copy")),
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(setupCustomHover(getDefaultHoverDelegate('mouse'), templateData.source, element.sourceData ? `${this.labelService.getUriLabel(element.sourceData.source.uri)}:${element.sourceData.lineNumber}` : ''));
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, ILabelService))),
165
- ( (__param(3, IThemeService)))
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, { showHover: false, colorize: true, linkDetector: this.linkDetector });
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, IMenuService)))
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
- showHover: true,
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, IMenuService))),
408
- ( (__param(4, IContextKeyService)))
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, IDebugService))),
512
- ( (__param(6, IContextViewService)))
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 { ADD_TO_WATCH_ID, BREAK_WHEN_VALUE_CHANGES_ID, BREAK_WHEN_VALUE_IS_ACCESSED_ID, BREAK_WHEN_VALUE_IS_READ_ID, COPY_EVALUATE_PATH_ID, COPY_VALUE_ID, SET_VARIABLE_ID, VIEW_MEMORY_ID, VariablesRenderer, VariablesView, VisualizedVariableRenderer, openContextMenuForVariableTreeElement };
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, IMenuService)))
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
- showHover: true,
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 './debugCommands.js';
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';