@codingame/monaco-vscode-debug-service-override 1.83.16 → 1.85.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/package.json +4 -4
  2. package/vscode/src/vs/editor/common/services/languageFeaturesService.js +1 -0
  3. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +2 -2
  4. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +154 -11
  5. package/vscode/src/vs/workbench/contrib/debug/browser/callStackView.js +1 -0
  6. package/vscode/src/vs/workbench/contrib/debug/browser/debug.contribution.js +39 -28
  7. package/vscode/src/vs/workbench/contrib/debug/browser/debugAdapterManager.js +1 -1
  8. package/vscode/src/vs/workbench/contrib/debug/browser/debugCommands.js +41 -4
  9. package/vscode/src/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +1 -0
  10. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorActions.js +13 -15
  11. package/vscode/src/vs/workbench/contrib/debug/browser/debugEditorContribution.js +8 -6
  12. package/vscode/src/vs/workbench/contrib/debug/browser/debugHover.js +1 -1
  13. package/vscode/src/vs/workbench/contrib/debug/browser/debugService.js +5 -0
  14. package/vscode/src/vs/workbench/contrib/debug/browser/debugSession.js +121 -49
  15. package/vscode/src/vs/workbench/contrib/debug/browser/debugTitle.js +1 -1
  16. package/vscode/src/vs/workbench/contrib/debug/browser/debugToolBar.js +51 -24
  17. package/vscode/src/vs/workbench/contrib/debug/browser/debugViewlet.js +87 -5
  18. package/vscode/src/vs/workbench/contrib/debug/browser/disassemblyView.js +4 -1
  19. package/vscode/src/vs/workbench/contrib/debug/browser/exceptionWidget.js +4 -1
  20. package/vscode/src/vs/workbench/contrib/debug/browser/linkDetector.js +2 -1
  21. package/vscode/src/vs/workbench/contrib/debug/browser/media/debugToolBar.css.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css.js +1 -1
  23. package/vscode/src/vs/workbench/contrib/debug/browser/repl.js +10 -9
  24. package/vscode/src/vs/workbench/contrib/debug/browser/statusbarColorProvider.js +1 -1
  25. package/vscode/src/vs/workbench/contrib/debug/browser/variablesView.js +1 -0
  26. package/vscode/src/vs/workbench/contrib/debug/browser/watchExpressionsView.js +1 -0
  27. package/vscode/src/vs/workbench/contrib/debug/browser/welcomeView.js +2 -2
  28. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +17 -4
  29. package/vscode/src/vs/workbench/contrib/debug/common/debugViewModel.js +3 -1
  30. package/vscode/src/vs/workbench/contrib/debug/common/debugger.js +4 -1
@@ -3,23 +3,26 @@ import { DisposableStore, dispose } from 'monaco-editor/esm/vs/base/common/lifec
3
3
  import './media/debugViewlet.css.js';
4
4
  import * as nls from 'monaco-editor/esm/vs/nls.js';
5
5
  import { createActionViewItem } from 'monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js';
6
- import { registerAction2, Action2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
6
+ import { MenuRegistry, MenuId, registerAction2, Action2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
7
7
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
8
8
  import { ContextKeyExpr, IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
9
9
  import { IContextMenuService, IContextViewService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
10
10
  import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
11
11
  import { IProgressService } from 'monaco-editor/esm/vs/platform/progress/common/progress.js';
12
+ import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
12
13
  import { IStorageService } from 'monaco-editor/esm/vs/platform/storage/common/storage.js';
13
14
  import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
14
15
  import { IThemeService } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
15
16
  import { IWorkspaceContextService } from 'monaco-editor/esm/vs/platform/workspace/common/workspace.js';
16
17
  import { ViewsSubMenu, ViewPaneContainer } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPaneContainer';
18
+ import { WorkbenchStateContext } from 'vscode/vscode/vs/workbench/common/contextkeys';
17
19
  import { IViewsService, IViewDescriptorService } from 'vscode/vscode/vs/workbench/common/views';
18
20
  import { StartDebugActionViewItem, FocusSessionActionViewItem } from './debugActionViewItems.js';
19
- import { DEBUG_START_COMMAND_ID, FOCUS_SESSION_ID, STOP_ID, DISCONNECT_ID } from './debugCommands.js';
21
+ import { DEBUG_START_COMMAND_ID, DEBUG_START_LABEL, DEBUG_CONFIGURE_COMMAND_ID, DEBUG_CONFIGURE_LABEL, FOCUS_SESSION_ID, STOP_ID, DISCONNECT_ID } from './debugCommands.js';
22
+ import { debugConfigure } from 'vscode/vscode/vs/workbench/contrib/debug/browser/debugIcons';
20
23
  import { createDisconnectMenuItemAction } from './debugToolBar.js';
21
24
  import { WelcomeView } from './welcomeView.js';
22
- import { REPL_VIEW_ID, VIEWLET_ID, CONTEXT_DEBUG_UX_KEY, BREAKPOINTS_VIEW_ID, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
25
+ import { VIEWLET_ID, CONTEXT_DEBUG_UX, CONTEXT_DEBUG_STATE, getStateLabel, CONTEXT_DEBUGGERS_AVAILABLE, IDebugService, REPL_VIEW_ID, CONTEXT_DEBUG_UX_KEY, BREAKPOINTS_VIEW_ID } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
23
26
  import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
24
27
  import { IWorkbenchLayoutService } from 'vscode/vscode/vs/workbench/services/layout/browser/layoutService';
25
28
 
@@ -34,13 +37,13 @@ let DebugViewPaneContainer = class DebugViewPaneContainer extends ViewPaneContai
34
37
  this.stopActionViewItemDisposables = this._register(( new DisposableStore()));
35
38
  this._register(this.debugService.onDidChangeState(state => this.onDebugServiceStateChange(state)));
36
39
  this._register(this.contextKeyService.onDidChangeContext(e => {
37
- if (e.affectsSome(( new Set([CONTEXT_DEBUG_UX_KEY])))) {
40
+ if (e.affectsSome(( new Set([CONTEXT_DEBUG_UX_KEY, 'inDebugMode'])))) {
38
41
  this.updateTitleArea();
39
42
  }
40
43
  }));
41
44
  this._register(this.contextService.onDidChangeWorkbenchState(() => this.updateTitleArea()));
42
45
  this._register(this.configurationService.onDidChangeConfiguration(e => {
43
- if (e.affectsConfiguration('debug.toolBarLocation')) {
46
+ if (e.affectsConfiguration('debug.toolBarLocation') || e.affectsConfiguration('debug.hideLauncherWhileDebugging')) {
44
47
  this.updateTitleArea();
45
48
  }
46
49
  }));
@@ -140,6 +143,85 @@ DebugViewPaneContainer = ( __decorate([
140
143
  ( __param(12, IContextKeyService)),
141
144
  ( __param(13, IViewDescriptorService))
142
145
  ], DebugViewPaneContainer));
146
+ ( MenuRegistry.appendMenuItem(MenuId.ViewContainerTitle, {
147
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('viewContainer', VIEWLET_ID)), ( CONTEXT_DEBUG_UX.notEqualsTo('simple')), ( WorkbenchStateContext.notEqualsTo('empty')), ( ContextKeyExpr.or(( CONTEXT_DEBUG_STATE.isEqualTo('inactive')), ( ContextKeyExpr.notEquals('config.debug.toolBarLocation', 'docked')))), ( ContextKeyExpr.or(
148
+ ContextKeyExpr.not('config.debug.hideLauncherWhileDebugging'),
149
+ ContextKeyExpr.not('inDebugMode')
150
+ )))),
151
+ order: 10,
152
+ group: 'navigation',
153
+ command: {
154
+ precondition: ( CONTEXT_DEBUG_STATE.notEqualsTo(getStateLabel(1 ))),
155
+ id: DEBUG_START_COMMAND_ID,
156
+ title: DEBUG_START_LABEL
157
+ }
158
+ }));
159
+ registerAction2(class extends Action2 {
160
+ constructor() {
161
+ super({
162
+ id: DEBUG_CONFIGURE_COMMAND_ID,
163
+ title: {
164
+ value: DEBUG_CONFIGURE_LABEL,
165
+ original: 'Open \'launch.json\'',
166
+ mnemonicTitle: ( nls.localizeWithPath(
167
+ 'vs/workbench/contrib/debug/browser/debugViewlet',
168
+ { key: 'miOpenConfigurations', comment: ['&& denotes a mnemonic'] },
169
+ "Open &&Configurations"
170
+ ))
171
+ },
172
+ f1: true,
173
+ icon: debugConfigure,
174
+ precondition: ( CONTEXT_DEBUG_UX.notEqualsTo('simple')),
175
+ menu: [{
176
+ id: MenuId.ViewContainerTitle,
177
+ group: 'navigation',
178
+ order: 20,
179
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('viewContainer', VIEWLET_ID)), ( CONTEXT_DEBUG_UX.notEqualsTo('simple')), ( WorkbenchStateContext.notEqualsTo('empty')), ( ContextKeyExpr.or(( CONTEXT_DEBUG_STATE.isEqualTo('inactive')), ( ContextKeyExpr.notEquals('config.debug.toolBarLocation', 'docked'))))))
180
+ }, {
181
+ id: MenuId.ViewContainerTitle,
182
+ order: 20,
183
+ when: ( ContextKeyExpr.and(( ContextKeyExpr.equals('viewContainer', VIEWLET_ID)), ( CONTEXT_DEBUG_STATE.notEqualsTo('inactive')), ( ContextKeyExpr.equals('config.debug.toolBarLocation', 'docked'))))
184
+ }, {
185
+ id: MenuId.MenubarDebugMenu,
186
+ group: '2_configuration',
187
+ order: 1,
188
+ when: CONTEXT_DEBUGGERS_AVAILABLE
189
+ }]
190
+ });
191
+ }
192
+ async run(accessor) {
193
+ const debugService = accessor.get(IDebugService);
194
+ const quickInputService = accessor.get(IQuickInputService);
195
+ const configurationManager = debugService.getConfigurationManager();
196
+ let launch;
197
+ if (configurationManager.selectedConfiguration.name) {
198
+ launch = configurationManager.selectedConfiguration.launch;
199
+ }
200
+ else {
201
+ const launches = configurationManager.getLaunches().filter(l => !l.hidden);
202
+ if (launches.length === 1) {
203
+ launch = launches[0];
204
+ }
205
+ else {
206
+ const picks = ( launches.map(l => ({ label: l.name, launch: l })));
207
+ const picked = await quickInputService.pick(picks, {
208
+ activeItem: picks[0],
209
+ placeHolder: ( nls.localizeWithPath(
210
+ 'vs/workbench/contrib/debug/browser/debugViewlet',
211
+ { key: 'selectWorkspaceFolder', comment: ['User picks a workspace folder or a workspace configuration file here. Workspace configuration files can contain settings and thus a launch.json configuration can be written into one.'] },
212
+ "Select a workspace folder to create a launch.json file in or add it to the workspace config file"
213
+ ))
214
+ });
215
+ if (picked) {
216
+ launch = picked.launch;
217
+ }
218
+ }
219
+ }
220
+ if (launch) {
221
+ await launch.openConfigFile({ preserveFocus: false });
222
+ }
223
+ }
224
+ });
143
225
  registerAction2(class extends Action2 {
144
226
  constructor() {
145
227
  super({
@@ -403,7 +403,7 @@ let DisassemblyView = class DisassemblyView extends EditorPane {
403
403
  const startN = binarySearch2(da.length, i => Number(da.row(i).address - firstAddr));
404
404
  const start = startN < 0 ? ~startN : startN;
405
405
  const endN = binarySearch2(da.length, i => Number(da.row(i).address - lastAddr));
406
- const end = endN < 0 ? ~endN : endN;
406
+ const end = endN < 0 ? ~endN : endN + 1;
407
407
  const toDelete = end - start;
408
408
  let lastLocated;
409
409
  for (let i = start - 1; i >= 0; i--) {
@@ -609,6 +609,9 @@ let InstructionRenderer = class InstructionRenderer extends Disposable {
609
609
  let textModel = undefined;
610
610
  const sourceSB = ( new StringBuilder(10000));
611
611
  const ref = await this.textModelService.createModelReference(sourceURI);
612
+ if (templateData.currentElement.element !== element) {
613
+ return;
614
+ }
612
615
  textModel = ref.object.textEditorModel;
613
616
  templateData.cellDisposable.push(ref);
614
617
  if (textModel && templateData.currentElement.element === element) {
@@ -107,7 +107,10 @@ let ExceptionWidget = class ExceptionWidget extends ZoneWidget {
107
107
  this.container?.focus();
108
108
  }
109
109
  hasFocus() {
110
- return dom.isAncestor(document.activeElement, this.container);
110
+ if (!this.container) {
111
+ return false;
112
+ }
113
+ return dom.isAncestorOfActiveElement(this.container);
111
114
  }
112
115
  };
113
116
  ExceptionWidget = ( __decorate([
@@ -12,6 +12,7 @@ import { StandardKeyboardEvent } from 'monaco-editor/esm/vs/base/browser/keyboar
12
12
  import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
13
13
  import { ITunnelService } from 'vscode/vscode/vs/platform/tunnel/common/tunnel';
14
14
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
15
+ import { getWindow } from 'monaco-editor/esm/vs/base/browser/dom.js';
15
16
 
16
17
  const CONTROL_CODES = '\\u0000-\\u0020\\u007f-\\u009f';
17
18
  const WEB_LINK_REGEX = ( new RegExp(
@@ -190,7 +191,7 @@ let LinkDetector = class LinkDetector {
190
191
  link.onmousemove = (event) => { link.classList.toggle('pointer', platform.isMacintosh ? event.metaKey : event.ctrlKey); };
191
192
  link.onmouseleave = () => link.classList.remove('pointer');
192
193
  link.onclick = (event) => {
193
- const selection = window.getSelection();
194
+ const selection = getWindow(link).getSelection();
194
195
  if (!selection || selection.type === 'Range') {
195
196
  return;
196
197
  }
@@ -1,6 +1,6 @@
1
1
  import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
2
 
3
- var css = ".monaco-workbench .debug-toolbar{border-radius:4px;display:flex;height:32px;padding-left:7px;position:absolute;z-index:39}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item{margin-right:4px}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container{margin-right:7px}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container .monaco-select-box,.monaco-workbench .start-debug-action-item .select-container .monaco-select-box{padding:0 22px 0 6px}.monaco-workbench .debug-toolbar .drag-area{align-items:center;cursor:grab;display:flex;justify-content:center;opacity:.5;width:16px}.monaco-workbench .debug-toolbar .drag-area.dragged{cursor:grabbing}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item .action-label{align-items:center;background-position:50%;background-repeat:no-repeat;background-size:16px;display:flex;justify-content:center;margin-right:0}";
3
+ var css = ".monaco-workbench .debug-toolbar{-webkit-app-region:no-drag;border-radius:4px;display:flex;height:26px;padding-left:7px;position:absolute;z-index:3000}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item{margin-right:4px}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container{margin-right:7px}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item.select-container .monaco-select-box,.monaco-workbench .start-debug-action-item .select-container .monaco-select-box{padding:0 22px 0 6px}.monaco-workbench .debug-toolbar .drag-area{align-items:center;cursor:grab;display:flex;justify-content:center;opacity:.5;width:16px}.monaco-workbench .debug-toolbar .drag-area.dragged{cursor:grabbing}.monaco-workbench .debug-toolbar .monaco-action-bar .action-item .action-label{align-items:center;background-position:50%;background-repeat:no-repeat;background-size:16px;display:flex;justify-content:center;margin-right:0}";
4
4
  n(css,{});
5
5
 
6
6
  export { css, css as default };
@@ -1,6 +1,6 @@
1
1
  import n from '../../../../../../../../external/rollup-plugin-styles/dist/runtime/inject-css.js';
2
2
 
3
- var css = ".debug-pane,.debug-view-content{height:100%}.monaco-workbench .debug-action.notification:after{background-color:#c63;border:1px solid #fff;border-radius:10px;content:\"\";height:6px;position:absolute;right:6px;top:10px;width:6px}.monaco-workbench .part>.title>.title-actions .start-debug-action-item{align-items:center;display:flex;flex-shrink:1;line-height:20px}.monaco-workbench.mac .part>.title>.title-actions .start-debug-action-item{border-radius:4px}.monaco-workbench .part>.title>.title-actions .start-debug-action-item .codicon{flex-shrink:0;line-height:inherit}.monaco-workbench .part>.title>.title-actions .start-debug-action-item .codicon-debug-start{height:21px;padding-left:2px;width:18px}.monaco-workbench .monaco-action-bar .start-debug-action-item .configuration .monaco-select-box{border:none;cursor:pointer;line-height:inherit;margin-top:0;min-width:90px;padding-bottom:0;padding-top:0}.monaco-workbench.safari .monaco-action-bar .start-debug-action-item .configuration .monaco-select-box{margin-bottom:0}.monaco-workbench .monaco-action-bar .start-debug-action-item .configuration.disabled .monaco-select-box{cursor:auto;font-style:italic;opacity:.7}.debug-pane .line-number{padding-left:4px;padding-right:4px}.debug-pane .disabled{cursor:auto;opacity:.65}.debug-pane .monaco-list:focus .monaco-list-row.selected .load-all,.debug-pane .monaco-list:focus .monaco-list-row.selected .state.label,.debug-pane .monaco-list:focus .monaco-list-row.selected.focused .state.label{color:inherit}.debug-pane .call-stack-state-message{flex:1;margin:0 10px;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.debug-pane .call-stack-state-message>.label{border-radius:3px;font-size:9px;padding:1px 2px}.debug-pane .debug-call-stack .session,.debug-pane .debug-call-stack .thread{align-items:center;display:flex}.debug-pane .debug-call-stack .session>.name,.debug-pane .debug-call-stack .thread>.name{flex:1;overflow:hidden;text-overflow:ellipsis}.debug-pane .debug-call-stack .session>.state.label,.debug-pane .debug-call-stack .thread>.state.label{align-self:center;font-size:.8em;margin:0 10px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.debug-pane .debug-call-stack .monaco-list-row:hover .stack-frame.has-actions .file .line-number,.debug-pane .debug-call-stack .monaco-list-row:hover .state.label{display:none}.debug-pane .monaco-list-row .monaco-action-bar{display:none;flex-shrink:0;margin-right:6px}.debug-pane .monaco-list-row.focused .monaco-action-bar,.debug-pane .monaco-list-row:hover .monaco-action-bar{display:initial}.debug-pane .monaco-list-row .monaco-action-bar .action-label{padding:2px}.debug-pane .session .codicon{line-height:22px;margin-right:2px}.debug-pane .debug-call-stack .stack-frame{display:flex;overflow:hidden;padding-right:.8em;text-overflow:ellipsis}.debug-pane .debug-call-stack .stack-frame.label{font-style:italic;text-align:center}.debug-pane .debug-call-stack .stack-frame .label{flex:1;flex-shrink:0;min-width:fit-content}.debug-pane .debug-call-stack .stack-frame.subtle{font-style:italic}.debug-pane .debug-call-stack .stack-frame.label>.file{display:none}.debug-pane .debug-call-stack .stack-frame>.file{display:flex;flex-wrap:wrap;justify-content:flex-end;overflow:hidden}.debug-pane .debug-call-stack .stack-frame>.file>.line-number.unavailable{display:none}.debug-pane .debug-call-stack .stack-frame>.file>.file-name{margin-right:.8em;overflow:hidden;text-overflow:ellipsis}.debug-pane .debug-call-stack .stack-frame>.file:not(:first-child){margin-left:.8em}.debug-pane .debug-call-stack .load-all{text-align:center}.debug-pane .debug-call-stack .show-more{opacity:.5;text-align:center}.debug-pane .debug-call-stack .error{font-style:italic;overflow:hidden;text-overflow:ellipsis}.debug-pane .scope{font-size:11px;font-weight:700}.debug-pane .monaco-list-row .expression .actionbar-spacer{flex-grow:1}.debug-pane .monaco-list-row .expression .value{overflow:hidden;text-overflow:ellipsis;white-space:pre}.debug-pane .monaco-list-row .expression .value.changed{border-radius:4px}.debug-pane .monaco-inputbox{line-height:normal;width:100%}.debug-pane .inputBoxContainer{box-sizing:border-box;flex-grow:1}.debug-pane .debug-watch .monaco-inputbox{font-family:var(--monaco-monospace-font)}.debug-pane .monaco-inputbox>.ibwrapper{height:19px}.debug-pane .monaco-inputbox>.ibwrapper>.input{color:initial;padding:0}.debug-pane .watch-expression{display:flex}.debug-pane .watch-expression .expression{flex:1}.debug-pane .debug-variables .scope .error{font-family:var(--monaco-monospace-font);font-style:italic;font-weight:400;overflow:hidden;text-overflow:ellipsis}.debug-pane .monaco-list-row{line-height:22px}.debug-pane .debug-breakpoints .monaco-list-row .breakpoint{padding-left:2px}.debug-pane .debug-breakpoints .breakpoint.exception{padding-left:21px}.debug-pane .debug-breakpoints .breakpoint{align-items:center;display:flex;flex:1;padding-right:.8em}.debug-pane .debug-breakpoints .breakpoint input{flex-shrink:0}.debug-pane .debug-breakpoints .breakpoint>.codicon{align-items:center;display:flex;height:19px;justify-content:center;min-width:19px;width:19px}.debug-pane .debug-breakpoints .breakpoint>.access-type,.debug-pane .debug-breakpoints .breakpoint>.condition,.debug-pane .debug-breakpoints .breakpoint>.file-path{flex:1;margin-left:.9em;opacity:.7;overflow:hidden;text-overflow:ellipsis}.debug-pane .debug-breakpoints .breakpoint .name{overflow:hidden;text-overflow:ellipsis}.debug-pane .pane-header .breakpoint-warning{margin-left:3px}.debug-pane .pane-header .breakpoint-warning .monaco-icon-label .codicon{align-items:center;display:flex}";
3
+ var css = ".debug-pane,.debug-view-content{height:100%}.monaco-workbench .debug-action.notification:after{background-color:#c63;border:1px solid #fff;border-radius:10px;content:\"\";height:6px;position:absolute;right:6px;top:10px;width:6px}.monaco-workbench .part>.title>.title-actions .start-debug-action-item{align-items:center;display:flex;flex-shrink:1;line-height:20px}.monaco-workbench.mac .part>.title>.title-actions .start-debug-action-item{border-radius:4px}.monaco-workbench .part>.title>.title-actions .start-debug-action-item .codicon{flex-shrink:0;line-height:inherit}.monaco-workbench .part>.title>.title-actions .start-debug-action-item .codicon-debug-start{height:21px;padding-left:2px;width:18px}.monaco-workbench .monaco-action-bar .start-debug-action-item .configuration .monaco-select-box{border:none;cursor:pointer;line-height:inherit;margin-top:0;min-width:90px;padding-bottom:0;padding-top:0}.monaco-workbench.safari .monaco-action-bar .start-debug-action-item .configuration .monaco-select-box{margin-bottom:0}.monaco-workbench .monaco-action-bar .start-debug-action-item .configuration.disabled .monaco-select-box{cursor:auto;font-style:italic;opacity:.7}.debug-pane .line-number{padding-left:4px;padding-right:4px}.debug-pane .disabled{cursor:auto;opacity:.65}.debug-pane .monaco-list:focus .monaco-list-row.selected .load-all,.debug-pane .monaco-list:focus .monaco-list-row.selected .state.label,.debug-pane .monaco-list:focus .monaco-list-row.selected.focused .state.label{color:inherit}.debug-pane .call-stack-state-message{flex:1;margin:0 10px;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.debug-pane .call-stack-state-message>.label{border-radius:3px;font-size:9px;padding:1px 2px}.debug-pane .debug-call-stack .session,.debug-pane .debug-call-stack .thread{align-items:center;display:flex}.debug-pane .debug-call-stack .session>.name,.debug-pane .debug-call-stack .thread>.name{flex:1;overflow:hidden;text-overflow:ellipsis}.debug-pane .debug-call-stack .session>.state.label,.debug-pane .debug-call-stack .thread>.state.label{align-self:center;font-size:.8em;margin:0 10px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.debug-pane .debug-call-stack .monaco-list-row:hover .stack-frame.has-actions .file .line-number,.debug-pane .debug-call-stack .monaco-list-row:hover .state.label{display:none}.debug-pane .monaco-list-row .monaco-action-bar{display:none;flex-shrink:0;margin-right:6px}.debug-pane .monaco-list-row.focused .monaco-action-bar,.debug-pane .monaco-list-row:hover .monaco-action-bar{display:initial}.debug-pane .monaco-list-row .monaco-action-bar .action-label{padding:2px}.debug-pane .session .codicon{line-height:22px;margin-right:2px}.debug-pane .debug-call-stack .stack-frame{display:flex;overflow:hidden;padding-right:.8em;text-overflow:ellipsis}.debug-pane .debug-call-stack .stack-frame.label{font-style:italic;text-align:center}.debug-pane .debug-call-stack .stack-frame .label{flex:1;flex-shrink:0;min-width:fit-content}.debug-pane .debug-call-stack .stack-frame.subtle{font-style:italic}.debug-pane .debug-call-stack .stack-frame.label>.file{display:none}.debug-pane .debug-call-stack .stack-frame>.file{display:flex;flex-wrap:wrap;justify-content:flex-end;overflow:hidden}.debug-pane .debug-call-stack .stack-frame>.file>.line-number.unavailable{display:none}.debug-pane .debug-call-stack .stack-frame>.file>.file-name{margin-right:.8em;overflow:hidden;text-overflow:ellipsis}.debug-pane .debug-call-stack .stack-frame>.file:not(:first-child){margin-left:.8em}.debug-pane .debug-call-stack .load-all{text-align:center}.debug-pane .debug-call-stack .show-more{opacity:.5;text-align:center}.debug-pane .debug-call-stack .error{font-style:italic;overflow:hidden;text-overflow:ellipsis}.debug-pane .scope{font-size:11px;font-weight:700}.debug-pane .monaco-list-row .expression .actionbar-spacer{flex-grow:1}.debug-pane .monaco-list-row .expression .value{overflow:hidden;text-overflow:ellipsis;white-space:pre}.debug-pane .monaco-list-row .expression .value.changed{border-radius:4px}.debug-pane .monaco-inputbox{line-height:normal;width:100%}.debug-pane .inputBoxContainer{box-sizing:border-box;flex-grow:1}.debug-pane .debug-watch .monaco-inputbox{font-family:var(--monaco-monospace-font)}.debug-pane .monaco-inputbox>.ibwrapper{height:19px}.debug-pane .monaco-inputbox>.ibwrapper>.input{color:initial;padding:0}.debug-pane .watch-expression{display:flex}.debug-pane .watch-expression .expression{flex:1}.debug-pane .debug-variables .scope .error{font-family:var(--monaco-monospace-font);font-style:italic;font-weight:400;overflow:hidden;text-overflow:ellipsis}.debug-pane .monaco-list-row{line-height:22px}.debug-pane .debug-breakpoints .monaco-list-row .breakpoint{padding-left:2px}.debug-pane .debug-breakpoints .breakpoint.exception{padding-left:21px}.debug-pane .debug-breakpoints .breakpoint{align-items:center;display:flex;flex:1;padding-right:.8em}.debug-pane .debug-breakpoints .breakpoint input{flex-shrink:0}.debug-pane .debug-breakpoints .breakpoint>.codicon{align-items:center;display:flex;height:19px;justify-content:center;min-width:19px;width:19px}.debug-pane .debug-breakpoints .breakpoint>.access-type{margin-left:.9em;opacity:.7;overflow:hidden;text-overflow:ellipsis}.debug-pane .debug-breakpoints .breakpoint>.condition,.debug-pane .debug-breakpoints .breakpoint>.file-path{flex:1;margin-left:.9em;opacity:.7;overflow:hidden;text-overflow:ellipsis}.debug-pane .debug-breakpoints .breakpoint .name{overflow:hidden;text-overflow:ellipsis}.debug-pane .pane-header .breakpoint-warning{margin-left:3px}.debug-pane .pane-header .breakpoint-warning .monaco-icon-label .codicon{align-items:center;display:flex}";
4
4
  n(css,{});
5
5
 
6
6
  export { css, css as default };
@@ -54,6 +54,7 @@ import { Variable } from '../common/debugModel.js';
54
54
  import { ReplEvaluationResult, ReplGroup } from '../common/replModel.js';
55
55
  import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
56
56
  import { registerNavigableContainer } from 'vscode/vscode/vs/workbench/browser/actions/widgetNavigationCommands';
57
+ import { IAccessibleNotificationService } from 'monaco-editor/esm/vs/platform/accessibility/common/accessibility.js';
57
58
 
58
59
  var Repl_1, ReplOptions_1;
59
60
  const $ = dom.$;
@@ -408,6 +409,7 @@ let Repl = class Repl extends FilterViewPane {
408
409
  return this.replInput;
409
410
  }
410
411
  focus() {
412
+ super.focus();
411
413
  setTimeout(() => this.replInput.focus(), 0);
412
414
  }
413
415
  getActionViewItem(action) {
@@ -464,18 +466,20 @@ let Repl = class Repl extends FilterViewPane {
464
466
  this._register(registerNavigableContainer({
465
467
  focusNotifiers: [this, this.filterWidget],
466
468
  focusNextWidget: () => {
469
+ const element = this.tree?.getHTMLElement();
467
470
  if (this.filterWidget.hasFocus()) {
468
471
  this.tree?.domFocus();
469
472
  }
470
- else if (this.tree?.getHTMLElement() === document.activeElement) {
473
+ else if (element && dom.isActiveElement(element)) {
471
474
  this.focus();
472
475
  }
473
476
  },
474
477
  focusPreviousWidget: () => {
478
+ const element = this.tree?.getHTMLElement();
475
479
  if (this.replInput.hasTextFocus()) {
476
480
  this.tree?.domFocus();
477
481
  }
478
- else if (this.tree?.getHTMLElement() === document.activeElement) {
482
+ else if (element && dom.isActiveElement(element)) {
479
483
  this.focusFilter();
480
484
  }
481
485
  }
@@ -530,7 +534,7 @@ let Repl = class Repl extends FilterViewPane {
530
534
  this._register(tree.onContextMenu(e => this.onContextMenu(e)));
531
535
  let lastSelectedString;
532
536
  this._register(tree.onMouseClick(() => {
533
- const selection = window.getSelection();
537
+ const selection = dom.getWindow(this.treeContainer).getSelection();
534
538
  if (!selection || selection.type !== 'Range' || lastSelectedString === ( (selection.toString()))) {
535
539
  this.replInput.focus();
536
540
  }
@@ -861,12 +865,9 @@ registerAction2(class extends ViewAction {
861
865
  });
862
866
  }
863
867
  runInView(_accessor, view) {
868
+ const accessibleNotificationService = _accessor.get(IAccessibleNotificationService);
864
869
  view.clearRepl();
865
- aria.status(( (localizeWithPath(
866
- 'vs/workbench/contrib/debug/browser/repl',
867
- 'debugConsoleCleared',
868
- "Debug console was cleared"
869
- ))));
870
+ accessibleNotificationService.notify("clear" );
870
871
  }
871
872
  });
872
873
  registerAction2(class extends ViewAction {
@@ -950,7 +951,7 @@ registerAction2(class extends Action2 {
950
951
  async run(accessor, element) {
951
952
  const clipboardService = accessor.get(IClipboardService);
952
953
  const debugService = accessor.get(IDebugService);
953
- const nativeSelection = window.getSelection();
954
+ const nativeSelection = dom.getActiveWindow().getSelection();
954
955
  const selectedText = nativeSelection?.toString();
955
956
  if (selectedText && selectedText.length > 0) {
956
957
  return clipboardService.writeText(selectedText);
@@ -93,7 +93,7 @@ let StatusBarColorProvider = class StatusBarColorProvider {
93
93
  this.enabled = isInDebugMode;
94
94
  }
95
95
  const isInCommandCenter = debugConfig.toolBarLocation === 'commandCenter';
96
- this.layoutService.container.style.setProperty(asCssVariableName(COMMAND_CENTER_BACKGROUND), isInCommandCenter && isInDebugMode
96
+ this.layoutService.mainContainer.style.setProperty(asCssVariableName(COMMAND_CENTER_BACKGROUND), isInCommandCenter && isInDebugMode
97
97
  ? asCssVariable(COMMAND_CENTER_DEBUGGING_BACKGROUND)
98
98
  : '');
99
99
  }
@@ -136,6 +136,7 @@ let VariablesView = class VariablesView extends ViewPane {
136
136
  this.tree.layout(width, height);
137
137
  }
138
138
  focus() {
139
+ super.focus();
139
140
  this.tree.domFocus();
140
141
  }
141
142
  collapseAll() {
@@ -134,6 +134,7 @@ let WatchExpressionsView = class WatchExpressionsView extends ViewPane {
134
134
  this.tree.layout(height, width);
135
135
  }
136
136
  focus() {
137
+ super.focus();
137
138
  this.tree.domFocus();
138
139
  }
139
140
  collapseAll() {
@@ -4,7 +4,7 @@ import { IKeybindingService } from 'monaco-editor/esm/vs/platform/keybinding/com
4
4
  import { IContextMenuService } from 'monaco-editor/esm/vs/platform/contextview/browser/contextView.js';
5
5
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
6
6
  import { RawContextKey, IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
7
- import { localizeWithPath } from 'monaco-editor/esm/vs/nls.js';
7
+ import { localize2WithPath } from 'monaco-editor/esm/vs/nls.js';
8
8
  import { IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
9
9
  import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
10
10
  import { ViewPane } from 'vscode/vscode/vs/workbench/browser/parts/views/viewPane';
@@ -22,7 +22,7 @@ const CONTEXT_DEBUG_START_LANGUAGE = ( new RawContextKey(debugStartLanguageKey,
22
22
  const CONTEXT_DEBUGGER_INTERESTED_IN_ACTIVE_EDITOR = ( new RawContextKey('debuggerInterestedInActiveEditor', false));
23
23
  let WelcomeView = class WelcomeView extends ViewPane {
24
24
  static { this.ID = 'workbench.debug.welcome'; }
25
- static { this.LABEL = ( localizeWithPath('vs/workbench/contrib/debug/browser/welcomeView', 'run', "Run")); }
25
+ static { this.LABEL = ( localize2WithPath('vs/workbench/contrib/debug/browser/welcomeView', 'run', "Run")); }
26
26
  constructor(options, themeService, keybindingService, contextMenuService, configurationService, contextKeyService, debugService, editorService, instantiationService, viewDescriptorService, openerService, storageSevice, telemetryService) {
27
27
  super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);
28
28
  this.debugService = debugService;
@@ -1051,12 +1051,12 @@ let DebugModel = class DebugModel extends Disposable {
1051
1051
  }
1052
1052
  return;
1053
1053
  }
1054
- refreshTopOfCallstack(thread) {
1054
+ refreshTopOfCallstack(thread, fetchFullStack = true) {
1055
1055
  if (thread.session.capabilities.supportsDelayedStackTraceLoading) {
1056
1056
  let topCallStack = Promise.resolve();
1057
1057
  const wholeCallStack = ( new Promise((c, e) => {
1058
1058
  topCallStack = thread.fetchCallStack(1).then(() => {
1059
- if (!( this.schedulers.has(thread.getId()))) {
1059
+ if (!( this.schedulers.has(thread.getId())) && fetchFullStack) {
1060
1060
  const deferred = ( new DeferredPromise());
1061
1061
  this.schedulers.set(thread.getId(), {
1062
1062
  completeDeferred: deferred,
@@ -1369,7 +1369,7 @@ let DebugModel = class DebugModel extends Disposable {
1369
1369
  }
1370
1370
  this._onDidChangeBreakpoints.fire({ removed, sessionOnly: false });
1371
1371
  }
1372
- addDataBreakpoint(label, dataId, canPersist, accessTypes, accessType) {
1372
+ addDataBreakpoint(label, dataId, canPersist, accessTypes, accessType, id) {
1373
1373
  const newDataBreakpoint = ( new DataBreakpoint(
1374
1374
  label,
1375
1375
  dataId,
@@ -1379,11 +1379,24 @@ let DebugModel = class DebugModel extends Disposable {
1379
1379
  undefined,
1380
1380
  undefined,
1381
1381
  accessTypes,
1382
- accessType
1382
+ accessType,
1383
+ id
1383
1384
  ));
1384
1385
  this.dataBreakpoints.push(newDataBreakpoint);
1385
1386
  this._onDidChangeBreakpoints.fire({ added: [newDataBreakpoint], sessionOnly: false });
1386
1387
  }
1388
+ updateDataBreakpoint(id, update) {
1389
+ const dataBreakpoint = this.dataBreakpoints.find(fbp => fbp.getId() === id);
1390
+ if (dataBreakpoint) {
1391
+ if (typeof update.condition === 'string') {
1392
+ dataBreakpoint.condition = update.condition;
1393
+ }
1394
+ if (typeof update.hitCondition === 'string') {
1395
+ dataBreakpoint.hitCondition = update.hitCondition;
1396
+ }
1397
+ this._onDidChangeBreakpoints.fire({ changed: [dataBreakpoint], sessionOnly: false });
1398
+ }
1399
+ }
1387
1400
  removeDataBreakpoints(id) {
1388
1401
  let removed;
1389
1402
  if (id) {
@@ -1,5 +1,5 @@
1
1
  import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
2
- import { CONTEXT_EXPRESSION_SELECTED, CONTEXT_LOADED_SCRIPTS_SUPPORTED, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_SET_EXPRESSION_SUPPORTED, CONTEXT_MULTI_SESSION_DEBUG, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_DISASSEMBLE_REQUEST_SUPPORTED, CONTEXT_FOCUSED_STACK_FRAME_HAS_INSTRUCTION_POINTER_REFERENCE } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
2
+ import { CONTEXT_EXPRESSION_SELECTED, CONTEXT_LOADED_SCRIPTS_SUPPORTED, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_SET_EXPRESSION_SUPPORTED, CONTEXT_MULTI_SESSION_DEBUG, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_DISASSEMBLE_REQUEST_SUPPORTED, CONTEXT_FOCUSED_STACK_FRAME_HAS_INSTRUCTION_POINTER_REFERENCE } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
3
3
  import { isSessionAttach } from 'vscode/vscode/vs/workbench/contrib/debug/common/debugUtils';
4
4
 
5
5
  class ViewModel {
@@ -17,6 +17,7 @@ class ViewModel {
17
17
  this.loadedScriptsSupportedContextKey = CONTEXT_LOADED_SCRIPTS_SUPPORTED.bindTo(contextKeyService);
18
18
  this.stepBackSupportedContextKey = CONTEXT_STEP_BACK_SUPPORTED.bindTo(contextKeyService);
19
19
  this.focusedSessionIsAttach = CONTEXT_FOCUSED_SESSION_IS_ATTACH.bindTo(contextKeyService);
20
+ this.focusedSessionIsNoDebug = CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG.bindTo(contextKeyService);
20
21
  this.restartFrameSupportedContextKey = CONTEXT_RESTART_FRAME_SUPPORTED.bindTo(contextKeyService);
21
22
  this.stepIntoTargetsSupported = CONTEXT_STEP_INTO_TARGETS_SUPPORTED.bindTo(contextKeyService);
22
23
  this.jumpToCursorSupported = CONTEXT_JUMP_TO_CURSOR_SUPPORTED.bindTo(contextKeyService);
@@ -62,6 +63,7 @@ class ViewModel {
62
63
  this.focusedStackFrameHasInstructionPointerReference.set(!!stackFrame?.instructionPointerReference);
63
64
  const attach = !!session && isSessionAttach(session);
64
65
  this.focusedSessionIsAttach.set(attach);
66
+ this.focusedSessionIsNoDebug.set(!!session && !!session.configuration.noDebug);
65
67
  });
66
68
  if (shouldEmitForSession) {
67
69
  this._onDidFocusSession.fire(session);
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
2
  import * as nls from 'monaco-editor/esm/vs/nls.js';
3
3
  import { isObject } from 'monaco-editor/esm/vs/base/common/types.js';
4
- import { debuggerDisabledMessage, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
4
+ import { DebugConfigurationProviderTriggerKind, debuggerDisabledMessage, IDebugService } from 'vscode/vscode/vs/workbench/contrib/debug/common/debug';
5
5
  import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
6
6
  import { IConfigurationResolverService } from 'vscode/vscode/vs/workbench/services/configurationResolver/common/configurationResolver';
7
7
  import { applyDeprecatedVariableMessage } from '../../../services/configurationResolver/common/configurationResolverUtils.js';
@@ -124,6 +124,9 @@ let Debugger = class Debugger {
124
124
  hasInitialConfiguration() {
125
125
  return !!this.debuggerContribution.initialConfigurations;
126
126
  }
127
+ hasDynamicConfigurationProviders() {
128
+ return this.debugService.getConfigurationManager().hasDebugConfigurationProvider(this.type, DebugConfigurationProviderTriggerKind.Dynamic);
129
+ }
127
130
  hasConfigurationProvider() {
128
131
  return this.debugService.getConfigurationManager().hasDebugConfigurationProvider(this.type);
129
132
  }