diff --git a/docs/iamb.1 b/docs/iamb.1 index 2487b92..62deb4c 100644 --- a/docs/iamb.1 +++ b/docs/iamb.1 @@ -114,6 +114,8 @@ Redact the selected message with the optional reason. Reply to the selected message. .It Sy ":cancel" Cancel the currently drafted message including replies. +.It Sy ":unreads clear" +Mark all unread rooms as read. .It Sy ":upload [path]" Upload an attachment and send it to the currently selected room. .El diff --git a/docs/iamb.5 b/docs/iamb.5 index 0fdab5f..26fc1b7 100644 --- a/docs/iamb.5 +++ b/docs/iamb.5 @@ -208,9 +208,6 @@ See .Sx "SORTING LISTS" for more details. -.It Sy state_event_display -Defines whether the state events like joined or left are shown. - .It Sy typing_notice_send Defines whether or not the typing state is sent. @@ -234,10 +231,6 @@ Possible values are Specify the width of the column where usernames are displayed in a room. Usernames that are too long are truncated. Defaults to 30. - -.It Sy tabstop -Number of spaces that a counts for. -Defaults to 4. .El .Ss Example 1: Avoid showing Emojis (useful for terminals w/o support) diff --git a/src/base.rs b/src/base.rs index fdb7875..1cd3071 100644 --- a/src/base.rs +++ b/src/base.rs @@ -1361,9 +1361,7 @@ impl RoomInfo { } if !settings.tunables.typing_notice_display { - // still keep one line blank, so `render_jump_to_recent` doesn't immediately hide the - // last line in scrollback - return Rect::new(area.x, area.y, area.width, area.height - 1); + return area; } let top = Rect::new(area.x, area.y, area.width, area.height - 1); diff --git a/src/config.rs b/src/config.rs index 2817df0..64271e4 100644 --- a/src/config.rs +++ b/src/config.rs @@ -578,7 +578,6 @@ pub struct TunableValues { pub image_preview: Option, pub user_gutter_width: usize, pub external_edit_file_suffix: String, - pub tabstop: usize, } #[derive(Clone, Default, Deserialize)] @@ -606,7 +605,6 @@ pub struct Tunables { pub image_preview: Option, pub user_gutter_width: Option, pub external_edit_file_suffix: Option, - pub tabstop: Option, } impl Tunables { @@ -640,7 +638,6 @@ impl Tunables { external_edit_file_suffix: self .external_edit_file_suffix .or(other.external_edit_file_suffix), - tabstop: self.tabstop.or(other.tabstop), } } @@ -670,7 +667,6 @@ impl Tunables { external_edit_file_suffix: self .external_edit_file_suffix .unwrap_or_else(|| ".md".to_string()), - tabstop: self.tabstop.unwrap_or(4), } } } diff --git a/src/message/html.rs b/src/message/html.rs index 8c36df7..82aac65 100644 --- a/src/message/html.rs +++ b/src/message/html.rs @@ -748,7 +748,7 @@ fn h2t(hdl: &Handle, state: &mut TreeGenState) -> StyleTreeChildren { StyleTreeNode::Style(c, s) }, - "del" | "s" | "strike" => { + "del" | "strike" => { let c = c2t(&node.children.borrow(), state); let s = Style::default().add_modifier(StyleModifier::CROSSED_OUT); @@ -1415,14 +1415,13 @@ pub mod tests { let s = concat!( "
",
             "fn hello() -> usize {\n",
-            " \t// weired\n",
             "    return 5;\n",
             "}\n",
             "
\n" ); let tree = parse_matrix_html(s); let text = tree.to_text(25, Style::default(), true, &settings); - assert_eq!(text.lines.len(), 6); + assert_eq!(text.lines.len(), 5); assert_eq!( text.lines[0], Line::from(vec![ @@ -1453,20 +1452,6 @@ pub mod tests { ); assert_eq!( text.lines[2], - Line::from(vec![ - Span::raw(line::VERTICAL), - Span::raw(" "), - Span::raw(" "), - Span::raw("/"), - Span::raw("/"), - Span::raw(" "), - Span::raw("weired"), - Span::raw(" "), - Span::raw(line::VERTICAL) - ]) - ); - assert_eq!( - text.lines[3], Line::from(vec![ Span::raw(line::VERTICAL), Span::raw(" "), @@ -1479,7 +1464,7 @@ pub mod tests { ]) ); assert_eq!( - text.lines[4], + text.lines[3], Line::from(vec![ Span::raw(line::VERTICAL), Span::raw("}"), @@ -1488,7 +1473,7 @@ pub mod tests { ]) ); assert_eq!( - text.lines[5], + text.lines[4], Line::from(vec![ Span::raw(line::BOTTOM_LEFT), Span::raw(line::HORIZONTAL.repeat(23)), diff --git a/src/message/mod.rs b/src/message/mod.rs index e1dbedc..4608303 100644 --- a/src/message/mod.rs +++ b/src/message/mod.rs @@ -176,9 +176,7 @@ fn placeholder_frame( } let mut placeholder = "\u{230c}".to_string(); placeholder.push_str(&" ".repeat(width - 2)); - placeholder.push('\u{230d}'); - placeholder.push_str(&"\n".repeat((height - 1) / 2)); - + placeholder.push_str("\u{230d}\n"); if *height > 2 { if let Some(text) = text { if text.width() <= width - 2 { @@ -188,7 +186,7 @@ fn placeholder_frame( } } - placeholder.push_str(&"\n".repeat(height / 2)); + placeholder.push_str(&"\n".repeat(height - 2)); placeholder.push('\u{230e}'); placeholder.push_str(&" ".repeat(width - 2)); placeholder.push_str("\u{230f}\n"); @@ -1089,7 +1087,7 @@ impl Message { }, ImageStatus::Loaded(backend) => { proto = Some(backend); - placeholder_frame(Some("Cut off..."), width, &backend.area().into()) + placeholder_frame(Some("Loading..."), width, &backend.area().into()) }, ImageStatus::Error(err) => Some(format!("[Image error: {err}]\n")), }; @@ -1360,33 +1358,6 @@ pub mod tests { OK ⌎ ⌏ -"# - ) - ); - assert_eq!( - placeholder_frame(Some("OK"), 6, &ImagePreviewSize { width: 6, height: 6 }), - pretty_frame_test( - r#" -⌌ ⌍ - - OK - - -⌎ ⌏ -"# - ) - ); - assert_eq!( - placeholder_frame(Some("OK"), 6, &ImagePreviewSize { width: 6, height: 7 }), - pretty_frame_test( - r#" -⌌ ⌍ - - - OK - - -⌎ ⌏ "# ) ); diff --git a/src/message/printer.rs b/src/message/printer.rs index 3418752..d2a2dd0 100644 --- a/src/message/printer.rs +++ b/src/message/printer.rs @@ -216,8 +216,6 @@ impl<'a> TextPrinter<'a> { return; } - let tabstop = self.settings().tunables.tabstop; - for mut word in UnicodeSegmentation::split_word_bounds(s) { if let "\n" | "\r\n" = word { if self.literal { @@ -234,17 +232,11 @@ impl<'a> TextPrinter<'a> { continue; } - let mut cow = if self.emoji_shortcodes() { + let cow = if self.emoji_shortcodes() { Cow::Owned(replace_emojis_in_str(word)) } else { Cow::Borrowed(word) }; - - if cow == "\t" { - let tablen = tabstop - (self.curr_width % tabstop); - cow = Cow::Owned(" ".repeat(tablen)); - } - let sw = UnicodeWidthStr::width(cow.as_ref()); if sw > self.width { diff --git a/src/tests.rs b/src/tests.rs index 7e957e1..ef6f82c 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -199,7 +199,6 @@ pub fn mock_tunables() -> TunableValues { }, image_preview: None, user_gutter_width: 30, - tabstop: 4, } } diff --git a/src/windows/room/scrollback.rs b/src/windows/room/scrollback.rs index 53da0b7..3d8ec7f 100644 --- a/src/windows/room/scrollback.rs +++ b/src/windows/room/scrollback.rs @@ -1571,7 +1571,7 @@ mod tests { // MSG1: | XXXday, Month NN 20XX | // | @user1:example.com writhe | // |------------------------------------------------------------| - let area = Rect::new(0, 0, 60, 5); + let area = Rect::new(0, 0, 60, 4); let mut buffer = Buffer::empty(area); scrollback.draw(area, &mut buffer, true, &mut store);