summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorJeff Zhao <jeff.no.zhao@gmail.com>2022-03-07 14:47:25 -0500
committerJeff Zhao <jeff.no.zhao@gmail.com>2022-03-07 14:47:25 -0500
commit2c58daa521b3e2f75f8bf4844306552a6fda448e (patch)
tree59fbd201ba691c71716f89ebebdc3bfd743605a1 /src/ui
parentee19a3271423cf96fe55a536844141b6d8599dfc (diff)
fix file previews for no ansi colors
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/widgets/tui_file_preview.rs13
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());
}
}