documents: reset keeps the caret and the top line
CI / platforms (windows-latest) (push) Failing after 8s
CI / site (push) Successful in 21s
CI / crate (push) Failing after 11m55s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-12 07:48:16 -04:00
1 parent d126a7e7f7
commit e89fb32f43
2 files changed
+29 -1

No files matched your search

+18
View File
@@ -180,3 +180,21 @@ x- one"
});
assert_eq!(outline, [("Lift".to_string(), 0)]);
}
#[gpui::test]
fn a_reset_keeps_the_caret_and_the_top_line(cx: &mut TestAppContext) {
let lines: String = (0..60).map(|n| format!("Line {n}\n\n")).collect();
let (document, cx) = open(&lines, MarkdownMode::Source, cx);
document.update_in(cx, |document, window, cx| {
document.set_caret(40, 2, cx);
document.set_top_line(30, window, cx);
});
frames(cx);
let changed: String = (0..60).map(|n| format!("Row {n}\n\n")).collect();
document.update(cx, |document, cx| document.reset(changed, cx));
frames(cx);
let (caret, top) = document.read_with(cx, |document, cx| {
(document.caret(cx), document.top_line(cx))
});
assert_eq!((caret, top), ((40, 2), 30));
}