summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock21
-rw-r--r--src/ui/widgets/tui_file_preview.rs13
2 files changed, 24 insertions, 10 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 162469c..b1134b4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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());
}
}