summaryrefslogtreecommitdiffstats
path: root/src/ui/widgets/tui_tab.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/widgets/tui_tab.rs')
-rw-r--r--src/ui/widgets/tui_tab.rs36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/ui/widgets/tui_tab.rs b/src/ui/widgets/tui_tab.rs
index f724b86..d82dcbe 100644
--- a/src/ui/widgets/tui_tab.rs
+++ b/src/ui/widgets/tui_tab.rs
@@ -1,11 +1,11 @@
-use std::ffi::OsStr;
-
use ratatui::buffer::Buffer;
use ratatui::layout::Rect;
use ratatui::text::{Line, Span};
use ratatui::widgets::{Paragraph, Widget, Wrap};
+use crate::config::option::TabBarDisplayMode;
use crate::context::TabContext;
+use crate::util::format::format_tab_bar_title_string;
use crate::THEME_T;
pub struct TuiTabBar<'a> {
@@ -34,23 +34,27 @@ impl<'a> Widget for TuiTabBar<'a> {
regular_style
};
if let Some(curr_tab) = self.context.tab_ref(tab_id) {
- let preview_text: String = curr_tab
- .cwd()
- .file_name()
- .unwrap_or_else(|| OsStr::new("/"))
- .to_string_lossy()
- .chars()
- .take(4)
- .collect();
-
- spans_vec.push(Span::styled(
- format!("{}: {}", i + 1, preview_text),
- curr_style,
- ));
- spans_vec.push(Span::styled(" ", regular_style));
+ let preview_text = match self.context.display.mode {
+ TabBarDisplayMode::Number => format!(" {} ", i + 1),
+ TabBarDisplayMode::Directory => format_tab_bar_title_string(
+ self.context.display.max_len,
+ None,
+ curr_tab.tab_title(),
+ ),
+ TabBarDisplayMode::All => format_tab_bar_title_string(
+ self.context.display.max_len,
+ Some(i),
+ curr_tab.tab_title(),
+ ),
+ };
+
+ spans_vec.push(Span::styled(preview_text, curr_style));
+ spans_vec.push(Span::styled(" | ", regular_style));
}
}
+ spans_vec.pop();
+
Paragraph::new(Line::from(spans_vec))
.wrap(Wrap { trim: true })
.render(area, buf);