Fix jank in LSP debug log autoscroll (#22998)
Not sure why scroll was janky with `Autoscroll::newest()`, but this appears to fix it. Probably better to conditionally do the autoscroll requests anyway. Release Notes: - N/A
This commit is contained in:
parent
bbbd1e9902
commit
b65dc8c566
2 changed files with 12 additions and 1 deletions
|
@ -32,10 +32,16 @@ impl Autoscroll {
|
||||||
pub fn focused() -> Self {
|
pub fn focused() -> Self {
|
||||||
Self::Strategy(AutoscrollStrategy::Focused)
|
Self::Strategy(AutoscrollStrategy::Focused)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Scrolls so that the newest cursor is roughly an n-th line from the top.
|
/// Scrolls so that the newest cursor is roughly an n-th line from the top.
|
||||||
pub fn top_relative(n: usize) -> Self {
|
pub fn top_relative(n: usize) -> Self {
|
||||||
Self::Strategy(AutoscrollStrategy::TopRelative(n))
|
Self::Strategy(AutoscrollStrategy::TopRelative(n))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Scrolls so that the newest cursor is at the bottom.
|
||||||
|
pub fn bottom() -> Self {
|
||||||
|
Self::Strategy(AutoscrollStrategy::Bottom)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(PartialEq, Eq, Default, Clone, Copy)]
|
#[derive(PartialEq, Eq, Default, Clone, Copy)]
|
||||||
|
|
|
@ -642,6 +642,8 @@ impl LspLogView {
|
||||||
log_view.editor.update(cx, |editor, cx| {
|
log_view.editor.update(cx, |editor, cx| {
|
||||||
editor.set_read_only(false);
|
editor.set_read_only(false);
|
||||||
let last_point = editor.buffer().read(cx).len(cx);
|
let last_point = editor.buffer().read(cx).len(cx);
|
||||||
|
let newest_cursor_is_at_end =
|
||||||
|
editor.selections.newest::<usize>(cx).start >= last_point;
|
||||||
editor.edit(
|
editor.edit(
|
||||||
vec![
|
vec![
|
||||||
(last_point..last_point, entry.trim()),
|
(last_point..last_point, entry.trim()),
|
||||||
|
@ -657,7 +659,10 @@ impl LspLogView {
|
||||||
cx,
|
cx,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
editor.request_autoscroll(Autoscroll::fit(), cx);
|
|
||||||
|
if newest_cursor_is_at_end {
|
||||||
|
editor.request_autoscroll(Autoscroll::bottom(), cx);
|
||||||
|
}
|
||||||
editor.set_read_only(true);
|
editor.set_read_only(true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue