Take 32 grapheme clusters instead of characters

This commit is contained in:
Andrey Ryabov
2023-01-12 21:43:31 +02:00
parent 2294471b50
commit b736853dfe
2 changed files with 7 additions and 4 deletions

View File

@@ -24,3 +24,4 @@ sqlite = "0.30.3"
thiserror = "1.0.38"
tokio = { version = "1.23.0", features = ["full"] }
tui = "0.19.0"
unicode-segmentation = "1.10.0"

View File

@@ -12,14 +12,16 @@ use crate::app::file_manager;
use crate::database::File;
use crate::params::Params;
use prettytable::{format, row, Cell, Row, Table};
use unicode_segmentation::UnicodeSegmentation;
fn format_path(path: &str, opts: &Params) -> Result<String> {
let display_path = path.replace(&opts.get_directory()?, "");
let text_vec = display_path.chars().collect::<Vec<_>>();
let display_range = if text_vec.len() < 32 {
text_vec
.iter()
let display_range = if display_path.chars().count() > 32 {
display_path
.graphemes(true)
.collect::<Vec<&str>>()
.into_iter()
.rev()
.take(32)
.rev()