diff options
-rw-r--r-- | Cargo.lock | 21 | ||||
-rw-r--r-- | src/ui/widgets/tui_file_preview.rs | 13 |
2 files changed, 24 insertions, 10 deletions
@@ -19,10 +19,11 @@ checksum = "77e9c9abb82613923ec78d7a461595d52491ba7240f3c64c0bbe0e6d98e0fce0" [[package]] name = "ansi-to-tui" -version = "0.5.0" -source = "git+https://github.com/uttarayan21/ansi-to-tui#92736b3a6d8cf1f6f0225ed3f95aabe1d27efcf8" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c3fb5747c9d1b444cb6c9f96c84d09a3f7ae9e1eb77f52ec45c8bf30a6e6bdf" dependencies = [ - "tui", + "tui 0.16.0", ] [[package]] @@ -358,7 +359,7 @@ dependencies = [ "termion", "toml", "trash", - "tui", + "tui 0.17.0", "unicode-segmentation", "unicode-width", "users", @@ -893,6 +894,18 @@ dependencies = [ [[package]] name = "tui" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c8ce4e27049eed97cfa363a5048b09d995e209994634a0efc26a14ab6c0c23" +dependencies = [ + "bitflags", + "cassowary", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "tui" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23ed0a32c88b039b73f1b6c5acbd0554bfa5b6be94467375fd947c4de3a02271" diff --git a/src/ui/widgets/tui_file_preview.rs b/src/ui/widgets/tui_file_preview.rs index d96c406..24daf88 100644 --- a/src/ui/widgets/tui_file_preview.rs +++ b/src/ui/widgets/tui_file_preview.rs @@ -15,7 +15,8 @@ impl<'a> TuiFilePreview<'a> { } #[cfg(not(feature = "syntax_highlight"))] - fn render_text_preview(&self, area: Rect, buf: &mut Buffer, vec: Vec<u8>) { + fn render_text_preview(&self, area: Rect, buf: &mut Buffer, s: &str) { + let vec: Vec<&str> = s.split('\n').collect(); for (line, y) in vec .iter() .skip(self.preview.index) @@ -27,10 +28,10 @@ impl<'a> TuiFilePreview<'a> { } #[cfg(feature = "syntax_highlight")] - fn render_text_preview(&self, area: Rect, buf: &mut Buffer, vec: Vec<u8>) { + fn render_text_preview(&self, area: Rect, buf: &mut Buffer, s: &str) { use ansi_to_tui::ansi_to_text; - - let res = ansi_to_text(vec.clone()); + let vec = s.as_bytes().to_vec(); + let res = ansi_to_text(vec); match res { Ok(text) => { for (line, y) in text @@ -45,6 +46,7 @@ impl<'a> TuiFilePreview<'a> { Err(e) => { let span = Span::raw(format!("Failed to parse ansi colors: {}", e)); buf.set_span(area.x, area.y, &span, area.width); + let vec: Vec<&str> = s.split('\n').collect(); for (line, y) in vec .iter() @@ -61,7 +63,6 @@ impl<'a> TuiFilePreview<'a> { impl<'a> Widget for TuiFilePreview<'a> { fn render(self, area: Rect, buf: &mut Buffer) { - let vec = self.preview.output.as_str().as_bytes().to_vec(); - self.render_text_preview(area, buf, vec); + self.render_text_preview(area, buf, self.preview.output.as_str()); } } |