@codingame/monaco-vscode-debug-service-override 2.0.3 → 2.1.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 (31) hide show
  1. package/debug.js +3 -1
  2. package/package.json +3 -3
  3. package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +3 -3
  4. package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +47 -3
  5. package/vscode/src/vs/workbench/contrib/debug/browser/debugActionViewItems.js +7 -3
  6. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +1 -1
  7. package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +18 -7
  8. package/vscode/src/vs/workbench/contrib/debug/browser/debugConsoleQuickAccess.js +1 -1
  9. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +36 -1
  10. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +137 -121
  11. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +34 -5
  12. package/vscode/src/vs/workbench/contrib/debug/browser/debugMemory.js +1 -1
  13. package/vscode/src/vs/workbench/contrib/debug/browser/debugProgress.js +1 -1
  14. package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +106 -38
  15. package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +123 -56
  16. package/vscode/src/vs/workbench/contrib/debug/browser/debugSessionPicker.js +1 -1
  17. package/vscode/src/vs/workbench/contrib/debug/browser/debugTaskRunner.js +8 -7
  18. package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +43 -19
  19. package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +2 -1
  20. package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +1 -1
  21. package/vscode/src/vs/workbench/contrib/debug/browser/loadedScriptsView.js +2 -2
  22. package/vscode/src/vs/workbench/contrib/debug/browser/media/debug.contribution.css.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +18 -8
  24. package/vscode/src/vs/workbench/contrib/debug/browser/replFilter.js +1 -1
  25. package/vscode/src/vs/workbench/contrib/debug/browser/replViewer.js +2 -2
  26. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +87 -36
  27. package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +45 -6
  28. package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +9 -3
  29. package/vscode/src/vs/workbench/contrib/debug/common/debugStorage.js +4 -4
  30. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +0 -204
  31. package/vscode/src/vs/workbench/contrib/debug/common/replModel.js +0 -287
package/debug.js CHANGED
@@ -7,6 +7,7 @@ import { ConfigurationResolverService } from './vscode/src/vs/workbench/services
7
7
  import { IConfigurationResolverService } from 'vscode/vscode/vs/workbench/services/configurationResolver/common/configurationResolver';
8
8
  import { IExtensionHostDebugService } from 'vscode/vscode/vs/platform/debug/common/extensionHostDebug';
9
9
  import { BrowserExtensionHostDebugService } from './vscode/src/vs/workbench/contrib/debug/browser/extensionHostDebugService.js';
10
+ import { IDebugVisualizerService, DebugVisualizerService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugVisualizers';
10
11
  import getServiceOverride$1 from '@codingame/monaco-vscode-layout-service-override';
11
12
  import './vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js';
12
13
 
@@ -20,7 +21,8 @@ function getServiceOverride() {
20
21
  [( ILanguageFeaturesService.toString())]: new SyncDescriptor(LanguageFeaturesService, [], true),
21
22
  [( IDebugService.toString())]: new SyncDescriptor(DebugService, [], true),
22
23
  [( IConfigurationResolverService.toString())]: new SyncDescriptor(ConfigurationResolverService, [], true),
23
- [( IExtensionHostDebugService.toString())]: new SyncDescriptor(BrowserExtensionHostDebugService, [], true)
24
+ [( IExtensionHostDebugService.toString())]: new SyncDescriptor(BrowserExtensionHostDebugService, [], true),
25
+ [( IDebugVisualizerService.toString())]: new SyncDescriptor(DebugVisualizerService, [], true)
24
26
  };
25
27
  }
26
28
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-debug-service-override",
3
- "version": "2.0.3",
3
+ "version": "2.1.0",
4
4
  "keywords": [],
5
5
  "author": {
6
6
  "name": "CodinGame",
@@ -18,8 +18,8 @@
18
18
  "module": "index.js",
19
19
  "types": "index.d.ts",
20
20
  "dependencies": {
21
- "vscode": "npm:@codingame/monaco-vscode-api@2.0.3",
21
+ "vscode": "npm:@codingame/monaco-vscode-api@2.1.0",
22
22
  "vscode-marked": "npm:marked@=3.0.2",
23
- "@codingame/monaco-vscode-layout-service-override": "2.0.3"
23
+ "@codingame/monaco-vscode-layout-service-override": "2.1.0"
24
24
  }
25
25
  }
@@ -28,11 +28,11 @@ import { IThemeService } from 'vscode/vscode/vs/platform/theme/common/themeServi
28
28
  import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
29
29
  import { ViewAction, ViewPane } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
30
30
  import { IViewDescriptorService } from 'vscode/vscode/vs/workbench/common/views';
31
- import { renderViewTree } from './baseDebugView.js';
31
+ import { renderViewTree } from 'vscode/vscode/vs/workbench/contrib/debug/browser/baseDebugView';
32
32
  import { STOP_ID, DISCONNECT_ID, PAUSE_LABEL, PAUSE_ID, CONTINUE_LABEL, CONTINUE_ID, RESTART_LABEL, RESTART_SESSION_ID, STOP_LABEL, DISCONNECT_LABEL, STEP_OVER_LABEL, STEP_OVER_ID, STEP_INTO_LABEL, STEP_INTO_ID, STEP_OUT_LABEL, STEP_OUT_ID } from './debugCommands.js';
33
33
  import { callstackViewSession, debugRestartFrame, debugPause, debugContinue, debugRestart, debugStop, debugDisconnect, debugStepOver, debugStepInto, debugStepOut } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
34
34
  import { createDisconnectMenuItemAction } from './debugToolBar.js';
35
- import { CALLSTACK_VIEW_ID, CONTEXT_DEBUG_STATE, getStateLabel, CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_CALLSTACK_SESSION_HAS_ONE_THREAD, CONTEXT_CALLSTACK_ITEM_STOPPED, CONTEXT_CALLSTACK_SESSION_IS_ATTACH, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
35
+ import { CALLSTACK_VIEW_ID, CONTEXT_DEBUG_STATE, getStateLabel, CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_CALLSTACK_SESSION_HAS_ONE_THREAD, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_CALLSTACK_ITEM_STOPPED, CONTEXT_CALLSTACK_SESSION_IS_ATTACH, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
36
36
  import { Thread, StackFrame, ThreadAndSessionIds } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugModel';
37
37
  import { isSessionAttach } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugUtils';
38
38
 
@@ -999,7 +999,7 @@ function registerCallStackInlineMenuItem(id, title, icon, when, order, precondit
999
999
  });
1000
1000
  }
1001
1001
  const threadOrSessionWithOneThread = ( ContextKeyExpr.or(( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('thread')), ( ContextKeyExpr.and(( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session')), CONTEXT_CALLSTACK_SESSION_HAS_ONE_THREAD))));
1002
- registerCallStackInlineMenuItem(PAUSE_ID, PAUSE_LABEL, debugPause, ( ContextKeyExpr.and(threadOrSessionWithOneThread, ( CONTEXT_CALLSTACK_ITEM_STOPPED.toNegated()))), 10);
1002
+ registerCallStackInlineMenuItem(PAUSE_ID, PAUSE_LABEL, debugPause, ( ContextKeyExpr.and(threadOrSessionWithOneThread, ( CONTEXT_CALLSTACK_ITEM_STOPPED.toNegated()))), 10, ( CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG.toNegated()));
1003
1003
  registerCallStackInlineMenuItem(CONTINUE_ID, CONTINUE_LABEL, debugContinue, ( ContextKeyExpr.and(threadOrSessionWithOneThread, CONTEXT_CALLSTACK_ITEM_STOPPED)), 10);
1004
1004
  registerCallStackInlineMenuItem(STEP_OVER_ID, STEP_OVER_LABEL, debugStepOver, threadOrSessionWithOneThread, 20, CONTEXT_CALLSTACK_ITEM_STOPPED);
1005
1005
  registerCallStackInlineMenuItem(STEP_INTO_ID, STEP_INTO_LABEL, debugStepInto, threadOrSessionWithOneThread, 30, CONTEXT_CALLSTACK_ITEM_STOPPED);
@@ -37,7 +37,7 @@ import { StatusBarColorProvider } from './statusbarColorProvider.js';
37
37
  import { VIEW_MEMORY_ID, SET_VARIABLE_ID, COPY_VALUE_ID, COPY_EVALUATE_PATH_ID, ADD_TO_WATCH_ID, BREAK_WHEN_VALUE_IS_READ_ID, BREAK_WHEN_VALUE_CHANGES_ID, BREAK_WHEN_VALUE_IS_ACCESSED_ID, VariablesView } from './variablesView.js';
38
38
  import { WatchExpressionsView, ADD_WATCH_LABEL, ADD_WATCH_ID, REMOVE_WATCH_EXPRESSIONS_LABEL, REMOVE_WATCH_EXPRESSIONS_COMMAND_ID } from './watchExpressionsView.js';
39
39
  import { WelcomeView } from './welcomeView.js';
40
- import { BREAKPOINT_EDITOR_CONTRIBUTION_ID, EDITOR_CONTRIBUTION_ID, CONTEXT_DEBUG_STATE, CONTEXT_IN_DEBUG_MODE, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, CONTEXT_DEBUGGERS_AVAILABLE, getStateLabel, CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_VARIABLE_IS_READONLY, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_VARIABLE_EVALUATE_NAME_PRESENT, CONTEXT_SET_EXPRESSION_SUPPORTED, CONTEXT_WATCH_ITEM_TYPE, DEBUG_PANEL_ID, REPL_VIEW_ID, VIEWLET_ID, VARIABLES_VIEW_ID, CONTEXT_DEBUG_UX, WATCH_VIEW_ID, CALLSTACK_VIEW_ID, BREAKPOINTS_VIEW_ID, CONTEXT_BREAKPOINTS_EXIST, CONTEXT_HAS_DEBUGGED, LOADED_SCRIPTS_VIEW_ID, CONTEXT_LOADED_SCRIPTS_SUPPORTED, DISASSEMBLY_VIEW_ID, INTERNAL_CONSOLE_OPTIONS_SCHEMA, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, CONTEXT_CAN_VIEW_MEMORY, CONTEXT_BREAK_WHEN_VALUE_IS_READ_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_CHANGES_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_IS_ACCESSED_SUPPORTED } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
40
+ import { BREAKPOINT_EDITOR_CONTRIBUTION_ID, EDITOR_CONTRIBUTION_ID, CONTEXT_DEBUG_STATE, CONTEXT_IN_DEBUG_MODE, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, CONTEXT_DEBUGGERS_AVAILABLE, getStateLabel, CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_VARIABLE_IS_READONLY, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_VARIABLE_EVALUATE_NAME_PRESENT, CONTEXT_SET_EXPRESSION_SUPPORTED, CONTEXT_WATCH_ITEM_TYPE, DEBUG_PANEL_ID, REPL_VIEW_ID, VIEWLET_ID, VARIABLES_VIEW_ID, CONTEXT_DEBUG_UX, WATCH_VIEW_ID, CALLSTACK_VIEW_ID, BREAKPOINTS_VIEW_ID, CONTEXT_BREAKPOINTS_EXIST, CONTEXT_HAS_DEBUGGED, LOADED_SCRIPTS_VIEW_ID, CONTEXT_LOADED_SCRIPTS_SUPPORTED, DISASSEMBLY_VIEW_ID, INTERNAL_CONSOLE_OPTIONS_SCHEMA, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_STACK_FRAME_SUPPORTS_RESTART, CONTEXT_CAN_VIEW_MEMORY, CONTEXT_BREAK_WHEN_VALUE_IS_READ_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_CHANGES_SUPPORTED, CONTEXT_BREAK_WHEN_VALUE_IS_ACCESSED_SUPPORTED } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
41
41
  import { DebugContentProvider } from '../common/debugContentProvider.js';
42
42
  import { DebugLifecycle } from '../common/debugLifecycle.js';
43
43
  import { DisassemblyViewInput } from 'vscode/vscode/vs/workbench/contrib/debug/common/disassemblyViewInput';
@@ -117,7 +117,7 @@ registerDebugCommandPaletteItem(STEP_OVER_ID, STEP_OVER_LABEL, CONTEXT_IN_DEBUG_
117
117
  registerDebugCommandPaletteItem(STEP_INTO_ID, STEP_INTO_LABEL, CONTEXT_IN_DEBUG_MODE, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
118
118
  registerDebugCommandPaletteItem(STEP_INTO_TARGET_ID, STEP_INTO_TARGET_LABEL, CONTEXT_IN_DEBUG_MODE, ( ContextKeyExpr.and(CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_IN_DEBUG_MODE, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')))));
119
119
  registerDebugCommandPaletteItem(STEP_OUT_ID, STEP_OUT_LABEL, CONTEXT_IN_DEBUG_MODE, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
120
- registerDebugCommandPaletteItem(PAUSE_ID, PAUSE_LABEL, CONTEXT_IN_DEBUG_MODE, ( CONTEXT_DEBUG_STATE.isEqualTo('running')));
120
+ registerDebugCommandPaletteItem(PAUSE_ID, PAUSE_LABEL, CONTEXT_IN_DEBUG_MODE, ( ContextKeyExpr.and(( CONTEXT_DEBUG_STATE.isEqualTo('running')), ( CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG.toNegated()))));
121
121
  registerDebugCommandPaletteItem(STOP_ID, STOP_LABEL, CONTEXT_IN_DEBUG_MODE, ( ContextKeyExpr.or(( CONTEXT_FOCUSED_SESSION_IS_ATTACH.toNegated()), CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED)));
122
122
  registerDebugCommandPaletteItem(CONTINUE_ID, CONTINUE_LABEL, CONTEXT_IN_DEBUG_MODE, ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
123
123
  registerDebugCommandPaletteItem(FOCUS_REPL_ID, ( localize2WithPath(
@@ -171,7 +171,7 @@ registerDebugViewMenuItem(MenuId.DebugCallStackContext, RESTART_SESSION_ID, REST
171
171
  registerDebugViewMenuItem(MenuId.DebugCallStackContext, DISCONNECT_ID, DISCONNECT_LABEL, 20, ( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session')), undefined, '3_modification');
172
172
  registerDebugViewMenuItem(MenuId.DebugCallStackContext, DISCONNECT_AND_SUSPEND_ID, DISCONNECT_AND_SUSPEND_LABEL, 21, ( ContextKeyExpr.and(( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session')), CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED)), undefined, '3_modification');
173
173
  registerDebugViewMenuItem(MenuId.DebugCallStackContext, STOP_ID, STOP_LABEL, 30, ( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('session')), undefined, '3_modification');
174
- registerDebugViewMenuItem(MenuId.DebugCallStackContext, PAUSE_ID, PAUSE_LABEL, 10, ( ContextKeyExpr.and(( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('thread')), ( CONTEXT_DEBUG_STATE.isEqualTo('running')))));
174
+ registerDebugViewMenuItem(MenuId.DebugCallStackContext, PAUSE_ID, PAUSE_LABEL, 10, ( ContextKeyExpr.and(( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('thread')), ( ContextKeyExpr.and(( CONTEXT_DEBUG_STATE.isEqualTo('running')), ( CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG.toNegated()))))));
175
175
  registerDebugViewMenuItem(MenuId.DebugCallStackContext, CONTINUE_ID, CONTINUE_LABEL, 10, ( ContextKeyExpr.and(( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('thread')), ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')))));
176
176
  registerDebugViewMenuItem(MenuId.DebugCallStackContext, STEP_OVER_ID, STEP_OVER_LABEL, 20, ( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('thread')), ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
177
177
  registerDebugViewMenuItem(MenuId.DebugCallStackContext, STEP_INTO_ID, STEP_INTO_LABEL, 30, ( CONTEXT_CALLSTACK_ITEM_TYPE.isEqualTo('thread')), ( CONTEXT_DEBUG_STATE.isEqualTo('stopped')));
@@ -231,6 +231,41 @@ registerDebugViewMenuItem(MenuId.DebugVariablesContext, BREAK_WHEN_VALUE_IS_ACCE
231
231
  'breakWhenValueIsAccessed',
232
232
  "Break on Value Access"
233
233
  )), 220, CONTEXT_BREAK_WHEN_VALUE_IS_ACCESSED_SUPPORTED, undefined, 'z_commands');
234
+ registerDebugViewMenuItem(MenuId.DebugHoverContext, VIEW_MEMORY_ID, ( localizeWithPath(
235
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
236
+ 'viewMemory',
237
+ "View Binary Data"
238
+ )), 15, CONTEXT_CAN_VIEW_MEMORY, CONTEXT_IN_DEBUG_MODE, 'inline', debugInspectMemory);
239
+ registerDebugViewMenuItem(MenuId.DebugHoverContext, COPY_VALUE_ID, ( localizeWithPath(
240
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
241
+ 'copyValue',
242
+ "Copy Value"
243
+ )), 10, undefined, undefined, '5_cutcopypaste');
244
+ registerDebugViewMenuItem(MenuId.DebugHoverContext, COPY_EVALUATE_PATH_ID, ( localizeWithPath(
245
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
246
+ 'copyAsExpression',
247
+ "Copy as Expression"
248
+ )), 20, CONTEXT_VARIABLE_EVALUATE_NAME_PRESENT, undefined, '5_cutcopypaste');
249
+ registerDebugViewMenuItem(MenuId.DebugHoverContext, ADD_TO_WATCH_ID, ( localizeWithPath(
250
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
251
+ 'addToWatchExpressions',
252
+ "Add to Watch"
253
+ )), 100, CONTEXT_VARIABLE_EVALUATE_NAME_PRESENT, undefined, 'z_commands');
254
+ registerDebugViewMenuItem(MenuId.DebugHoverContext, BREAK_WHEN_VALUE_IS_READ_ID, ( localizeWithPath(
255
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
256
+ 'breakWhenValueIsRead',
257
+ "Break on Value Read"
258
+ )), 200, CONTEXT_BREAK_WHEN_VALUE_IS_READ_SUPPORTED, undefined, 'z_commands');
259
+ registerDebugViewMenuItem(MenuId.DebugHoverContext, BREAK_WHEN_VALUE_CHANGES_ID, ( localizeWithPath(
260
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
261
+ 'breakWhenValueChanges',
262
+ "Break on Value Change"
263
+ )), 210, CONTEXT_BREAK_WHEN_VALUE_CHANGES_SUPPORTED, undefined, 'z_commands');
264
+ registerDebugViewMenuItem(MenuId.DebugHoverContext, BREAK_WHEN_VALUE_IS_ACCESSED_ID, ( localizeWithPath(
265
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
266
+ 'breakWhenValueIsAccessed',
267
+ "Break on Value Access"
268
+ )), 220, CONTEXT_BREAK_WHEN_VALUE_IS_ACCESSED_SUPPORTED, undefined, 'z_commands');
234
269
  registerDebugViewMenuItem(MenuId.DebugWatchContext, ADD_WATCH_ID, ADD_WATCH_LABEL, 10, undefined, undefined, '3_modification');
235
270
  registerDebugViewMenuItem(MenuId.DebugWatchContext, EDIT_EXPRESSION_COMMAND_ID, ( localizeWithPath(
236
271
  'vs/workbench/contrib/debug/browser/debug.contribution',
@@ -407,6 +442,15 @@ configurationRegistry.registerConfiguration({
407
442
  )),
408
443
  default: false
409
444
  },
445
+ 'debug.closeReadonlyTabsOnEnd': {
446
+ type: 'boolean',
447
+ description: ( localizeWithPath(
448
+ 'vs/workbench/contrib/debug/browser/debug.contribution',
449
+ { comment: ['This is the description for a setting'], key: 'closeReadonlyTabsOnEnd' },
450
+ "At the end of a debug session, all the read-only tabs associated with that session will be closed"
451
+ )),
452
+ default: false
453
+ },
410
454
  'debug.inlineValues': {
411
455
  type: 'string',
412
456
  'enum': ['on', 'off', 'auto'],
@@ -117,12 +117,15 @@ let StartDebugActionViewItem = class StartDebugActionViewItem extends BaseAction
117
117
  this.container.style.border = `1px solid ${asCssVariable(selectBorder)}`;
118
118
  selectBoxContainer.style.borderLeft = `1px solid ${asCssVariable(selectBorder)}`;
119
119
  this.container.style.backgroundColor = asCssVariable(selectBackground);
120
- this.debugService.getConfigurationManager().getDynamicProviders().then(providers => {
121
- this.providers = providers;
122
- if (this.providers.length > 0) {
120
+ const configManager = this.debugService.getConfigurationManager();
121
+ const updateDynamicConfigs = () => configManager.getDynamicProviders().then(providers => {
122
+ if (providers.length !== this.providers.length) {
123
+ this.providers = providers;
123
124
  this.updateOptions();
124
125
  }
125
126
  });
127
+ this.toDispose.push(configManager.onDidChangeConfigurationProviders(updateDynamicConfigs));
128
+ updateDynamicConfigs();
126
129
  this.updateOptions();
127
130
  }
128
131
  setActionContext(context) {
@@ -156,6 +159,7 @@ let StartDebugActionViewItem = class StartDebugActionViewItem extends BaseAction
156
159
  }
157
160
  dispose() {
158
161
  this.toDispose = dispose(this.toDispose);
162
+ super.dispose();
159
163
  }
160
164
  updateOptions() {
161
165
  this.selected = 0;
@@ -18,7 +18,7 @@ import { ITextResourcePropertiesService } from 'vscode/vscode/vs/editor/common/s
18
18
  import { IClipboardService } from 'vscode/vscode/vs/platform/clipboard/common/clipboardService';
19
19
  import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
20
20
  import { IQuickInputService } from 'vscode/vscode/vs/platform/quickinput/common/quickInput';
21
- import { IViewsService } from 'vscode/vscode/vs/workbench/common/views';
21
+ import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService';
22
22
  import { isWeb, isWindows } from 'vscode/vscode/vs/base/common/platform';
23
23
  import { showLoadedScriptMenu } from '../common/loadedScriptsPicker.js';
24
24
  import { showDebugSessionMenu } from './debugSessionPicker.js';
@@ -7,6 +7,7 @@ import { parse } from 'vscode/vscode/vs/base/common/json';
7
7
  import { DisposableStore, dispose } from 'vscode/vscode/vs/base/common/lifecycle';
8
8
  import { deepClone } from 'vscode/vscode/vs/base/common/objects';
9
9
  import { joinPath } from 'vscode/vscode/vs/base/common/resources';
10
+ import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
10
11
  import { URI } from 'vscode/vscode/vs/base/common/uri';
11
12
  import { localizeWithPath } from 'vscode/vscode/vs/nls';
12
13
  import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
@@ -17,7 +18,6 @@ import { Extensions } from 'vscode/vscode/vs/platform/jsonschemas/common/jsonCon
17
18
  import { IQuickInputService } from 'vscode/vscode/vs/platform/quickinput/common/quickInput';
18
19
  import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
19
20
  import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
20
- import { ThemeIcon } from 'vscode/vscode/vs/base/common/themables';
21
21
  import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
22
22
  import { IWorkspaceContextService } from 'vscode/vscode/vs/platform/workspace/common/workspace';
23
23
  import { debugConfigure } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
@@ -51,8 +51,10 @@ let ConfigurationManager = class ConfigurationManager {
51
51
  this.getSelectedConfig = () => Promise.resolve(undefined);
52
52
  this.selectedDynamic = false;
53
53
  this._onDidSelectConfigurationName = ( new Emitter());
54
+ this._onDidChangeConfigurationProviders = ( new Emitter());
55
+ this.onDidChangeConfigurationProviders = this._onDidChangeConfigurationProviders.event;
54
56
  this.configProviders = [];
55
- this.toDispose = [];
57
+ this.toDispose = [this._onDidChangeConfigurationProviders];
56
58
  this.initLaunches();
57
59
  this.setCompoundSchemaValues();
58
60
  this.registerListeners();
@@ -71,9 +73,11 @@ let ConfigurationManager = class ConfigurationManager {
71
73
  }
72
74
  registerDebugConfigurationProvider(debugConfigurationProvider) {
73
75
  this.configProviders.push(debugConfigurationProvider);
76
+ this._onDidChangeConfigurationProviders.fire();
74
77
  return {
75
78
  dispose: () => {
76
79
  this.unregisterDebugConfigurationProvider(debugConfigurationProvider);
80
+ this._onDidChangeConfigurationProviders.fire();
77
81
  }
78
82
  };
79
83
  }
@@ -146,15 +150,22 @@ let ConfigurationManager = class ConfigurationManager {
146
150
  }
147
151
  }
148
152
  if (explicitTypes.length) {
149
- return acc.concat(explicitTypes);
153
+ explicitTypes.forEach(t => acc.add(t));
150
154
  }
151
- if (hasGenericEvent) {
155
+ else if (hasGenericEvent) {
152
156
  const debuggerType = e.contributes?.debuggers?.[0].type;
153
- return debuggerType ? acc.concat(debuggerType) : acc;
157
+ if (debuggerType) {
158
+ acc.add(debuggerType);
159
+ }
154
160
  }
155
161
  return acc;
156
- }, []);
157
- return ( debugDynamicExtensionsTypes.map(type => {
162
+ }, ( new Set()));
163
+ for (const configProvider of this.configProviders) {
164
+ if (configProvider.triggerKind === DebugConfigurationProviderTriggerKind.Dynamic) {
165
+ debugDynamicExtensionsTypes.add(configProvider.type);
166
+ }
167
+ }
168
+ return ( [...debugDynamicExtensionsTypes].map(type => {
158
169
  return {
159
170
  label: this.adapterManager.getDebuggerLabel(type),
160
171
  getProvider: async () => {
@@ -3,7 +3,7 @@ import { matchesFuzzy } from 'vscode/vscode/vs/base/common/filters';
3
3
  import { localizeWithPath } from 'vscode/vscode/vs/nls';
4
4
  import { ICommandService } from 'vscode/vscode/vs/platform/commands/common/commands';
5
5
  import { PickerQuickAccessProvider } from 'vscode/vscode/vs/platform/quickinput/browser/pickerQuickAccess';
6
- import { IViewsService } from 'vscode/vscode/vs/workbench/common/views';
6
+ import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService';
7
7
  import { DEBUG_CONSOLE_QUICK_ACCESS_PREFIX, SELECT_AND_START_ID } from './debugCommands.js';
8
8
  import { REPL_VIEW_ID, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
9
9
 
@@ -14,7 +14,7 @@ import { ContextKeyExpr } from 'vscode/vscode/vs/platform/contextkey/common/cont
14
14
  import { IContextMenuService } from 'vscode/vscode/vs/platform/contextview/browser/contextView';
15
15
  import { IUriIdentityService } from 'vscode/vscode/vs/platform/uriIdentity/common/uriIdentity';
16
16
  import { PanelFocusContext } from 'vscode/vscode/vs/workbench/common/contextkeys';
17
- import { IViewsService } from 'vscode/vscode/vs/workbench/common/views';
17
+ import { IViewsService } from 'vscode/vscode/vs/workbench/services/views/common/viewsService';
18
18
  import { openBreakpointSource } from 'vscode/vscode/vs/workbench/contrib/debug/browser/breakpointsView';
19
19
  import { DisassemblyView } from './disassemblyView.js';
20
20
  import { CONTEXT_FOCUSED_STACK_FRAME_HAS_INSTRUCTION_POINTER_REFERENCE, CONTEXT_IN_DEBUG_MODE, CONTEXT_DEBUG_STATE, CONTEXT_DISASSEMBLE_REQUEST_SUPPORTED, CONTEXT_LANGUAGE_SUPPORTS_DISASSEMBLE_REQUEST, CONTEXT_CALLSTACK_ITEM_TYPE, CONTEXT_DEBUGGERS_AVAILABLE, CONTEXT_DISASSEMBLY_VIEW_FOCUS, IDebugService, REPL_VIEW_ID, WATCH_VIEW_ID, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, BREAKPOINT_EDITOR_CONTRIBUTION_ID, EDITOR_CONTRIBUTION_ID, CONTEXT_EXCEPTION_WIDGET_VISIBLE } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
@@ -155,6 +155,40 @@ class LogPointAction extends EditorAction {
155
155
  }
156
156
  }
157
157
  }
158
+ class TriggerByBreakpointAction extends EditorAction {
159
+ constructor() {
160
+ super({
161
+ id: 'editor.debug.action.triggerByBreakpoint',
162
+ label: ( localizeWithPath(
163
+ 'vs/workbench/contrib/debug/browser/debugEditorActions',
164
+ 'triggerByBreakpointEditorAction',
165
+ "Debug: Add Triggered Breakpoint..."
166
+ )),
167
+ precondition: CONTEXT_DEBUGGERS_AVAILABLE,
168
+ alias: 'Debug: Triggered Breakpoint...',
169
+ menuOpts: [
170
+ {
171
+ menuId: MenuId.MenubarNewBreakpointMenu,
172
+ title: ( localizeWithPath(
173
+ 'vs/workbench/contrib/debug/browser/debugEditorActions',
174
+ { key: 'miTriggerByBreakpoint', comment: ['&& denotes a mnemonic'] },
175
+ "&&Triggered Breakpoint..."
176
+ )),
177
+ group: '1_breakpoints',
178
+ order: 4,
179
+ when: CONTEXT_DEBUGGERS_AVAILABLE,
180
+ }
181
+ ]
182
+ });
183
+ }
184
+ async run(accessor, editor) {
185
+ const debugService = accessor.get(IDebugService);
186
+ const position = editor.getPosition();
187
+ if (position && editor.hasModel() && debugService.canSetBreakpointsIn(editor.getModel())) {
188
+ editor.getContribution(BREAKPOINT_EDITOR_CONTRIBUTION_ID)?.showBreakpointWidget(position.lineNumber, position.column, 3 );
189
+ }
190
+ }
191
+ }
158
192
  class EditBreakpointAction extends EditorAction {
159
193
  constructor() {
160
194
  super({
@@ -591,6 +625,7 @@ registerAction2(ToggleDisassemblyViewSourceCodeAction);
591
625
  registerAction2(ToggleBreakpointAction);
592
626
  registerEditorAction(ConditionalBreakpointAction);
593
627
  registerEditorAction(LogPointAction);
628
+ registerEditorAction(TriggerByBreakpointAction);
594
629
  registerEditorAction(EditBreakpointAction);
595
630
  registerEditorAction(RunToCursorAction);
596
631
  registerEditorAction(StepIntoTargetsAction);