T35: Cmd-Up and Cmd-Down, Ctrl-Shift-Up and Ctrl-Shift-Down off macOS, jump to the prompt before or after the view's top, as Ghostty jumps: the tap rewrites each OSC 133 mark in place into an OSC 8 link of the terminal's own, which the parser keeps in the prompt's cells through scroll, reflow and history, and links pass over; the tap's OSC scanner ends a body as vte does
CI / platforms (ubuntu-24.04) (push) Successful in 1m4s
CI / platforms (windows-latest) (push) Successful in 1m36s
CI / macos (push) Successful in 11m52s

This commit is contained in:
ZacharyZhang-NY committed 2026-10-16 23:46:58 -04:00
1 parent d3700f5278
commit 15e83f5b7e
13 files changed
+419 -27

No files matched your search

+9
View File
@@ -259,6 +259,8 @@ mod tests {
folders: Vec<PathBuf>,
marks: Vec<Mark>,
text: String,
/// The first line's cells that carry a prompt's link.
prompt: Vec<usize>,
success: bool,
pid: u32,
columns: usize,
@@ -290,10 +292,16 @@ mod tests {
let term = pty.term.lock();
let row = &term.grid()[Line(0)];
let text: String = (0..24).map(|column| row[Column(column)].c).collect();
let prompt = (0..24).filter(|&column| {
row[Column(column)]
.hyperlink()
.is_some_and(|link| link.uri() == crate::term::prompts::LINK)
});
Ran {
folders,
marks,
text: text.trim_end().to_string(),
prompt: prompt.collect(),
success,
pid: pty.pid,
columns: term.columns(),
@@ -327,6 +335,7 @@ mod tests {
let marks = [Mark::Prompt, Mark::Input, Mark::Output, Mark::Done(Some(3))];
assert_eq!(ran.marks, marks);
assert_eq!(ran.text, ">x");
assert_eq!(ran.prompt, [0], "the prompt's cell, not the output's");
}
#[test]