mirror of
https://github.com/starship/starship.git
synced 2025-06-26 12:51:34 +02:00
refactor: Cleanup after module config refactor (#630)
This commit is contained in:
parent
a3d5ea3e43
commit
5bb7467b56
@ -240,16 +240,6 @@ impl<'a> SegmentConfig<'a> {
|
|||||||
Self { value, style: None }
|
Self { value, style: None }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Mutably set value
|
|
||||||
pub fn set_value(&mut self, value: &'a str) {
|
|
||||||
self.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Mutably set style
|
|
||||||
pub fn set_style(&mut self, style: Style) {
|
|
||||||
self.style = Some(style);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Immutably set value
|
/// Immutably set value
|
||||||
pub fn with_value(&self, value: &'a str) -> Self {
|
pub fn with_value(&self, value: &'a str) -> Self {
|
||||||
Self {
|
Self {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use crate::config::{ModuleConfig, SegmentConfig};
|
use crate::config::SegmentConfig;
|
||||||
use crate::segment::Segment;
|
use crate::segment::Segment;
|
||||||
use ansi_term::Style;
|
use ansi_term::Style;
|
||||||
use ansi_term::{ANSIString, ANSIStrings};
|
use ansi_term::{ANSIString, ANSIStrings};
|
||||||
@ -72,33 +72,6 @@ impl<'a> Module<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get a reference to a newly created segment in the module
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.20.0",
|
|
||||||
note = "please use `module.create_segment()` instead"
|
|
||||||
)]
|
|
||||||
pub fn new_segment(&mut self, name: &str, value: &str) -> &mut Segment {
|
|
||||||
let mut segment = Segment::new(name);
|
|
||||||
let segment_config_mock = SegmentConfig { value, style: None };
|
|
||||||
|
|
||||||
if let Some(toml::Value::Table(module_config)) = self.config {
|
|
||||||
if let Some(symbol) = module_config.get(name) {
|
|
||||||
let segment_config = segment_config_mock.load_config(&symbol);
|
|
||||||
segment.set_style(segment_config.style.unwrap_or(self.style));
|
|
||||||
segment.set_value(segment_config.value);
|
|
||||||
|
|
||||||
self.segments.push(segment);
|
|
||||||
return self.segments.last_mut().unwrap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
segment.set_style(segment_config_mock.style.unwrap_or(self.style));
|
|
||||||
segment.set_value(segment_config_mock.value);
|
|
||||||
|
|
||||||
self.segments.push(segment);
|
|
||||||
self.segments.last_mut().unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get a reference to a newly created segment in the module
|
/// Get a reference to a newly created segment in the module
|
||||||
pub fn create_segment(&mut self, name: &str, segment_config: &SegmentConfig) -> &mut Segment {
|
pub fn create_segment(&mut self, name: &str, segment_config: &SegmentConfig) -> &mut Segment {
|
||||||
let mut segment = Segment::new(name);
|
let mut segment = Segment::new(name);
|
||||||
@ -109,24 +82,6 @@ impl<'a> Module<'a> {
|
|||||||
self.segments.last_mut().unwrap()
|
self.segments.last_mut().unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Should config exists, get a reference to a newly created segment in the module
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.20.0",
|
|
||||||
note = "please use `module.create_segment()` instead"
|
|
||||||
)]
|
|
||||||
pub fn new_segment_if_config_exists(&mut self, name: &str) -> Option<&mut Segment> {
|
|
||||||
// Use the provided value unless overwritten by config
|
|
||||||
if let Some(value) = self.config_value_str(name) {
|
|
||||||
let mut segment = Segment::new(name);
|
|
||||||
segment.set_style(self.style);
|
|
||||||
segment.set_value(value);
|
|
||||||
self.segments.push(segment);
|
|
||||||
Some(self.segments.last_mut().unwrap())
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get module's name
|
/// Get module's name
|
||||||
pub fn get_name(&self) -> &String {
|
pub fn get_name(&self) -> &String {
|
||||||
&self._name
|
&self._name
|
||||||
@ -183,42 +138,6 @@ impl<'a> Module<'a> {
|
|||||||
pub fn to_string_without_prefix(&self) -> String {
|
pub fn to_string_without_prefix(&self) -> String {
|
||||||
ANSIStrings(&self.ansi_strings()[1..]).to_string()
|
ANSIStrings(&self.ansi_strings()[1..]).to_string()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get a module's config value as a string
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.20.0",
|
|
||||||
note = "please use <RootModuleConfig>::try_load(module.config) instead"
|
|
||||||
)]
|
|
||||||
pub fn config_value_str(&self, key: &str) -> Option<&str> {
|
|
||||||
<&str>::from_config(self.config?.as_table()?.get(key)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get a module's config value as an int
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.20.0",
|
|
||||||
note = "please use <RootModuleConfig>::try_load(module.config) instead"
|
|
||||||
)]
|
|
||||||
pub fn config_value_i64(&self, key: &str) -> Option<i64> {
|
|
||||||
<i64>::from_config(self.config?.as_table()?.get(key)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get a module's config value as a bool
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.20.0",
|
|
||||||
note = "please use <RootModuleConfig>::try_load(module.config) instead"
|
|
||||||
)]
|
|
||||||
pub fn config_value_bool(&self, key: &str) -> Option<bool> {
|
|
||||||
<bool>::from_config(self.config?.as_table()?.get(key)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get a module's config value as a style
|
|
||||||
#[deprecated(
|
|
||||||
since = "0.20.0",
|
|
||||||
note = "please use <RootModuleConfig>::try_load(module.config) instead"
|
|
||||||
)]
|
|
||||||
pub fn config_value_style(&self, key: &str) -> Option<Style> {
|
|
||||||
<Style>::from_config(self.config?.as_table()?.get(key)?)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> fmt::Display for Module<'a> {
|
impl<'a> fmt::Display for Module<'a> {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use super::{Context, Module};
|
use super::{Context, Module, SegmentConfig};
|
||||||
|
|
||||||
use crate::config::RootModuleConfig;
|
use crate::config::RootModuleConfig;
|
||||||
use crate::configs::cmd_duration::CmdDurationConfig;
|
use crate::configs::cmd_duration::CmdDurationConfig;
|
||||||
@ -36,10 +36,8 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
module.set_style(module_color);
|
module.set_style(module_color);
|
||||||
module.new_segment(
|
let cmd_duration_stacked = &format!("{}{}", config.prefix, render_time(elapsed));
|
||||||
"cmd_duration",
|
module.create_segment("cmd_duration", &SegmentConfig::new(&cmd_duration_stacked));
|
||||||
&format!("{}{}", config.prefix, render_time(elapsed)),
|
|
||||||
);
|
|
||||||
module.get_prefix().set_value("");
|
module.get_prefix().set_value("");
|
||||||
|
|
||||||
Some(module)
|
Some(module)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use std::env;
|
use std::env;
|
||||||
|
|
||||||
use super::{Context, Module};
|
use super::{Context, Module, SegmentConfig};
|
||||||
|
|
||||||
use crate::config::RootModuleConfig;
|
use crate::config::RootModuleConfig;
|
||||||
use crate::configs::env_var::EnvVarConfig;
|
use crate::configs::env_var::EnvVarConfig;
|
||||||
@ -25,10 +25,8 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Use native prefix and suffix instead of stacking custom ones together with env_value.
|
// TODO: Use native prefix and suffix instead of stacking custom ones together with env_value.
|
||||||
module.new_segment(
|
let env_var_stacked = format!("{}{}{}", config.prefix, env_value, config.suffix);
|
||||||
"env_var",
|
module.create_segment("env_var", &SegmentConfig::new(&env_var_stacked));
|
||||||
&format!("{}{}{}", config.prefix, env_value, config.suffix),
|
|
||||||
);
|
|
||||||
|
|
||||||
Some(module)
|
Some(module)
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use std::env;
|
use std::env;
|
||||||
|
|
||||||
use super::{Context, Module};
|
use super::{Context, Module, SegmentConfig};
|
||||||
use std::ffi::OsString;
|
use std::ffi::OsString;
|
||||||
|
|
||||||
use crate::config::RootModuleConfig;
|
use crate::config::RootModuleConfig;
|
||||||
@ -30,8 +30,6 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let trim_at = module.config_value_str("trim_at").unwrap_or(".");
|
|
||||||
|
|
||||||
//rustc doesn't let you do an "if" and an "if let" in the same if statement
|
//rustc doesn't let you do an "if" and an "if let" in the same if statement
|
||||||
// if this changes in the future this can become a lot cleaner
|
// if this changes in the future this can become a lot cleaner
|
||||||
let host = if config.trim_at != "" {
|
let host = if config.trim_at != "" {
|
||||||
@ -45,10 +43,8 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
module.set_style(config.style);
|
module.set_style(config.style);
|
||||||
module.new_segment(
|
let hostname_stacked = format!("{}{}{}", config.prefix, host, config.suffix);
|
||||||
"hostname",
|
module.create_segment("hostname", &SegmentConfig::new(&hostname_stacked));
|
||||||
&format!("{}{}{}", config.prefix, host, config.suffix),
|
|
||||||
);
|
|
||||||
module.get_prefix().set_value("on ");
|
module.get_prefix().set_value("on ");
|
||||||
|
|
||||||
Some(module)
|
Some(module)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user