mirror of
https://github.com/Llewellynvdm/starship.git
synced 2024-09-26 20:29:03 +00:00
64 lines
2.1 KiB
Rust
64 lines
2.1 KiB
Rust
|
use crate::config::{ModuleConfig, RootModuleConfig, SegmentConfig};
|
||
|
|
||
|
use ansi_term::{Color, Style};
|
||
|
use starship_module_config_derive::ModuleConfig;
|
||
|
|
||
|
#[derive(Clone, ModuleConfig)]
|
||
|
pub struct GitStatusConfig<'a> {
|
||
|
pub stashed: SegmentConfig<'a>,
|
||
|
pub ahead: SegmentConfig<'a>,
|
||
|
pub behind: SegmentConfig<'a>,
|
||
|
pub diverged: SegmentConfig<'a>,
|
||
|
pub show_sync_count: bool,
|
||
|
pub conflicted: SegmentConfig<'a>,
|
||
|
pub conflicted_count: CountConfig,
|
||
|
pub deleted: SegmentConfig<'a>,
|
||
|
pub deleted_count: CountConfig,
|
||
|
pub renamed: SegmentConfig<'a>,
|
||
|
pub renamed_count: CountConfig,
|
||
|
pub modified: SegmentConfig<'a>,
|
||
|
pub modified_count: CountConfig,
|
||
|
pub staged: SegmentConfig<'a>,
|
||
|
pub staged_count: CountConfig,
|
||
|
pub untracked: SegmentConfig<'a>,
|
||
|
pub untracked_count: CountConfig,
|
||
|
pub prefix: &'a str,
|
||
|
pub suffix: &'a str,
|
||
|
pub style: Style,
|
||
|
pub disabled: bool,
|
||
|
}
|
||
|
|
||
|
impl<'a> RootModuleConfig<'a> for GitStatusConfig<'a> {
|
||
|
fn new() -> Self {
|
||
|
GitStatusConfig {
|
||
|
stashed: SegmentConfig::new("$"),
|
||
|
ahead: SegmentConfig::new("⇡"),
|
||
|
behind: SegmentConfig::new("⇣"),
|
||
|
diverged: SegmentConfig::new("⇕"),
|
||
|
conflicted: SegmentConfig::new("="),
|
||
|
show_sync_count: false,
|
||
|
conflicted_count: CountConfig::default(),
|
||
|
deleted: SegmentConfig::new("✘"),
|
||
|
deleted_count: CountConfig::default(),
|
||
|
renamed: SegmentConfig::new("»"),
|
||
|
renamed_count: CountConfig::default(),
|
||
|
modified: SegmentConfig::new("!"),
|
||
|
modified_count: CountConfig::default(),
|
||
|
staged: SegmentConfig::new("+"),
|
||
|
staged_count: CountConfig::default(),
|
||
|
untracked: SegmentConfig::new("?"),
|
||
|
untracked_count: CountConfig::default(),
|
||
|
prefix: "[",
|
||
|
suffix: "] ",
|
||
|
style: Color::Red.bold(),
|
||
|
disabled: false,
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[derive(Clone, Copy, ModuleConfig, Default)]
|
||
|
pub struct CountConfig {
|
||
|
pub enabled: bool,
|
||
|
pub style: Option<Style>,
|
||
|
}
|