feat: toggle wrapping in shell output windows
This commit is contained in:
+40
-1
@@ -15430,7 +15430,13 @@ fn shell_output_panel_clips_sanitized_content_in_offset_and_tiny_areas() {
|
||||
.unwrap();
|
||||
terminal
|
||||
.draw(|frame| {
|
||||
draw_diagnostic_panel(frame, diagnostic, area, "shell title", false);
|
||||
draw_diagnostic_panel(
|
||||
frame,
|
||||
diagnostic,
|
||||
area,
|
||||
"shell title",
|
||||
editor.command_output(),
|
||||
);
|
||||
})
|
||||
.unwrap();
|
||||
assert!(!terminal.backend().cursor_visible());
|
||||
@@ -15444,3 +15450,36 @@ fn shell_output_panel_clips_sanitized_content_in_offset_and_tiny_areas() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn shell_output_wrap_toggle_reflows_and_scrolls_without_changing_source() {
|
||||
let mut session = EditorSession::open(None, vec![], None).unwrap();
|
||||
let source_wrap = session.editor().word_wrap();
|
||||
let source = session.editor().lines().to_vec();
|
||||
session.editor_mut().show_command_output(
|
||||
"long output".into(),
|
||||
Err(format!("{}TAIL", "abcdefghij".repeat(30))),
|
||||
);
|
||||
let mut terminal = Terminal::new(ratatui::backend::TestBackend::new(42, 14)).unwrap();
|
||||
let mut views = BufferViewports::default();
|
||||
terminal
|
||||
.draw(|frame| views.draw_session(frame, &mut session))
|
||||
.unwrap();
|
||||
assert!(!screen_text(&terminal).contains("TAIL"));
|
||||
session.handle(Input::Char('w'));
|
||||
terminal
|
||||
.draw(|frame| views.draw_session(frame, &mut session))
|
||||
.unwrap();
|
||||
assert!(screen_text(&terminal).contains("TAIL"));
|
||||
session.handle(Input::Down);
|
||||
assert_eq!(session.editor().command_output().unwrap().content.top, 1);
|
||||
session.handle(Input::Right);
|
||||
assert_eq!(session.editor().command_output().unwrap().content.left, 0);
|
||||
session.handle(Input::Char('w'));
|
||||
terminal
|
||||
.draw(|frame| views.draw_session(frame, &mut session))
|
||||
.unwrap();
|
||||
assert!(!screen_text(&terminal).contains("TAIL"));
|
||||
assert_eq!(session.editor().word_wrap(), source_wrap);
|
||||
assert_eq!(session.editor().lines(), source);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user