@codingame/monaco-vscode-debug-service-override 8.0.4 → 9.0.2

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 (37) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +16 -16
  3. package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +107 -107
  4. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +6 -6
  5. package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +49 -16
  6. package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +19 -8
  7. package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +1 -1
  8. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +37 -27
  9. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +5 -5
  10. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +15 -13
  11. package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +8 -8
  12. package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +21 -21
  13. package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +53 -42
  14. package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +3 -3
  15. package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +109 -82
  16. package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +3 -3
  17. package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +5 -5
  18. package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +9 -9
  19. package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +6 -6
  20. package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +7 -7
  21. package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +8 -5
  22. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +80 -30
  23. package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibilityHelp.js +12 -29
  24. package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibleView.js +7 -12
  25. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +19 -13
  26. package/vscode/src/vs/workbench/contrib/debug/browser/runAndDebugAccessibilityHelp.js +29 -18
  27. package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +4 -4
  28. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +11 -12
  29. package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +21 -20
  30. package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +7 -7
  31. package/vscode/src/vs/workbench/contrib/debug/common/debugAccessibilityAnnouncer.js +2 -1
  32. package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +3 -3
  33. package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +3 -3
  34. package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +44 -44
  35. package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +11 -11
  36. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableCommands.js +2 -2
  37. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +0 -233
@@ -1,40 +1,39 @@
1
1
  import { __decorate, __param } from 'vscode/external/tslib/tslib.es6.js';
2
- import { localize } from 'vscode/vscode/vs/nls';
2
+ import { Action } from 'vscode/vscode/vs/base/common/actions';
3
+ import { disposableTimeout } from 'vscode/vscode/vs/base/common/async';
4
+ import { CancellationTokenSource } from 'vscode/vscode/vs/base/common/cancellation';
5
+ import { createErrorWithActions } from 'vscode/vscode/vs/base/common/errorMessage';
6
+ import { Event, Emitter } from 'vscode/vscode/vs/base/common/event';
7
+ import { DisposableStore } from 'vscode/vscode/vs/base/common/lifecycle';
3
8
  import Severity$1 from 'vscode/vscode/vs/base/common/severity';
4
- import { Markers } from 'vscode/vscode/vs/workbench/contrib/markers/common/markers';
5
- import { ITaskService } from 'vscode/vscode/vs/workbench/contrib/tasks/common/taskService.service';
9
+ import { localize } from 'vscode/vscode/vs/nls';
10
+ import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
6
11
  import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
7
- import { TaskEventKind } from 'vscode/vscode/vs/workbench/contrib/tasks/common/tasks';
8
12
  import { IDialogService } from 'vscode/vscode/vs/platform/dialogs/common/dialogs.service';
9
13
  import { MarkerSeverity } from 'vscode/vscode/vs/platform/markers/common/markers';
10
14
  import { IMarkerService } from 'vscode/vscode/vs/platform/markers/common/markers.service';
11
- import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService.service';
15
+ import { ProgressLocation } from 'vscode/vscode/vs/platform/progress/common/progress';
16
+ import { IProgressService } from 'vscode/vscode/vs/platform/progress/common/progress.service';
12
17
  import { StorageScope, StorageTarget } from 'vscode/vscode/vs/platform/storage/common/storage';
13
18
  import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage.service';
14
- import { createErrorWithActions } from 'vscode/vscode/vs/base/common/errorMessage';
15
- import { Action } from 'vscode/vscode/vs/base/common/actions';
16
19
  import { DEBUG_CONFIGURE_COMMAND_ID, DEBUG_CONFIGURE_LABEL } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugCommands';
17
- import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands.service';
20
+ import { Markers } from 'vscode/vscode/vs/workbench/contrib/markers/common/markers';
21
+ import { TaskEventKind, CustomTask, ConfiguringTask } from 'vscode/vscode/vs/workbench/contrib/tasks/common/tasks';
22
+ import { ITaskService } from 'vscode/vscode/vs/workbench/contrib/tasks/common/taskService.service';
23
+ import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService.service';
18
24
 
19
- function once(match, event) {
20
- return (listener, thisArgs = null, disposables) => {
21
- const result = event(e => {
22
- if (match(e)) {
23
- result.dispose();
24
- return listener.call(thisArgs, e);
25
- }
26
- }, null, disposables);
27
- return result;
28
- };
29
- }
25
+ const onceFilter = (event, filter) => Event.once(Event.filter(event, filter));
30
26
  var TaskRunResult;
31
27
  ( ((function(TaskRunResult) {
32
28
  TaskRunResult[TaskRunResult["Failure"] = 0] = "Failure";
33
29
  TaskRunResult[TaskRunResult["Success"] = 1] = "Success";
34
30
  })(TaskRunResult || (TaskRunResult = {}))));
35
31
  const DEBUG_TASK_ERROR_CHOICE_KEY = 'debug.taskerrorchoice';
32
+ const ABORT_LABEL = ( localize(5771, "Abort"));
33
+ const DEBUG_ANYWAY_LABEL = ( localize(5772, "&&Debug Anyway"));
34
+ const DEBUG_ANYWAY_LABEL_NO_MEMO = ( localize(5773, "Debug Anyway"));
36
35
  let DebugTaskRunner = class DebugTaskRunner {
37
- constructor(taskService, markerService, configurationService, viewsService, dialogService, storageService, commandService) {
36
+ constructor(taskService, markerService, configurationService, viewsService, dialogService, storageService, commandService, progressService) {
38
37
  this.taskService = taskService;
39
38
  this.markerService = markerService;
40
39
  this.configurationService = configurationService;
@@ -42,16 +41,20 @@ let DebugTaskRunner = class DebugTaskRunner {
42
41
  this.dialogService = dialogService;
43
42
  this.storageService = storageService;
44
43
  this.commandService = commandService;
45
- this.canceled = false;
44
+ this.progressService = progressService;
45
+ this.globalCancellation = ( (new CancellationTokenSource()));
46
46
  }
47
47
  cancel() {
48
- this.canceled = true;
48
+ this.globalCancellation.dispose(true);
49
+ this.globalCancellation = ( (new CancellationTokenSource()));
50
+ }
51
+ dispose() {
52
+ this.globalCancellation.dispose(true);
49
53
  }
50
54
  async runTaskAndCheckErrors(root, taskId) {
51
55
  try {
52
- this.canceled = false;
53
- const taskSummary = await this.runTask(root, taskId);
54
- if (this.canceled || (taskSummary && taskSummary.exitCode === undefined)) {
56
+ const taskSummary = await this.runTask(root, taskId, this.globalCancellation.token);
57
+ if (taskSummary && (taskSummary.exitCode === undefined || taskSummary.cancelled)) {
55
58
  return TaskRunResult.Failure;
56
59
  }
57
60
  const errorCount = taskId ? this.markerService.read({ severities: MarkerSeverity.Error, take: 2 }).length : 0;
@@ -70,17 +73,17 @@ let DebugTaskRunner = class DebugTaskRunner {
70
73
  }
71
74
  const taskLabel = typeof taskId === 'string' ? taskId : taskId ? taskId.name : '';
72
75
  const message = errorCount > 1
73
- ? ( localize(5795, "Errors exist after running preLaunchTask '{0}'.", taskLabel))
76
+ ? ( localize(5774, "Errors exist after running preLaunchTask '{0}'.", taskLabel))
74
77
  : errorCount === 1
75
- ? ( localize(5796, "Error exists after running preLaunchTask '{0}'.", taskLabel))
78
+ ? ( localize(5775, "Error exists after running preLaunchTask '{0}'.", taskLabel))
76
79
  : taskSummary && typeof taskSummary.exitCode === 'number'
77
80
  ? ( localize(
78
- 5797,
81
+ 5776,
79
82
  "The preLaunchTask '{0}' terminated with exit code {1}.",
80
83
  taskLabel,
81
84
  taskSummary.exitCode
82
85
  ))
83
- : ( localize(5798, "The preLaunchTask '{0}' terminated.", taskLabel));
86
+ : ( localize(5777, "The preLaunchTask '{0}' terminated.", taskLabel));
84
87
  let DebugChoice;
85
88
  ( ((function(DebugChoice) {
86
89
  DebugChoice[DebugChoice["DebugAnyway"] = 1] = "DebugAnyway";
@@ -92,20 +95,20 @@ let DebugTaskRunner = class DebugTaskRunner {
92
95
  message,
93
96
  buttons: [
94
97
  {
95
- label: ( localize(5799, "&&Debug Anyway")),
98
+ label: DEBUG_ANYWAY_LABEL,
96
99
  run: () => DebugChoice.DebugAnyway
97
100
  },
98
101
  {
99
- label: ( localize(5800, "&&Show Errors")),
102
+ label: ( localize(5778, "&&Show Errors")),
100
103
  run: () => DebugChoice.ShowErrors
101
104
  }
102
105
  ],
103
106
  cancelButton: {
104
- label: ( localize(5801, "Abort")),
107
+ label: ABORT_LABEL,
105
108
  run: () => DebugChoice.Cancel
106
109
  },
107
110
  checkbox: {
108
- label: ( localize(5802, "Remember my choice in user settings")),
111
+ label: ( localize(5779, "Remember my choice in user settings")),
109
112
  }
110
113
  });
111
114
  const debugAnyway = result === DebugChoice.DebugAnyway;
@@ -141,7 +144,7 @@ let DebugTaskRunner = class DebugTaskRunner {
141
144
  message: err.message,
142
145
  buttons: [
143
146
  {
144
- label: ( localize(5799, "&&Debug Anyway")),
147
+ label: ( localize(5772, "&&Debug Anyway")),
145
148
  run: () => DebugChoice.DebugAnyway
146
149
  },
147
150
  {
@@ -153,7 +156,7 @@ let DebugTaskRunner = class DebugTaskRunner {
153
156
  run: () => DebugChoice.Cancel
154
157
  },
155
158
  checkbox: {
156
- label: ( localize(5803, "Remember my choice for this task"))
159
+ label: ( localize(5780, "Remember my choice for this task"))
157
160
  }
158
161
  });
159
162
  choice = result;
@@ -168,13 +171,13 @@ let DebugTaskRunner = class DebugTaskRunner {
168
171
  return choice === DebugChoice.DebugAnyway ? TaskRunResult.Success : TaskRunResult.Failure;
169
172
  }
170
173
  }
171
- async runTask(root, taskId) {
174
+ async runTask(root, taskId, token = this.globalCancellation.token) {
172
175
  if (!taskId) {
173
176
  return Promise.resolve(null);
174
177
  }
175
178
  if (!root) {
176
179
  return Promise.reject(( (new Error(( localize(
177
- 5804,
180
+ 5781,
178
181
  "Task '{0}' can not be referenced from a launch configuration that is in a different workspace folder.",
179
182
  typeof taskId === 'string' ? taskId : taskId.type
180
183
  ))))));
@@ -182,8 +185,8 @@ let DebugTaskRunner = class DebugTaskRunner {
182
185
  const task = await this.taskService.getTask(root, taskId);
183
186
  if (!task) {
184
187
  const errorMessage = typeof taskId === 'string'
185
- ? ( localize(5805, "Could not find the task '{0}'.", taskId))
186
- : ( localize(5806, "Could not find the specified task."));
188
+ ? ( localize(5782, "Could not find the task '{0}'.", taskId))
189
+ : ( localize(5783, "Could not find the specified task."));
187
190
  return Promise.reject(createErrorWithActions(errorMessage, [( (new Action(
188
191
  DEBUG_CONFIGURE_COMMAND_ID,
189
192
  DEBUG_CONFIGURE_LABEL,
@@ -193,18 +196,27 @@ let DebugTaskRunner = class DebugTaskRunner {
193
196
  )))]));
194
197
  }
195
198
  let taskStarted = false;
199
+ const store = ( (new DisposableStore()));
196
200
  const getTaskKey = (t) => t.getKey() ?? t.getMapKey();
197
201
  const taskKey = getTaskKey(task);
198
- const inactivePromise = ( (new Promise((c) => once(e => {
199
- return (e.kind === TaskEventKind.Inactive
200
- || (e.kind === TaskEventKind.ProcessEnded && e.exitCode === undefined))
201
- && getTaskKey(e.__task) === taskKey;
202
- }, this.taskService.onDidStateChange)(e => {
202
+ const inactivePromise = ( (new Promise(
203
+ (resolve) => store.add(onceFilter(this.taskService.onDidStateChange, e => {
204
+ return (e.kind === TaskEventKind.Inactive
205
+ || (e.kind === TaskEventKind.ProcessEnded && e.exitCode === undefined))
206
+ && getTaskKey(e.__task) === taskKey;
207
+ })(e => {
208
+ taskStarted = true;
209
+ resolve(e.kind === TaskEventKind.ProcessEnded ? { exitCode: e.exitCode } : null);
210
+ }))
211
+ )));
212
+ store.add(onceFilter(this.taskService.onDidStateChange, e => ((e.kind === TaskEventKind.Active) || (e.kind === TaskEventKind.DependsOnStarted)) && getTaskKey(e.__task) === taskKey)(() => {
203
213
  taskStarted = true;
204
- c(e.kind === TaskEventKind.ProcessEnded ? { exitCode: e.exitCode } : null);
205
- }))));
206
- const promise = this.taskService.getActiveTasks().then(async (tasks) => {
214
+ }));
215
+ const didAcquireInput = store.add(( (new Emitter())));
216
+ store.add(onceFilter(this.taskService.onDidStateChange, e => (e.kind === TaskEventKind.AcquiredInput) && getTaskKey(e.__task) === taskKey)(() => didAcquireInput.fire()));
217
+ const taskDonePromise = this.taskService.getActiveTasks().then(async (tasks) => {
207
218
  if (tasks.find(t => getTaskKey(t) === taskKey)) {
219
+ didAcquireInput.fire();
208
220
  const busyTasks = await this.taskService.getBusyTasks();
209
221
  if (busyTasks.find(t => getTaskKey(t) === taskKey)) {
210
222
  taskStarted = true;
@@ -212,47 +224,61 @@ let DebugTaskRunner = class DebugTaskRunner {
212
224
  }
213
225
  return Promise.resolve(null);
214
226
  }
215
- once(e => ((e.kind === TaskEventKind.Active) || (e.kind === TaskEventKind.DependsOnStarted)) && getTaskKey(e.__task) === taskKey, this.taskService.onDidStateChange)(() => {
216
- taskStarted = true;
217
- });
218
227
  const taskPromise = this.taskService.run(task);
219
228
  if (task.configurationProperties.isBackground) {
220
229
  return inactivePromise;
221
230
  }
222
231
  return taskPromise.then(x => x ?? null);
223
232
  });
224
- return (
225
- (new Promise((c, e) => {
226
- const waitForInput = ( (new Promise(
227
- resolve => once(e => (e.kind === TaskEventKind.AcquiredInput) && getTaskKey(e.__task) === taskKey, this.taskService.onDidStateChange)(() => {
228
- resolve();
229
- })
230
- )));
231
- promise.then(result => {
232
- taskStarted = true;
233
- c(result);
234
- }, error => e(error));
235
- waitForInput.then(() => {
236
- const waitTime = task.configurationProperties.isBackground ? 5000 : 10000;
237
- setTimeout(() => {
238
- if (!taskStarted) {
239
- const errorMessage = typeof taskId === 'string'
240
- ? ( localize(
241
- 5807,
242
- "The task '{0}' cannot be tracked. Make sure to have a problem matcher defined.",
243
- taskId
244
- ))
245
- : ( localize(
246
- 5808,
247
- "The task '{0}' cannot be tracked. Make sure to have a problem matcher defined.",
248
- JSON.stringify(taskId)
249
- ));
250
- e({ severity: Severity$1.Error, message: errorMessage });
233
+ const result = ( (new Promise((resolve, reject) => {
234
+ taskDonePromise.then(result => {
235
+ taskStarted = true;
236
+ resolve(result);
237
+ }, error => reject(error));
238
+ store.add(token.onCancellationRequested(() => {
239
+ resolve({ exitCode: undefined, cancelled: true });
240
+ this.taskService.terminate(task).catch(() => { });
241
+ }));
242
+ store.add(didAcquireInput.event(() => {
243
+ const waitTime = task.configurationProperties.isBackground ? 5000 : 10000;
244
+ store.add(disposableTimeout(() => {
245
+ if (!taskStarted) {
246
+ const errorMessage = ( localize(
247
+ 5784,
248
+ "The task '{0}' has not exited and doesn't have a 'problemMatcher' defined. Make sure to define a problem matcher for watch tasks.",
249
+ typeof taskId === 'string' ? taskId : JSON.stringify(taskId)
250
+ ));
251
+ reject({ severity: Severity$1.Error, message: errorMessage });
252
+ }
253
+ }, waitTime));
254
+ store.add(disposableTimeout(() => {
255
+ const message = ( localize(
256
+ 5785,
257
+ "Waiting for preLaunchTask '{0}'...",
258
+ task.configurationProperties.name
259
+ ));
260
+ const buttons = [DEBUG_ANYWAY_LABEL_NO_MEMO, ABORT_LABEL];
261
+ const canConfigure = task instanceof CustomTask || task instanceof ConfiguringTask;
262
+ if (canConfigure) {
263
+ buttons.splice(1, 0, ( localize(5786, "Configure Task")));
264
+ }
265
+ this.progressService.withProgress({ location: ProgressLocation.Notification, title: message, buttons }, () => result.catch(() => { }), (choice) => {
266
+ if (choice === undefined) ;
267
+ else if (choice === 0) {
268
+ resolve({ exitCode: 0 });
251
269
  }
252
- }, waitTime);
253
- });
254
- }))
255
- );
270
+ else {
271
+ resolve({ exitCode: undefined, cancelled: true });
272
+ this.taskService.terminate(task).catch(() => { });
273
+ if (canConfigure && choice === 1) {
274
+ this.taskService.openConfig(task);
275
+ }
276
+ }
277
+ });
278
+ }, 10_000));
279
+ }));
280
+ })));
281
+ return result.finally(() => store.dispose());
256
282
  }
257
283
  };
258
284
  DebugTaskRunner = ( (__decorate([
@@ -262,7 +288,8 @@ DebugTaskRunner = ( (__decorate([
262
288
  ( (__param(3, IViewsService))),
263
289
  ( (__param(4, IDialogService))),
264
290
  ( (__param(5, IStorageService))),
265
- ( (__param(6, ICommandService)))
291
+ ( (__param(6, ICommandService))),
292
+ ( (__param(7, IProgressService)))
266
293
  ], DebugTaskRunner)));
267
294
 
268
295
  export { DebugTaskRunner, TaskRunResult };
@@ -301,7 +301,7 @@ function createDisconnectMenuItemAction(action, disposables, accessor, options)
301
301
  if (!secondary.length) {
302
302
  return undefined;
303
303
  }
304
- const dropdownAction = disposables.add(( (new Action('notebook.moreRunActions', ( localize(6041, "More...")), 'codicon-chevron-down', true))));
304
+ const dropdownAction = disposables.add(( (new Action('notebook.moreRunActions', ( localize(6019, "More...")), 'codicon-chevron-down', true))));
305
305
  const item = instantiationService.createInstance(DropdownWithPrimaryActionViewItem, action, dropdownAction, secondary, 'debug-stop-actions', contextMenuService, options);
306
306
  return item;
307
307
  }
@@ -375,8 +375,8 @@ registerDebugToolBarItem(STEP_OVER_ID, STEP_OVER_LABEL, 20, debugStepOver, undef
375
375
  registerDebugToolBarItem(STEP_INTO_ID, STEP_INTO_LABEL, 30, debugStepInto, undefined, ( (CONTEXT_DEBUG_STATE.isEqualTo('stopped'))));
376
376
  registerDebugToolBarItem(STEP_OUT_ID, STEP_OUT_LABEL, 40, debugStepOut, undefined, ( (CONTEXT_DEBUG_STATE.isEqualTo('stopped'))));
377
377
  registerDebugToolBarItem(RESTART_SESSION_ID, RESTART_LABEL, 60, debugRestart);
378
- registerDebugToolBarItem(STEP_BACK_ID, ( localize(6042, "Step Back")), 50, debugStepBack, CONTEXT_STEP_BACK_SUPPORTED, ( (CONTEXT_DEBUG_STATE.isEqualTo('stopped'))));
379
- registerDebugToolBarItem(REVERSE_CONTINUE_ID, ( localize(6043, "Reverse")), 55, debugReverseContinue, CONTEXT_STEP_BACK_SUPPORTED, ( (CONTEXT_DEBUG_STATE.isEqualTo('stopped'))));
378
+ registerDebugToolBarItem(STEP_BACK_ID, ( localize(6020, "Step Back")), 50, debugStepBack, CONTEXT_STEP_BACK_SUPPORTED, ( (CONTEXT_DEBUG_STATE.isEqualTo('stopped'))));
379
+ registerDebugToolBarItem(REVERSE_CONTINUE_ID, ( localize(6021, "Reverse")), 55, debugReverseContinue, CONTEXT_STEP_BACK_SUPPORTED, ( (CONTEXT_DEBUG_STATE.isEqualTo('stopped'))));
380
380
  registerDebugToolBarItem(FOCUS_SESSION_ID, FOCUS_SESSION_LABEL, 100, Codicon.listTree, ( (ContextKeyExpr.and(
381
381
  CONTEXT_MULTI_SESSION_DEBUG,
382
382
  (CONTEXT_TOOLBAR_COMMAND_CENTER.negate())
@@ -179,10 +179,10 @@ registerAction2(class extends Action2 {
179
179
  title: {
180
180
  value: DEBUG_CONFIGURE_LABEL,
181
181
  original: 'Open \'launch.json\'',
182
- mnemonicTitle: ( localize(6044, "Open &&Configurations"))
182
+ mnemonicTitle: ( localize(6022, "Open &&Configurations"))
183
183
  },
184
184
  metadata: {
185
- description: ( localize2(6045, 'Opens the file used to configure how your program is debugged'))
185
+ description: ( localize2(6023, 'Opens the file used to configure how your program is debugged'))
186
186
  },
187
187
  f1: true,
188
188
  icon: debugConfigure,
@@ -234,7 +234,7 @@ registerAction2(class extends Action2 {
234
234
  const picked = await quickInputService.pick(picks, {
235
235
  activeItem: picks[0],
236
236
  placeHolder: ( localize(
237
- 6046,
237
+ 6024,
238
238
  "Select a workspace folder to create a launch.json file in or add it to the workspace config file"
239
239
  ))
240
240
  });
@@ -252,7 +252,7 @@ registerAction2(class extends Action2 {
252
252
  constructor() {
253
253
  super({
254
254
  id: 'debug.toggleReplIgnoreFocus',
255
- title: ( localize(6047, "Debug Console")),
255
+ title: ( localize(6025, "Debug Console")),
256
256
  toggled: ( (ContextKeyExpr.has(`view.${REPL_VIEW_ID}.visible`))),
257
257
  menu: [{
258
258
  id: ViewsSubMenu,
@@ -284,7 +284,7 @@ MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
284
284
  order: 10,
285
285
  command: {
286
286
  id: SELECT_AND_START_ID,
287
- title: ( localize(6048, "Start Additional Session")),
287
+ title: ( localize(6026, "Start Additional Session")),
288
288
  }
289
289
  });
290
290
 
@@ -56,7 +56,7 @@ const disassemblyNotAvailable = {
56
56
  address: 0n,
57
57
  instruction: {
58
58
  address: '-1',
59
- instruction: ( localize(6049, "Disassembly not available."))
59
+ instruction: ( localize(6027, "Disassembly not available."))
60
60
  },
61
61
  };
62
62
  let DisassemblyView = class DisassemblyView extends EditorPane {
@@ -170,7 +170,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
170
170
  project(row) { return row; }
171
171
  },
172
172
  {
173
- label: ( localize(6050, "instructions")),
173
+ label: ( localize(6028, "instructions")),
174
174
  tooltip: '',
175
175
  weight: 0.3,
176
176
  templateId: InstructionRenderer.TEMPLATE_ID,
@@ -191,6 +191,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
191
191
  accessibilityProvider: ( (new AccessibilityProvider())),
192
192
  mouseSupport: false
193
193
  }));
194
+ this._disassembledInstructions.domNode.classList.add('disassembly-view');
194
195
  if (this.focusedInstructionReference) {
195
196
  this.reloadDisassembly(this.focusedInstructionReference, 0);
196
197
  }
@@ -504,8 +505,7 @@ let BreakpointRenderer = class BreakpointRenderer {
504
505
  }
505
506
  renderTemplate(container) {
506
507
  container.style.alignSelf = 'flex-end';
507
- const icon = append(container, $('.disassembly-view'));
508
- icon.classList.add('codicon');
508
+ const icon = append(container, $('.codicon'));
509
509
  icon.style.display = 'flex';
510
510
  icon.style.alignItems = 'center';
511
511
  icon.style.justifyContent = 'center';
@@ -705,7 +705,7 @@ let InstructionRenderer = class InstructionRenderer extends Disposable {
705
705
  };
706
706
  this.editorService.openEditor({
707
707
  resource: sourceURI,
708
- description: ( localize(6051, "from disassembly")),
708
+ description: ( localize(6029, "from disassembly")),
709
709
  options: {
710
710
  preserveFocus: false,
711
711
  selection: selection,
@@ -740,18 +740,18 @@ InstructionRenderer = InstructionRenderer_1 = ( (__decorate([
740
740
  ], InstructionRenderer)));
741
741
  class AccessibilityProvider {
742
742
  getWidgetAriaLabel() {
743
- return ( localize(6052, "Disassembly View"));
743
+ return ( localize(6030, "Disassembly View"));
744
744
  }
745
745
  getAriaLabel(element) {
746
746
  let label = '';
747
747
  const instruction = element.instruction;
748
748
  if (instruction.address !== '-1') {
749
- label += `${( localize(6053, "Address"))}: ${instruction.address}`;
749
+ label += `${( localize(6031, "Address"))}: ${instruction.address}`;
750
750
  }
751
751
  if (instruction.instructionBytes) {
752
- label += `, ${( localize(6054, "Bytes"))}: ${instruction.instructionBytes}`;
752
+ label += `, ${( localize(6032, "Bytes"))}: ${instruction.instructionBytes}`;
753
753
  }
754
- label += `, ${( localize(6055, "Instruction"))}: ${instruction.instruction}`;
754
+ label += `, ${( localize(6033, "Instruction"))}: ${instruction.instruction}`;
755
755
  return label;
756
756
  }
757
757
  }
@@ -19,15 +19,15 @@ import 'vscode/vscode/vs/platform/theme/common/colors/miscColors';
19
19
  import 'vscode/vscode/vs/platform/theme/common/colors/quickpickColors';
20
20
  import 'vscode/vscode/vs/platform/theme/common/colors/searchColors';
21
21
  import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
22
- import { LinkDetector } from './linkDetector.js';
22
+ import { LinkDetector, DebugLinkHoverBehavior } from 'vscode/vscode/vs/workbench/contrib/debug/browser/linkDetector';
23
23
  import { EditorOption } from 'vscode/vscode/vs/editor/common/config/editorOptions';
24
24
  import { ActionBar } from 'vscode/vscode/vs/base/browser/ui/actionbar/actionbar';
25
25
  import { Action } from 'vscode/vscode/vs/base/common/actions';
26
26
  import { widgetClose } from 'vscode/vscode/vs/platform/theme/common/iconRegistry';
27
27
 
28
28
  const $ = $$1;
29
- const debugExceptionWidgetBorder = registerColor('debugExceptionWidget.border', '#a31515', ( localize(10241, 'Exception widget border color.')));
30
- const debugExceptionWidgetBackground = registerColor('debugExceptionWidget.background', { dark: '#420b0d', light: '#f1dfde', hcDark: '#420b0d', hcLight: '#f1dfde' }, ( localize(10242, 'Exception widget background color.')));
29
+ const debugExceptionWidgetBorder = registerColor('debugExceptionWidget.border', '#a31515', ( localize(10285, 'Exception widget border color.')));
30
+ const debugExceptionWidgetBackground = registerColor('debugExceptionWidget.background', { dark: '#420b0d', light: '#f1dfde', hcDark: '#420b0d', hcLight: '#f1dfde' }, ( localize(10286, 'Exception widget background color.')));
31
31
  let ExceptionWidget = class ExceptionWidget extends ZoneWidget {
32
32
  constructor(editor, exceptionInfo, debugSession, themeService, instantiationService) {
33
33
  super(editor, { showFrame: true, showArrow: true, isAccessible: true, frameWidth: 1, className: 'exception-widget-container' });
@@ -66,10 +66,10 @@ let ExceptionWidget = class ExceptionWidget extends ZoneWidget {
66
66
  append(title, label);
67
67
  const actions = $('.actions');
68
68
  append(title, actions);
69
- label.textContent = this.exceptionInfo.id ? ( localize(10243, 'Exception has occurred: {0}', this.exceptionInfo.id)) : ( localize(10244, 'Exception has occurred.'));
69
+ label.textContent = this.exceptionInfo.id ? ( localize(10287, 'Exception has occurred: {0}', this.exceptionInfo.id)) : ( localize(10288, 'Exception has occurred.'));
70
70
  let ariaLabel = label.textContent;
71
71
  const actionBar = ( (new ActionBar(actions)));
72
- actionBar.push(( (new Action('editor.closeExceptionWidget', ( localize(10245, "Close")), ThemeIcon.asClassName(widgetClose), true, async () => {
72
+ actionBar.push(( (new Action('editor.closeExceptionWidget', ( localize(10289, "Close")), ThemeIcon.asClassName(widgetClose), true, async () => {
73
73
  const contribution = this.editor.getContribution(EDITOR_CONTRIBUTION_ID);
74
74
  contribution?.closeExceptionWidget();
75
75
  }))), { label: false, icon: true });
@@ -83,7 +83,7 @@ let ExceptionWidget = class ExceptionWidget extends ZoneWidget {
83
83
  if (this.exceptionInfo.details && this.exceptionInfo.details.stackTrace) {
84
84
  const stackTrace = $('.stack-trace');
85
85
  const linkDetector = this.instantiationService.createInstance(LinkDetector);
86
- const linkedStackTrace = linkDetector.linkify(this.exceptionInfo.details.stackTrace, true, this.debugSession ? this.debugSession.root : undefined);
86
+ const linkedStackTrace = linkDetector.linkify(this.exceptionInfo.details.stackTrace, true, this.debugSession ? this.debugSession.root : undefined, undefined, { type: DebugLinkHoverBehavior.Rich, store: this._disposables });
87
87
  stackTrace.appendChild(linkedStackTrace);
88
88
  append(container, stackTrace);
89
89
  ariaLabel += ', ' + this.exceptionInfo.details.stackTrace;
@@ -559,7 +559,7 @@ class LoadedScriptsRenderer {
559
559
  options.fileKind = FileKind.ROOT_FOLDER;
560
560
  }
561
561
  else if (element instanceof SessionTreeItem) {
562
- options.title = ( localize(6056, "Debug Session"));
562
+ options.title = ( localize(6034, "Debug Session"));
563
563
  options.hideIcon = true;
564
564
  }
565
565
  else if (element instanceof BaseTreeItem) {
@@ -581,20 +581,20 @@ class LoadedScriptsRenderer {
581
581
  }
582
582
  class LoadedSciptsAccessibilityProvider {
583
583
  getWidgetAriaLabel() {
584
- return ( localize(6057, "Debug Loaded Scripts"));
584
+ return ( localize(6035, "Debug Loaded Scripts"));
585
585
  }
586
586
  getAriaLabel(element) {
587
587
  if (element instanceof RootFolderTreeItem) {
588
- return ( localize(6058, "Workspace folder {0}, loaded script, debug", element.getLabel()));
588
+ return ( localize(6036, "Workspace folder {0}, loaded script, debug", element.getLabel()));
589
589
  }
590
590
  if (element instanceof SessionTreeItem) {
591
- return ( localize(6059, "Session {0}, loaded script, debug", element.getLabel()));
591
+ return ( localize(6037, "Session {0}, loaded script, debug", element.getLabel()));
592
592
  }
593
593
  if (element.hasChildren()) {
594
- return ( localize(6060, "Folder {0}, loaded script, debug", element.getLabel()));
594
+ return ( localize(6038, "Folder {0}, loaded script, debug", element.getLabel()));
595
595
  }
596
596
  else {
597
- return ( localize(6061, "{0}, loaded script, debug", element.getLabel()));
597
+ return ( localize(6039, "{0}, loaded script, debug", element.getLabel()));
598
598
  }
599
599
  }
600
600
  }
@@ -621,7 +621,7 @@ registerAction2(class Collapse extends ViewAction {
621
621
  super({
622
622
  id: 'loadedScripts.collapse',
623
623
  viewId: LOADED_SCRIPTS_VIEW_ID,
624
- title: ( localize(6062, "Collapse All")),
624
+ title: ( localize(6040, "Collapse All")),
625
625
  f1: false,
626
626
  icon: Codicon.collapseAll,
627
627
  menu: {
@@ -193,7 +193,7 @@ let RawDebugSession = class RawDebugSession {
193
193
  }
194
194
  async start() {
195
195
  if (!this.debugAdapter) {
196
- return Promise.reject(( (new Error(( localize(10217, "No debug adapter, can not start debug session."))))));
196
+ return Promise.reject(( (new Error(( localize(10261, "No debug adapter, can not start debug session."))))));
197
197
  }
198
198
  await this.debugAdapter.startSession();
199
199
  this.startTime = ( (new Date())).getTime();
@@ -366,6 +366,9 @@ let RawDebugSession = class RawDebugSession {
366
366
  source(args) {
367
367
  return this.send('source', args);
368
368
  }
369
+ locations(args) {
370
+ return this.send('locations', args);
371
+ }
369
372
  loadedSources(args) {
370
373
  if (this.capabilities.supportsLoadedSourcesRequest) {
371
374
  return this.send('loadedSources', args);
@@ -514,10 +517,10 @@ let RawDebugSession = class RawDebugSession {
514
517
  const { confirmed } = await this.dialogSerivce.confirm({
515
518
  type: Severity$1.Warning,
516
519
  message: ( localize(
517
- 10218,
520
+ 10262,
518
521
  "The debugger needs to open a new tab or window for the debuggee but the browser prevented this. You must give permission to continue."
519
522
  )),
520
- primaryButton: ( localize(10219, "&&Continue"))
523
+ primaryButton: ( localize(10263, "&&Continue"))
521
524
  });
522
525
  if (confirmed) {
523
526
  result = await this.launchVsCode(request.arguments);
@@ -617,7 +620,7 @@ let RawDebugSession = class RawDebugSession {
617
620
  completeDispatch(undefined);
618
621
  }
619
622
  else {
620
- errorDispatch(( (new Error(( localize(10220, "No debugger available found. Can not send '{0}'.", command))))));
623
+ errorDispatch(( (new Error(( localize(10264, "No debugger available found. Can not send '{0}'.", command))))));
621
624
  }
622
625
  return;
623
626
  }
@@ -650,7 +653,7 @@ let RawDebugSession = class RawDebugSession {
650
653
  const userMessage = error ? formatPII(error.format, false, error.variables) : errorMessage;
651
654
  const url = error?.url;
652
655
  if (error && url) {
653
- const label = error.urlLabel ? error.urlLabel : ( localize(10221, "More Info"));
656
+ const label = error.urlLabel ? error.urlLabel : ( localize(10265, "More Info"));
654
657
  const uri = ( (URI.parse(url)));
655
658
  const actionId = uri.scheme === Schemas.command ? 'debug.moreInfo.command' : 'debug.moreInfo';
656
659
  return createErrorWithActions(userMessage, [toAction({ id: actionId, label, run: () => this.openerService.open(uri, { allowCommands: true }) })]);