summaryrefslogtreecommitdiffstats
path: root/default-plugins
diff options
context:
space:
mode:
authordenis <denismaximov98@gmail.com>2021-04-24 18:40:17 +0300
committerdenis <denismaximov98@gmail.com>2021-04-24 18:40:17 +0300
commit12388c9e86e07b4f691ae6956f0983931a3ae471 (patch)
tree943818ee59561662776d4f338993ea8492c2f78d /default-plugins
parent2e94ef51aa7ef3577a47015f27c89470c1e4b73b (diff)
wip: I really don't want people to hate me
Diffstat (limited to 'default-plugins')
-rw-r--r--default-plugins/tab-bar/src/line.rs37
-rw-r--r--default-plugins/tab-bar/src/main.rs11
-rw-r--r--default-plugins/tab-bar/src/tab.rs36
3 files changed, 30 insertions, 54 deletions
diff --git a/default-plugins/tab-bar/src/line.rs b/default-plugins/tab-bar/src/line.rs
index f6ed3c039..5976f12f5 100644
--- a/default-plugins/tab-bar/src/line.rs
+++ b/default-plugins/tab-bar/src/line.rs
@@ -1,8 +1,15 @@
-use crate::colors::{BLACK, GRAY, ORANGE, WHITE};
use ansi_term::{ANSIStrings, Color::RGB, Style};
use crate::{LinePart, ARROW_SEPARATOR};
-use zellij_tile::data::Palette;
+use zellij_tile::data::{colors::*, Palette};
+
+macro_rules! style {
+ ($a:expr, $b:expr) => {
+ Style::new()
+ .fg(RGB($a.0, $a.1, $a.2))
+ .on(RGB($b.0, $b.1, $b.2))
+ };
+}
fn get_current_title_len(current_title: &[LinePart]) -> usize {
current_title
@@ -62,13 +69,9 @@ fn left_more_message(tab_count_to_the_left: usize, palette: Palette) -> LinePart
};
// 238
let more_text_len = more_text.chars().count() + 2; // 2 for the arrows
- let left_separator = Style::new().fg(GRAY).on(ORANGE).paint(ARROW_SEPARATOR);
- let more_styled_text = Style::new()
- .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2))
- .on(ORANGE)
- .bold()
- .paint(more_text);
- let right_separator = Style::new().fg(ORANGE).on(GRAY).paint(ARROW_SEPARATOR);
+ let left_separator = style!(palette.fg, palette.orange).paint(ARROW_SEPARATOR);
+ let more_styled_text = style!(palette.fg, palette.orange).bold().paint(more_text);
+ let right_separator = style!(palette.orange, palette.bg).paint(ARROW_SEPARATOR);
let more_styled_text = format!(
"{}",
ANSIStrings(&[left_separator, more_styled_text, right_separator,])
@@ -92,13 +95,9 @@ fn right_more_message(tab_count_to_the_right: usize, palette: Palette) -> LinePa
" +many → ".to_string()
};
let more_text_len = more_text.chars().count() + 1; // 2 for the arrow
- let left_separator = Style::new().fg(GRAY).on(ORANGE).paint(ARROW_SEPARATOR);
- let more_styled_text = Style::new()
- .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2))
- .on(ORANGE)
- .bold()
- .paint(more_text);
- let right_separator = Style::new().fg(ORANGE).on(GRAY).paint(ARROW_SEPARATOR);
+ let left_separator = style!(palette.fg, palette.orange).paint(ARROW_SEPARATOR);
+ let more_styled_text = style!(palette.fg, palette.orange).bold().paint(more_text);
+ let right_separator = style!(palette.orange, palette.bg).paint(ARROW_SEPARATOR);
let more_styled_text = format!(
"{}",
ANSIStrings(&[left_separator, more_styled_text, right_separator,])
@@ -145,11 +144,7 @@ fn add_next_tabs_msg(
fn tab_line_prefix(palette: Palette) -> LinePart {
let prefix_text = " Zellij ".to_string();
let prefix_text_len = prefix_text.chars().count();
- let prefix_styled_text = Style::new()
- .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2))
- .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
- .bold()
- .paint(prefix_text);
+ let prefix_styled_text = style!(palette.fg, palette.bg).bold().paint(prefix_text);
LinePart {
part: format!("{}", prefix_styled_text),
len: prefix_text_len,
diff --git a/default-plugins/tab-bar/src/main.rs b/default-plugins/tab-bar/src/main.rs
index f522f8f2f..194e11b10 100644
--- a/default-plugins/tab-bar/src/main.rs
+++ b/default-plugins/tab-bar/src/main.rs
@@ -20,17 +20,6 @@ struct State {
static ARROW_SEPARATOR: &str = "";
-pub mod colors {
- use ansi_term::Colour::{self, Fixed};
- pub const WHITE: Colour = Fixed(255);
- pub const BLACK: Colour = Fixed(16);
- pub const GREEN: Colour = Fixed(154);
- pub const ORANGE: Colour = Fixed(166);
- pub const GRAY: Colour = Fixed(238);
- pub const BRIGHT_GRAY: Colour = Fixed(245);
- pub const RED: Colour = Fixed(88);
-}
-
register_plugin!(State);
impl ZellijPlugin for State {
diff --git a/default-plugins/tab-bar/src/tab.rs b/default-plugins/tab-bar/src/tab.rs
index c9d8d1f06..e97ecab75 100644
--- a/default-plugins/tab-bar/src/tab.rs
+++ b/default-plugins/tab-bar/src/tab.rs
@@ -2,21 +2,21 @@ use crate::{LinePart, ARROW_SEPARATOR};
use ansi_term::{ANSIStrings, Color::RGB, Style};
use zellij_tile::data::Palette;
+macro_rules! style {
+ ($a:expr, $b:expr) => {
+ Style::new()
+ .fg(RGB($a.0, $a.1, $a.2))
+ .on(RGB($b.0, $b.1, $b.2))
+ };
+}
+
pub fn active_tab(text: String, palette: Palette) -> LinePart {
- let left_separator = Style::new()
- .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
- .on(RGB(palette.green.0, palette.green.1, palette.green.2))
- .paint(ARROW_SEPARATOR);
+ let left_separator = style!(palette.bg, palette.green).paint(ARROW_SEPARATOR);
let tab_text_len = text.chars().count() + 4; // 2 for left and right separators, 2 for the text padding
- let tab_styled_text = Style::new()
- .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2))
- .on(RGB(palette.green.0, palette.green.1, palette.green.2))
+ let tab_styled_text = style!(palette.bg, palette.green)
.bold()
.paint(format!(" {} ", text));
- let right_separator = Style::new()
- .fg(RGB(palette.green.0, palette.green.1, palette.green.2))
- .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
- .paint(ARROW_SEPARATOR);
+ let right_separator = style!(palette.green, palette.bg).paint(ARROW_SEPARATOR);
let tab_styled_text = format!(
"{}",
ANSIStrings(&[left_separator, tab_styled_text, right_separator,])
@@ -28,20 +28,12 @@ pub fn active_tab(text: String, palette: Palette) -> LinePart {
}
pub fn non_active_tab(text: String, palette: Palette) -> LinePart {
- let left_separator = Style::new()
- .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
- .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
- .paint(ARROW_SEPARATOR);
+ let left_separator = style!(palette.bg, palette.bg).paint(ARROW_SEPARATOR);
let tab_text_len = text.chars().count() + 4; // 2 for left and right separators, 2 for the padding
- let tab_styled_text = Style::new()
- .fg(RGB(palette.fg.0, palette.fg.1, palette.fg.2))
- .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
+ let tab_styled_text = style!(palette.fg, palette.bg)
.bold()
.paint(format!(" {} ", text));
- let right_separator = Style::new()
- .fg(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
- .on(RGB(palette.bg.0, palette.bg.1, palette.bg.2))
- .paint(ARROW_SEPARATOR);
+ let right_separator = style!(palette.bg, palette.bg).paint(ARROW_SEPARATOR);
let tab_styled_text = format!(
"{}",
ANSIStrings(&[left_separator, tab_styled_text, right_separator,])