Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions src/vs/workbench/contrib/debug/browser/breakpointWidget.ts
Original file line number Diff line number Diff line change
Expand Up @@ -276,12 +276,21 @@ export class BreakpointWidget extends ZoneWidget implements IPrivateBreakpointWi
this.availableBreakpoints = this.debugService.getModel().getBreakpoints().filter(bp => bp !== this.breakpoint && !bp.logMessage);
const breakpointOptions = this.buildBreakpointOptions();

const index = this.availableBreakpoints.findIndex((bp) => this.breakpoint?.triggeredBy === bp.getId());
const index = this.availableBreakpoints.findIndex(bp => this.breakpoint?.triggeredBy === bp.getId());

let selectedIndex = 0;

if (index !== -1) {
this.triggeredByBreakpointInput = this.availableBreakpoints[index];
selectedIndex = index + 1;
} else if (!this.breakpoint?.triggeredBy && this.availableBreakpoints.length > 0) {
this.triggeredByBreakpointInput = this.availableBreakpoints[0];
selectedIndex = 1;
} else {
this.triggeredByBreakpointInput = undefined;
}

const selectBreakpointBox = this.selectBreakpointBox = this.store.add(new SelectBox(breakpointOptions, index + 1, this.contextViewService, defaultSelectBoxStyles, { ariaLabel: nls.localize('selectBreakpoint', 'Select breakpoint'), useCustomDrawn: !hasNativeContextMenu(this._configurationService) }));
const selectBreakpointBox = this.selectBreakpointBox = this.store.add(new SelectBox(breakpointOptions, selectedIndex, this.contextViewService, defaultSelectBoxStyles, { ariaLabel: nls.localize('selectBreakpoint', 'Select breakpoint'), useCustomDrawn: !hasNativeContextMenu(this._configurationService) }));
this.store.add(selectBreakpointBox.onDidSelect(e => {
if (e.index === 0) {
this.triggeredByBreakpointInput = undefined;
Expand Down Expand Up @@ -337,14 +346,13 @@ export class BreakpointWidget extends ZoneWidget implements IPrivateBreakpointWi
private updateTriggerBreakpointList(): void {
this.availableBreakpoints = this.debugService.getModel().getBreakpoints().filter(bp => bp !== this.breakpoint && !bp.logMessage);

// Try to preserve the current selection if the breakpoint still exists
let selectedIndex = 0; // Default to "None"
let selectedIndex = 0;

if (this.triggeredByBreakpointInput) {
const newIndex = this.availableBreakpoints.findIndex(bp => bp.getId() === this.triggeredByBreakpointInput?.getId());
if (newIndex !== -1) {
selectedIndex = newIndex + 1;
} else {
// The selected breakpoint was removed, clear the selection
this.triggeredByBreakpointInput = undefined;
}
}
Expand Down
Loading