@codingame/monaco-vscode-debug-service-override 26.2.2 → 27.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.
Files changed (37) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/debug/common/extensionHostDebugIpc.d.ts +1 -1
  3. package/vscode/src/vs/platform/debug/common/extensionHostDebugIpc.js +6 -5
  4. package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +16 -16
  5. package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +104 -104
  6. package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +14 -14
  7. package/vscode/src/vs/workbench/contrib/debug/browser/debugChatIntegration.js +12 -12
  8. package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +9 -6
  9. package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +1 -1
  10. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +25 -25
  11. package/vscode/src/vs/workbench/contrib/debug/browser/debugMemory.js +2 -2
  12. package/vscode/src/vs/workbench/contrib/debug/browser/debugQuickAccess.js +8 -8
  13. package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +25 -25
  14. package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +52 -42
  15. package/vscode/src/vs/workbench/contrib/debug/browser/debugStatus.js +3 -3
  16. package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +15 -15
  17. package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +3 -3
  18. package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +5 -5
  19. package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +7 -7
  20. package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +14 -10
  21. package/vscode/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css +1 -0
  22. package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.d.ts +1 -1
  23. package/vscode/src/vs/workbench/contrib/debug/browser/rawDebugSession.js +27 -27
  24. package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibilityHelp.d.ts +2 -3
  25. package/vscode/src/vs/workbench/contrib/debug/browser/replAccessibilityHelp.js +107 -38
  26. package/vscode/src/vs/workbench/contrib/debug/browser/runAndDebugAccessibilityHelp.js +16 -16
  27. package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +4 -4
  28. package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +12 -12
  29. package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +6 -6
  30. package/vscode/src/vs/workbench/contrib/debug/common/debugContentProvider.js +2 -2
  31. package/vscode/src/vs/workbench/contrib/debug/common/debugLifecycle.js +3 -3
  32. package/vscode/src/vs/workbench/contrib/debug/common/debugSchemas.js +43 -43
  33. package/vscode/src/vs/workbench/contrib/debug/common/debugViewModel.d.ts +2 -1
  34. package/vscode/src/vs/workbench/contrib/debug/common/debugViewModel.js +10 -8
  35. package/vscode/src/vs/workbench/contrib/debug/common/debugger.d.ts +1 -1
  36. package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +11 -11
  37. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/notebookVariables/notebookVariableCommands.js +2 -2
@@ -30,9 +30,9 @@ var TaskRunResult;
30
30
  TaskRunResult[TaskRunResult["Success"] = 1] = "Success";
31
31
  })(TaskRunResult || (TaskRunResult = {}));
32
32
  const DEBUG_TASK_ERROR_CHOICE_KEY = "debug.taskerrorchoice";
33
- const ABORT_LABEL = ( localize(7409, "Abort"));
34
- const DEBUG_ANYWAY_LABEL = ( localize(7410, "&&Debug Anyway"));
35
- const DEBUG_ANYWAY_LABEL_NO_MEMO = ( localize(7411, "Debug Anyway"));
33
+ const ABORT_LABEL = ( localize(8017, "Abort"));
34
+ const DEBUG_ANYWAY_LABEL = ( localize(8018, "&&Debug Anyway"));
35
+ const DEBUG_ANYWAY_LABEL_NO_MEMO = ( localize(8019, "Debug Anyway"));
36
36
  let DebugTaskRunner = class DebugTaskRunner {
37
37
  constructor(
38
38
  taskService,
@@ -85,12 +85,12 @@ let DebugTaskRunner = class DebugTaskRunner {
85
85
  return Promise.resolve(TaskRunResult.Failure);
86
86
  }
87
87
  const taskLabel = typeof taskId === "string" ? taskId : taskId ? taskId.name : "";
88
- const message = errorCount > 1 ? ( localize(7412, "Errors exist after running preLaunchTask '{0}'.", taskLabel)) : errorCount === 1 ? ( localize(7413, "Error exists after running preLaunchTask '{0}'.", taskLabel)) : taskSummary && typeof taskSummary.exitCode === "number" ? ( localize(
89
- 7414,
88
+ const message = errorCount > 1 ? ( localize(8020, "Errors exist after running preLaunchTask '{0}'.", taskLabel)) : errorCount === 1 ? ( localize(8021, "Error exists after running preLaunchTask '{0}'.", taskLabel)) : taskSummary && typeof taskSummary.exitCode === "number" ? ( localize(
89
+ 8022,
90
90
  "The preLaunchTask '{0}' terminated with exit code {1}.",
91
91
  taskLabel,
92
92
  taskSummary.exitCode
93
- )) : ( localize(7415, "The preLaunchTask '{0}' terminated.", taskLabel));
93
+ )) : ( localize(8023, "The preLaunchTask '{0}' terminated.", taskLabel));
94
94
  let DebugChoice;
95
95
  (function(DebugChoice) {
96
96
  DebugChoice[DebugChoice["DebugAnyway"] = 1] = "DebugAnyway";
@@ -107,7 +107,7 @@ let DebugTaskRunner = class DebugTaskRunner {
107
107
  label: DEBUG_ANYWAY_LABEL,
108
108
  run: () => DebugChoice.DebugAnyway
109
109
  }, {
110
- label: ( localize(7416, "&&Show Errors")),
110
+ label: ( localize(8024, "&&Show Errors")),
111
111
  run: () => DebugChoice.ShowErrors
112
112
  }],
113
113
  cancelButton: {
@@ -115,7 +115,7 @@ let DebugTaskRunner = class DebugTaskRunner {
115
115
  run: () => DebugChoice.Cancel
116
116
  },
117
117
  checkbox: {
118
- label: ( localize(7417, "Remember my choice in user settings"))
118
+ label: ( localize(8025, "Remember my choice in user settings"))
119
119
  }
120
120
  });
121
121
  const debugAnyway = result === DebugChoice.DebugAnyway;
@@ -156,7 +156,7 @@ let DebugTaskRunner = class DebugTaskRunner {
156
156
  type: Severity.Error,
157
157
  message: err.message,
158
158
  buttons: [{
159
- label: ( localize(7410, "&&Debug Anyway")),
159
+ label: ( localize(8018, "&&Debug Anyway")),
160
160
  run: () => DebugChoice.DebugAnyway
161
161
  }, {
162
162
  label: taskConfigureAction.label,
@@ -166,7 +166,7 @@ let DebugTaskRunner = class DebugTaskRunner {
166
166
  run: () => DebugChoice.Cancel
167
167
  },
168
168
  checkbox: {
169
- label: ( localize(7418, "Remember my choice for this task"))
169
+ label: ( localize(8026, "Remember my choice for this task"))
170
170
  }
171
171
  });
172
172
  choice = result;
@@ -192,14 +192,14 @@ let DebugTaskRunner = class DebugTaskRunner {
192
192
  }
193
193
  if (!root) {
194
194
  return Promise.reject(( new Error(( localize(
195
- 7419,
195
+ 8027,
196
196
  "Task '{0}' can not be referenced from a launch configuration that is in a different workspace folder.",
197
197
  typeof taskId === "string" ? taskId : taskId.type
198
198
  )))));
199
199
  }
200
200
  const task = await this.taskService.getTask(root, taskId);
201
201
  if (!task) {
202
- const errorMessage = typeof taskId === "string" ? ( localize(7420, "Could not find the task '{0}'.", taskId)) : ( localize(7421, "Could not find the specified task."));
202
+ const errorMessage = typeof taskId === "string" ? ( localize(8028, "Could not find the task '{0}'.", taskId)) : ( localize(8029, "Could not find the specified task."));
203
203
  return Promise.reject(createErrorWithActions(errorMessage, [toAction({
204
204
  id: DEBUG_CONFIGURE_COMMAND_ID,
205
205
  label: DEBUG_CONFIGURE_LABEL,
@@ -263,7 +263,7 @@ let DebugTaskRunner = class DebugTaskRunner {
263
263
  store.add(disposableTimeout(() => {
264
264
  if (!taskStarted) {
265
265
  const errorMessage = ( localize(
266
- 7422,
266
+ 8030,
267
267
  "The task '{0}' has not exited and doesn't have a 'problemMatcher' defined. Make sure to define a problem matcher for watch tasks.",
268
268
  typeof taskId === "string" ? taskId : JSON.stringify(taskId)
269
269
  ));
@@ -277,14 +277,14 @@ let DebugTaskRunner = class DebugTaskRunner {
277
277
  if (!hideSlowPreLaunchWarning) {
278
278
  store.add(disposableTimeout(() => {
279
279
  const message = ( localize(
280
- 7423,
280
+ 8031,
281
281
  "Waiting for preLaunchTask '{0}'...",
282
282
  task.configurationProperties.name
283
283
  ));
284
284
  const buttons = [DEBUG_ANYWAY_LABEL_NO_MEMO, ABORT_LABEL];
285
285
  const canConfigure = task instanceof CustomTask || task instanceof ConfiguringTask;
286
286
  if (canConfigure) {
287
- buttons.splice(1, 0, ( localize(7424, "Configure Task")));
287
+ buttons.splice(1, 0, ( localize(8032, "Configure Task")));
288
288
  }
289
289
  this.progressService.withProgress({
290
290
  location: ProgressLocation.Notification,
@@ -331,7 +331,7 @@ function createDisconnectMenuItemAction(action, disposables, accessor, options)
331
331
  if (!secondary.length) {
332
332
  return undefined;
333
333
  }
334
- const dropdownAction = disposables.add(( new Action("notebook.moreRunActions", ( localize(7425, "More...")), "codicon-chevron-down", true)));
334
+ const dropdownAction = disposables.add(( new Action("notebook.moreRunActions", ( localize(8033, "More...")), "codicon-chevron-down", true)));
335
335
  const item = instantiationService.createInstance(
336
336
  DropdownWithPrimaryActionViewItem,
337
337
  action,
@@ -435,8 +435,8 @@ registerDebugToolBarItem(
435
435
  ( CONTEXT_DEBUG_STATE.isEqualTo("stopped"))
436
436
  );
437
437
  registerDebugToolBarItem(RESTART_SESSION_ID, RESTART_LABEL, 60, debugRestart);
438
- registerDebugToolBarItem(STEP_BACK_ID, ( localize(7426, "Step Back")), 50, debugStepBack, CONTEXT_STEP_BACK_SUPPORTED, ( CONTEXT_DEBUG_STATE.isEqualTo("stopped")));
439
- registerDebugToolBarItem(REVERSE_CONTINUE_ID, ( localize(7427, "Reverse")), 55, debugReverseContinue, CONTEXT_STEP_BACK_SUPPORTED, ( CONTEXT_DEBUG_STATE.isEqualTo("stopped")));
438
+ registerDebugToolBarItem(STEP_BACK_ID, ( localize(8034, "Step Back")), 50, debugStepBack, CONTEXT_STEP_BACK_SUPPORTED, ( CONTEXT_DEBUG_STATE.isEqualTo("stopped")));
439
+ registerDebugToolBarItem(REVERSE_CONTINUE_ID, ( localize(8035, "Reverse")), 55, debugReverseContinue, CONTEXT_STEP_BACK_SUPPORTED, ( CONTEXT_DEBUG_STATE.isEqualTo("stopped")));
440
440
  registerDebugToolBarItem(
441
441
  FOCUS_SESSION_ID,
442
442
  FOCUS_SESSION_LABEL,
@@ -183,10 +183,10 @@ registerAction2(class extends Action2 {
183
183
  title: {
184
184
  value: DEBUG_CONFIGURE_LABEL,
185
185
  original: "Open 'launch.json'",
186
- mnemonicTitle: ( localize(7428, "Open &&Configurations"))
186
+ mnemonicTitle: ( localize(8036, "Open &&Configurations"))
187
187
  },
188
188
  metadata: {
189
- description: ( localize2(7429, "Opens the file used to configure how your program is debugged"))
189
+ description: ( localize2(8037, "Opens the file used to configure how your program is debugged"))
190
190
  },
191
191
  f1: true,
192
192
  icon: debugConfigure,
@@ -227,7 +227,7 @@ registerAction2(class extends Action2 {
227
227
  const picked = await quickInputService.pick(picks, {
228
228
  activeItem: picks[0],
229
229
  placeHolder: ( localize(
230
- 7430,
230
+ 8038,
231
231
  "Select a workspace folder to create a launch.json file in or add it to the workspace config file"
232
232
  ))
233
233
  });
@@ -255,7 +255,7 @@ registerAction2(class extends Action2 {
255
255
  constructor() {
256
256
  super({
257
257
  id: "debug.toggleReplIgnoreFocus",
258
- title: ( localize(7431, "Debug Console")),
258
+ title: ( localize(8039, "Debug Console")),
259
259
  toggled: ( ContextKeyExpr.has(`view.${REPL_VIEW_ID}.visible`)),
260
260
  menu: [{
261
261
  id: ViewsSubMenu,
@@ -279,7 +279,7 @@ MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
279
279
  order: 10,
280
280
  command: {
281
281
  id: SELECT_AND_START_ID,
282
- title: ( localize(7432, "Start Additional Session"))
282
+ title: ( localize(8040, "Start Additional Session"))
283
283
  }
284
284
  });
285
285
 
@@ -64,7 +64,7 @@ const disassemblyNotAvailable = {
64
64
  address: 0n,
65
65
  instruction: {
66
66
  address: "-1",
67
- instruction: ( localize(7433, "Disassembly not available."))
67
+ instruction: ( localize(8041, "Disassembly not available."))
68
68
  }
69
69
  };
70
70
  let DisassemblyView = class DisassemblyView extends EditorPane {
@@ -204,7 +204,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
204
204
  return row;
205
205
  }
206
206
  }, {
207
- label: ( localize(7434, "instructions")),
207
+ label: ( localize(8042, "instructions")),
208
208
  tooltip: "",
209
209
  weight: 0.3,
210
210
  templateId: InstructionRenderer.TEMPLATE_ID,
@@ -824,7 +824,7 @@ let InstructionRenderer = class InstructionRenderer extends Disposable {
824
824
  };
825
825
  this.editorService.openEditor({
826
826
  resource: sourceURI,
827
- description: ( localize(7435, "from disassembly")),
827
+ description: ( localize(8043, "from disassembly")),
828
828
  options: {
829
829
  preserveFocus: false,
830
830
  selection: selection,
@@ -859,18 +859,18 @@ let InstructionRenderer = class InstructionRenderer extends Disposable {
859
859
  InstructionRenderer = InstructionRenderer_1 = ( __decorate([( __param(1, IThemeService)), ( __param(2, IEditorService)), ( __param(3, ITextModelService)), ( __param(4, IUriIdentityService)), ( __param(5, ILogService))], InstructionRenderer));
860
860
  class AccessibilityProvider {
861
861
  getWidgetAriaLabel() {
862
- return localize(7436, "Disassembly View");
862
+ return localize(8044, "Disassembly View");
863
863
  }
864
864
  getAriaLabel(element) {
865
865
  let label = "";
866
866
  const instruction = element.instruction;
867
867
  if (instruction.address !== "-1") {
868
- label += `${( localize(7437, "Address"))}: ${instruction.address}`;
868
+ label += `${( localize(8045, "Address"))}: ${instruction.address}`;
869
869
  }
870
870
  if (instruction.instructionBytes) {
871
- label += `, ${( localize(7438, "Bytes"))}: ${instruction.instructionBytes}`;
871
+ label += `, ${( localize(8046, "Bytes"))}: ${instruction.instructionBytes}`;
872
872
  }
873
- label += `, ${( localize(7439, "Instruction"))}: ${instruction.instruction}`;
873
+ label += `, ${( localize(8047, "Instruction"))}: ${instruction.instruction}`;
874
874
  return label;
875
875
  }
876
876
  }
@@ -6,7 +6,7 @@ import { RunOnceScheduler } from '@codingame/monaco-vscode-api/vscode/vs/base/co
6
6
  import { Codicon } from '@codingame/monaco-vscode-api/vscode/vs/base/common/codicons';
7
7
  import { createMatches } from '@codingame/monaco-vscode-api/vscode/vs/base/common/filters';
8
8
  import { normalizeDriveLetter, tildify } from '@codingame/monaco-vscode-api/vscode/vs/base/common/labels';
9
- import { dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
9
+ import { DisposableMap, DisposableStore, dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
10
10
  import { posix, isAbsolute, normalize } from '@codingame/monaco-vscode-api/vscode/vs/base/common/path';
11
11
  import { isWindows } from '@codingame/monaco-vscode-api/vscode/vs/base/common/platform';
12
12
  import { ltrim } from '@codingame/monaco-vscode-api/vscode/vs/base/common/strings';
@@ -465,15 +465,18 @@ let LoadedScriptsView = class LoadedScriptsView extends ViewPane {
465
465
  scheduleRefreshOnVisible();
466
466
  }
467
467
  };
468
+ const sessionListeners = this._register(( new DisposableMap()));
468
469
  const registerSessionListeners = session => {
469
- this._register(session.onDidChangeName(async () => {
470
+ const store = ( new DisposableStore());
471
+ sessionListeners.set(session.getId(), store);
472
+ store.add(session.onDidChangeName(async () => {
470
473
  const sessionRoot = root.find(session);
471
474
  if (sessionRoot) {
472
475
  sessionRoot.updateLabel(session.getLabel());
473
476
  scheduleRefreshOnVisible();
474
477
  }
475
478
  }));
476
- this._register(session.onDidLoadedSource(async event => {
479
+ store.add(session.onDidLoadedSource(async event => {
477
480
  let sessionRoot;
478
481
  switch (event.reason) {
479
482
  case "new":
@@ -505,6 +508,7 @@ let LoadedScriptsView = class LoadedScriptsView extends ViewPane {
505
508
  session
506
509
  }
507
510
  ) => {
511
+ sessionListeners.deleteAndDispose(session.getId());
508
512
  root.remove(session.getId());
509
513
  this.changeScheduler.schedule();
510
514
  }));
@@ -602,7 +606,7 @@ class LoadedScriptsRenderer {
602
606
  if (element instanceof RootFolderTreeItem) {
603
607
  options.fileKind = FileKind.ROOT_FOLDER;
604
608
  } else if (element instanceof SessionTreeItem) {
605
- options.title = ( localize(7451, "Debug Session"));
609
+ options.title = ( localize(8059, "Debug Session"));
606
610
  options.hideIcon = true;
607
611
  } else if (element instanceof BaseTreeItem) {
608
612
  const src = element.getSource();
@@ -622,19 +626,19 @@ class LoadedScriptsRenderer {
622
626
  }
623
627
  class LoadedSciptsAccessibilityProvider {
624
628
  getWidgetAriaLabel() {
625
- return localize(7452, "Debug Loaded Scripts");
629
+ return localize(8060, "Debug Loaded Scripts");
626
630
  }
627
631
  getAriaLabel(element) {
628
632
  if (element instanceof RootFolderTreeItem) {
629
- return localize(7453, "Workspace folder {0}, loaded script, debug", element.getLabel());
633
+ return localize(8061, "Workspace folder {0}, loaded script, debug", element.getLabel());
630
634
  }
631
635
  if (element instanceof SessionTreeItem) {
632
- return localize(7454, "Session {0}, loaded script, debug", element.getLabel());
636
+ return localize(8062, "Session {0}, loaded script, debug", element.getLabel());
633
637
  }
634
638
  if (element.hasChildren()) {
635
- return localize(7455, "Folder {0}, loaded script, debug", element.getLabel());
639
+ return localize(8063, "Folder {0}, loaded script, debug", element.getLabel());
636
640
  } else {
637
- return localize(7456, "{0}, loaded script, debug", element.getLabel());
641
+ return localize(8064, "{0}, loaded script, debug", element.getLabel());
638
642
  }
639
643
  }
640
644
  }
@@ -661,7 +665,7 @@ registerAction2(class Collapse extends ViewAction {
661
665
  super({
662
666
  id: "loadedScripts.collapse",
663
667
  viewId: LOADED_SCRIPTS_VIEW_ID,
664
- title: ( localize(7457, "Collapse All")),
668
+ title: ( localize(8065, "Collapse All")),
665
669
  f1: false,
666
670
  icon: Codicon.collapseAll,
667
671
  menu: {
@@ -57,6 +57,7 @@
57
57
  line-height: inherit;
58
58
  padding-top: 0;
59
59
  padding-bottom: 0;
60
+ border-radius: 0 var(--vscode-cornerRadius-small) var(--vscode-cornerRadius-small) 0;
60
61
 
61
62
  /* The debug view title is crowded, let this one get narrower than others */
62
63
  min-width: 90px;
@@ -26,6 +26,7 @@ export declare class RawDebugSession implements IDisposable {
26
26
  private firedAdapterExitEvent;
27
27
  private startTime;
28
28
  private didReceiveStoppedEvent;
29
+ private readonly toDispose;
29
30
  private readonly _onDidInitialize;
30
31
  private readonly _onDidStop;
31
32
  private readonly _onDidContinued;
@@ -45,7 +46,6 @@ export declare class RawDebugSession implements IDisposable {
45
46
  private readonly _onDidExitAdapter;
46
47
  private debugAdapter;
47
48
  private stoppedSinceLastStep;
48
- private toDispose;
49
49
  constructor(debugAdapter: IDebugAdapter, dbgr: IDebugger, sessionId: string, name: string, extensionHostDebugService: IExtensionHostDebugService, openerService: IOpenerService, notificationService: INotificationService, dialogSerivce: IDialogService);
50
50
  get isInShutdown(): boolean;
51
51
  get onDidExitAdapter(): Event<AdapterEndEvent>;
@@ -10,7 +10,7 @@ import { isUriString, formatPII } from '@codingame/monaco-vscode-api/vscode/vs/w
10
10
  import { IExtensionHostDebugService } from '@codingame/monaco-vscode-api/vscode/vs/platform/debug/common/extensionHostDebug.service';
11
11
  import { URI } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uri';
12
12
  import { IOpenerService } from '@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service';
13
- import { dispose } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
13
+ import { DisposableStore } from '@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle';
14
14
  import '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
15
15
  import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
16
16
  import { IDialogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/dialogs/common/dialogs.service';
@@ -43,31 +43,31 @@ let RawDebugSession = class RawDebugSession {
43
43
  this.firedAdapterExitEvent = false;
44
44
  this.startTime = 0;
45
45
  this.didReceiveStoppedEvent = false;
46
- this._onDidInitialize = ( new Emitter());
47
- this._onDidStop = ( new Emitter());
48
- this._onDidContinued = ( new Emitter());
49
- this._onDidTerminateDebugee = ( new Emitter());
50
- this._onDidExitDebugee = ( new Emitter());
51
- this._onDidThread = ( new Emitter());
52
- this._onDidOutput = ( new Emitter());
53
- this._onDidBreakpoint = ( new Emitter());
54
- this._onDidLoadedSource = ( new Emitter());
55
- this._onDidProgressStart = ( new Emitter());
56
- this._onDidProgressUpdate = ( new Emitter());
57
- this._onDidProgressEnd = ( new Emitter());
58
- this._onDidInvalidated = ( new Emitter());
59
- this._onDidInvalidateMemory = ( new Emitter());
60
- this._onDidCustomEvent = ( new Emitter());
61
- this._onDidEvent = ( new Emitter());
62
- this._onDidExitAdapter = ( new Emitter());
46
+ this.toDispose = ( new DisposableStore());
47
+ this._onDidInitialize = this.toDispose.add(( new Emitter()));
48
+ this._onDidStop = this.toDispose.add(( new Emitter()));
49
+ this._onDidContinued = this.toDispose.add(( new Emitter()));
50
+ this._onDidTerminateDebugee = this.toDispose.add(( new Emitter()));
51
+ this._onDidExitDebugee = this.toDispose.add(( new Emitter()));
52
+ this._onDidThread = this.toDispose.add(( new Emitter()));
53
+ this._onDidOutput = this.toDispose.add(( new Emitter()));
54
+ this._onDidBreakpoint = this.toDispose.add(( new Emitter()));
55
+ this._onDidLoadedSource = this.toDispose.add(( new Emitter()));
56
+ this._onDidProgressStart = this.toDispose.add(( new Emitter()));
57
+ this._onDidProgressUpdate = this.toDispose.add(( new Emitter()));
58
+ this._onDidProgressEnd = this.toDispose.add(( new Emitter()));
59
+ this._onDidInvalidated = this.toDispose.add(( new Emitter()));
60
+ this._onDidInvalidateMemory = this.toDispose.add(( new Emitter()));
61
+ this._onDidCustomEvent = this.toDispose.add(( new Emitter()));
62
+ this._onDidEvent = this.toDispose.add(( new Emitter()));
63
+ this._onDidExitAdapter = this.toDispose.add(( new Emitter()));
63
64
  this.stoppedSinceLastStep = false;
64
- this.toDispose = [];
65
65
  this.debugAdapter = debugAdapter;
66
66
  this._capabilities = Object.create(null);
67
- this.toDispose.push(this.debugAdapter.onError(err => {
67
+ this.toDispose.add(this.debugAdapter.onError(err => {
68
68
  this.shutdown(err);
69
69
  }));
70
- this.toDispose.push(this.debugAdapter.onExit(code => {
70
+ this.toDispose.add(this.debugAdapter.onExit(code => {
71
71
  if (code !== 0) {
72
72
  this.shutdown(( new Error(`exit code: ${code}`)));
73
73
  } else {
@@ -202,7 +202,7 @@ let RawDebugSession = class RawDebugSession {
202
202
  }
203
203
  async start() {
204
204
  if (!this.debugAdapter) {
205
- return Promise.reject(( new Error(( localize(7458, "No debug adapter, can not start debug session.")))));
205
+ return Promise.reject(( new Error(( localize(8066, "No debug adapter, can not start debug session.")))));
206
206
  }
207
207
  await this.debugAdapter.startSession();
208
208
  this.startTime = ( new Date()).getTime();
@@ -535,10 +535,10 @@ let RawDebugSession = class RawDebugSession {
535
535
  } = await this.dialogSerivce.confirm({
536
536
  type: Severity.Warning,
537
537
  message: ( localize(
538
- 7459,
538
+ 8067,
539
539
  "The debugger needs to open a new tab or window for the debuggee but the browser prevented this. You must give permission to continue."
540
540
  )),
541
- primaryButton: ( localize(7460, "&&Continue"))
541
+ primaryButton: ( localize(8068, "&&Continue"))
542
542
  });
543
543
  if (confirmed) {
544
544
  result = await this.launchVsCode(request.arguments);
@@ -628,7 +628,7 @@ let RawDebugSession = class RawDebugSession {
628
628
  if (this.inShutdown) {
629
629
  completeDispatch(undefined);
630
630
  } else {
631
- errorDispatch(( new Error(( localize(7461, "No debugger available found. Can not send '{0}'.", command)))));
631
+ errorDispatch(( new Error(( localize(8069, "No debugger available found. Can not send '{0}'.", command)))));
632
632
  }
633
633
  return;
634
634
  }
@@ -665,7 +665,7 @@ let RawDebugSession = class RawDebugSession {
665
665
  const userMessage = error ? formatPII(error.format, false, error.variables) : errorMessage;
666
666
  const url = error?.url;
667
667
  if (error && url) {
668
- const label = error.urlLabel ? error.urlLabel : ( localize(7462, "More Info"));
668
+ const label = error.urlLabel ? error.urlLabel : ( localize(8070, "More Info"));
669
669
  const uri = ( URI.parse(url));
670
670
  const actionId = uri.scheme === Schemas.command ? "debug.moreInfo.command" : "debug.moreInfo";
671
671
  return createErrorWithActions(userMessage, [toAction({
@@ -700,7 +700,7 @@ let RawDebugSession = class RawDebugSession {
700
700
  });
701
701
  }
702
702
  dispose() {
703
- dispose(this.toDispose);
703
+ this.toDispose.dispose();
704
704
  }
705
705
  };
706
706
  RawDebugSession = ( __decorate([( __param(4, IExtensionHostDebugService)), ( __param(5, IOpenerService)), ( __param(6, INotificationService)), ( __param(7, IDialogService))], RawDebugSession));
@@ -7,18 +7,17 @@ import { AccessibilityVerbositySettingId } from "@codingame/monaco-vscode-api/vs
7
7
  export declare class ReplAccessibilityHelp implements IAccessibleViewImplementation {
8
8
  priority: number;
9
9
  name: string;
10
- when: import("@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey").ContextKeyExpression;
10
+ when: import("@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey").ContextKeyExpression | undefined;
11
11
  type: AccessibleViewType;
12
12
  getProvider(accessor: ServicesAccessor): ReplAccessibilityHelpProvider | undefined;
13
13
  }
14
14
  declare class ReplAccessibilityHelpProvider extends Disposable implements IAccessibleViewContentProvider {
15
15
  private readonly _replView;
16
16
  readonly id = AccessibleViewProviderId.ReplHelp;
17
- readonly verbositySettingKey = AccessibilityVerbositySettingId.Debug;
17
+ readonly verbositySettingKey = AccessibilityVerbositySettingId.Find;
18
18
  readonly options: {
19
19
  type: AccessibleViewType;
20
20
  };
21
- private _treeHadFocus;
22
21
  constructor(_replView: Repl);
23
22
  onClose(): void;
24
23
  provideContent(): string;
@@ -6,12 +6,13 @@ import { getReplView } from '@codingame/monaco-vscode-api/vscode/vs/workbench/co
6
6
  import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/views/common/viewsService.service';
7
7
  import { AccessibilityVerbositySettingId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
8
8
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
9
+ import { CONTEXT_IN_DEBUG_REPL } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/debug/common/debug';
9
10
 
10
11
  class ReplAccessibilityHelp {
11
12
  constructor() {
12
13
  this.priority = 120;
13
14
  this.name = "replHelp";
14
- this.when = ( ContextKeyExpr.equals("focusedView", "workbench.panel.repl.view"));
15
+ this.when = ( ContextKeyExpr.or(( ContextKeyExpr.equals("focusedView", "workbench.panel.repl.view")), CONTEXT_IN_DEBUG_REPL));
15
16
  this.type = AccessibleViewType.Help;
16
17
  }
17
18
  getProvider(accessor) {
@@ -28,51 +29,119 @@ class ReplAccessibilityHelpProvider extends Disposable {
28
29
  super();
29
30
  this._replView = _replView;
30
31
  this.id = AccessibleViewProviderId.ReplHelp;
31
- this.verbositySettingKey = AccessibilityVerbositySettingId.Debug;
32
+ this.verbositySettingKey = AccessibilityVerbositySettingId.Find;
32
33
  this.options = {
33
34
  type: AccessibleViewType.Help
34
35
  };
35
- this._treeHadFocus = false;
36
- this._treeHadFocus = !!_replView.getFocusedElement();
37
36
  }
38
37
  onClose() {
39
- if (this._treeHadFocus) {
40
- return this._replView.focusTree();
41
- }
42
- this._replView.getReplInput().focus();
38
+ this._replView.focusFilter();
43
39
  }
44
40
  provideContent() {
45
- return [( localize(
46
- 7481,
47
- "The debug console is a Read-Eval-Print-Loop that allows you to evaluate expressions and run commands and can be focused with{0}.",
41
+ const content = [];
42
+ content.push(( localize(8089, "Accessibility Help: Debug Console Filter")));
43
+ content.push(( localize(
44
+ 8090,
45
+ "You are in the Debug Console filter input. This is a filter that instantly hides console messages that do not match your filter, showing only the messages you want to see."
46
+ )));
47
+ content.push("");
48
+ content.push(( localize(8091, "Current Filter Status:")));
49
+ content.push(( localize(8092, "You are filtering the console output.")));
50
+ content.push("");
51
+ content.push(( localize(8093, "Inside the Filter Input (What It Does):")));
52
+ content.push(( localize(
53
+ 8094,
54
+ "While you are in the filter input, your focus stays in the field. You can type, edit, or adjust your filter without leaving the input. As you type, the console instantly updates to show only messages matching your filter."
55
+ )));
56
+ content.push("");
57
+ content.push(( localize(8095, "What Happens When You Filter:")));
58
+ content.push(( localize(
59
+ 8096,
60
+ "Each time you change the filter text, the console instantly regenerates to show only matching messages. Your screen reader announces how many messages are now visible. This is live feedback: text searches console output, variable values, and log messages."
61
+ )));
62
+ content.push("");
63
+ content.push(( localize(8097, "Focus Behavior (Important):")));
64
+ content.push(( localize(
65
+ 8098,
66
+ "Your focus stays in the filter input while the console updates in the background. This is intentional, so you can keep typing without losing your place."
67
+ )));
68
+ content.push(( localize(
69
+ 8099,
70
+ "If you want to review the filtered console output, press Down Arrow to move focus from the filter into the console messages above."
71
+ )));
72
+ content.push(( localize(
73
+ 8100,
74
+ "Important: The console input area is at the bottom of the console, separate from the filter. To evaluate expressions, navigate to the console input (after the filtered messages) and type your expression."
75
+ )));
76
+ content.push("");
77
+ content.push(( localize(8101, "Distinguishing Filter from Console Input:")));
78
+ content.push(( localize(
79
+ 8102,
80
+ "The filter input is where you are now. It hides or shows messages without running code."
81
+ )));
82
+ content.push(( localize(
83
+ 8103,
84
+ "The console input is at the bottom of the console, after all displayed messages. That is where you type and press Enter to evaluate expressions during debugging."
85
+ )));
86
+ content.push(( localize(
87
+ 8104,
88
+ "To switch to the console input and evaluate an expression, use {0} to focus the console input.",
89
+ "<keybinding:workbench.panel.repl.view.focus>"
90
+ )));
91
+ content.push("");
92
+ content.push(( localize(8105, "Filter Syntax and Patterns:")));
93
+ content.push(( localize(8106, "- Type text: Shows only messages containing that text.")));
94
+ content.push(( localize(
95
+ 8107,
96
+ "- !text (exclude): Hides messages containing the text, showing all others."
97
+ )));
98
+ content.push("");
99
+ content.push(( localize(8108, "Keyboard Navigation Summary:")));
100
+ content.push(( localize(8109, "- Down Arrow: Move focus from filter into the console output.")));
101
+ content.push(( localize(8110, "- Tab: Move to other console controls if available.")));
102
+ content.push(( localize(8111, "- Escape: Clear the filter or close the filter.")));
103
+ content.push(( localize(
104
+ 8112,
105
+ "- {0}: Focus the console input to evaluate expressions.",
48
106
  "<keybinding:workbench.panel.repl.view.focus>"
49
- )), ( localize(
50
- 7482,
51
- "The debug console output can be navigated to from the input field with the Focus Previous Widget command{0}.",
52
- "<keybinding:widgetNavigation.focusPrevious>"
53
- )), ( localize(
54
- 7483,
55
- "The debug console input can be navigated to from the output with the Focus Next Widget command{0}.",
56
- "<keybinding:widgetNavigation.focusNext>"
57
- )), ( localize(
58
- 7484,
59
- "The debug console output history can be navigated with the up and down arrow keys."
60
- )), ( localize(
61
- 7485,
62
- "The Open Accessible View command{0} will allow character by character navigation of the console output.",
63
- "<keybinding:editor.action.accessibleView>"
64
- )), ( localize(
65
- 7486,
66
- "The Show Run and Debug view command{0} will open the Run and Debug view and provides more information about debugging.",
67
- "<keybinding:workbench.view.debug>"
68
- )), ( localize(
69
- 7487,
70
- "The Debug: Clear Console command{0} will clear the console output.",
71
- "<keybinding:workbench.debug.panel.action.clearReplAction>"
72
- )), ( localize(
73
- 7488,
74
- "The setting `debug.expandLazyVariables` controls whether variables are evaluated automatically. This is enabled by default when using a screen reader."
75
- ))].join("\n");
107
+ )));
108
+ content.push("");
109
+ content.push(( localize(
110
+ 8113,
111
+ "Settings You Can Adjust ({0} opens Settings):",
112
+ "<keybinding:workbench.action.openSettings>"
113
+ )));
114
+ content.push(( localize(8114, "These settings affect the Debug Console.")));
115
+ content.push(( localize(
116
+ 8115,
117
+ "- `accessibility.verbosity.find`: Controls whether the filter input announces the Accessibility Help hint."
118
+ )));
119
+ content.push(( localize(
120
+ 8116,
121
+ "- `debug.console.closeOnEnd`: Automatically close the Debug Console when the debugging session ends."
122
+ )));
123
+ content.push(( localize(8117, "- `debug.console.fontSize`: Font size in the console.")));
124
+ content.push(( localize(8118, "- `debug.console.fontFamily`: Font family in the console.")));
125
+ content.push(( localize(8119, "- `debug.console.wordWrap`: Wrap lines in the console.")));
126
+ content.push(( localize(
127
+ 8120,
128
+ "- `debug.console.historySuggestions`: Suggest previously typed input."
129
+ )));
130
+ content.push(( localize(
131
+ 8121,
132
+ "- `debug.console.collapseIdenticalLines`: Collapse repeated messages with a count."
133
+ )));
134
+ content.push(( localize(
135
+ 8122,
136
+ "- `debug.console.maximumLines`: Maximum number of messages to keep in the console."
137
+ )));
138
+ content.push("");
139
+ content.push(( localize(8123, "Closing:")));
140
+ content.push(( localize(
141
+ 8124,
142
+ "Press Escape to clear the filter, or close the Debug Console. Your filter text is preserved if you reopen the console."
143
+ )));
144
+ return content.join("\n");
76
145
  }
77
146
  }
78
147