From ff74ac216b0d590af965d6b2931c25876625e130 Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Sat, 10 Aug 2024 15:14:09 +0300 Subject: [PATCH] feat(task): colorize state property --- src/task.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/task.rs b/src/task.rs index 7fc3bf7..ca33176 100644 --- a/src/task.rs +++ b/src/task.rs @@ -4,6 +4,7 @@ use std::collections::{BTreeSet, HashSet}; use std::fmt; use std::string::ToString; +use colored::Colorize; use itertools::Either::{Left, Right}; use itertools::Itertools; use log::{debug, error, info, trace, warn}; @@ -142,7 +143,17 @@ impl Task { match property { "id" => Some(self.event.id.to_string()), "parentid" => self.parent_id().map(|i| i.to_string()), - "state" => Some(self.state_or_default().get_label()), + "state" => Some({ + let state = self.state_or_default(); + let label = state.get_label(); + match state.state { + State::Open => label.green(), + State::Done => label.bright_black(), + State::Closed => label.magenta(), + State::Pending => label.yellow(), + State::Procedure => label.blue(), + }.to_string() + }), "name" => Some(self.event.content.clone()), "desc" => self.descriptions().last().cloned(), "description" => Some(self.descriptions().join(" ")), @@ -203,11 +214,11 @@ impl Display for TaskState { #[derive(Debug, Copy, Clone, PartialEq)] pub(crate) enum State { - Closed, Open, - Procedure, - Pending, Done, + Closed, + Pending, + Procedure, } impl TryFrom for State { type Error = ();