diff --git a/src/main.rs b/src/main.rs index 798099c..12e1346 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,6 +28,9 @@ // What to print before the number of changed files. const CHANGED_PREFIX: &str = "+"; // U+002B PLUS SIGN +// What to print before the number of deleted files. +const DELETED_PREFIX: &str = "\u{2212}"; // U+2212 MINUS SIGN + // What to print before the number of conflicting files. const CONFLICTED_PREFIX: &str = "\u{f655}"; // Nerd font nf-mdi-close @@ -62,6 +65,10 @@ return format!("%{{{}%}}", SetForegroundColor(Color::DarkMagenta)); } +fn deleted_style() -> String { + return format!("%{{{}%}}", SetForegroundColor(Color::DarkRed)); +} + fn conflicted_style() -> String { return format!("%{{{}%}}", SetForegroundColor(Color::DarkRed)); } @@ -145,13 +152,20 @@ None => "".to_string(), }; + // Number of deleted files. + // example: 1 .D N... 100644 100644 000000 cefc2d5fe77876ddd24e962031bd5829d6431470 cefc2d5fe77876ddd24e962031bd5829d6431470 file.deleted + let deleted = match NonZeroUsize::new(Regex::new(r"1 .D ([^\x00]+)").unwrap().find_iter(&git_status).count()) { + Some(n) => format!("{}{DELETED_PREFIX}{n}{} ", deleted_style(), reset_style()), + None => "".to_string(), + }; + // Number of conflicted files. // example: u UD N... 000000 100644 100644 0000000000000000000000000000000000000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file.conflicted let conflicted = match NonZeroUsize::new(Regex::new(r"u .. ([^\x00]+)").unwrap().find_iter(&git_status).count()) { Some(n) => format!("{}{CONFLICTED_PREFIX}{n}{} ", conflicted_style(), reset_style()), None => "".to_string(), }; - + // Number of untracked files. // example: ? file.untracked let untracked = match NonZeroUsize::new(Regex::new(r"\? ([^\x00]+)").unwrap().find_iter(&git_status).count()) { @@ -166,7 +180,7 @@ None => "".to_string(), }; - let status_string = format!("{stashed}{ignored}{staged}{changed}{conflicted}{untracked}"); + let status_string = format!("{stashed}{ignored}{staged}{changed}{deleted}{conflicted}{untracked}"); print!("{branch}{ahead}{behind}{STATUS_SEPARATOR}{}", if status_string.len() > 0 {