debugger: Do not allow setting breakpoints in buffers without file storage (#27094)

Closes #ISSUE

Release Notes:

- N/A
This commit is contained in:
Piotr Osiewicz 2025-03-19 18:40:31 +01:00 committed by GitHub
parent d722067000
commit e03edc2a76
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 7 deletions

View file

@ -6052,6 +6052,9 @@ impl Editor {
continue;
};
if buffer.read(cx).file().is_none() {
continue;
}
let breakpoints = breakpoint_store.read(cx).breakpoints(
&buffer,
Some(info.range.context.start..info.range.context.end),

View file

@ -890,15 +890,24 @@ impl EditorElement {
let modifiers = event.modifiers;
let gutter_hovered = gutter_hitbox.is_hovered(window);
editor.set_gutter_hovered(gutter_hovered, cx);
editor.gutter_breakpoint_indicator = None;
if gutter_hovered {
editor.gutter_breakpoint_indicator = Some(
position_map
.point_for_position(event.position)
.previous_valid,
);
} else {
editor.gutter_breakpoint_indicator = None;
let new_point = position_map
.point_for_position(event.position)
.previous_valid;
let buffer_anchor = position_map
.snapshot
.display_point_to_anchor(new_point, Bias::Left);
if position_map
.snapshot
.buffer_snapshot
.buffer_for_excerpt(buffer_anchor.excerpt_id)
.is_some_and(|buffer| buffer.file().is_some())
{
editor.gutter_breakpoint_indicator = Some(new_point);
}
}
cx.notify();