diff options
author | Jeff Zhao <jeff.no.zhao@gmail.com> | 2022-03-07 14:47:25 -0500 |
---|---|---|
committer | Jeff Zhao <jeff.no.zhao@gmail.com> | 2022-03-07 14:47:25 -0500 |
commit | 2c58daa521b3e2f75f8bf4844306552a6fda448e (patch) | |
tree | 59fbd201ba691c71716f89ebebdc3bfd743605a1 /src | |
parent | ee19a3271423cf96fe55a536844141b6d8599dfc (diff) |
fix file previews for no ansi colors
Diffstat (limited to 'src')
-rw-r--r-- | src/ui/widgets/tui_file_preview.rs | 13 |
1 files changed, 7 insertions, 6 deletions
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()); } } |