diff options
author | Andrew Dassonville <dassonville.andrew@gmail.com> | 2019-07-28 18:05:13 -0700 |
---|---|---|
committer | Matan Kushner <hello@matchai.me> | 2019-07-28 21:05:13 -0400 |
commit | 5dbf4381acd1fd8dbb2905828c3fcc6515d850cf (patch) | |
tree | 36a13ea34b8af9c0f6c5fa30c8ae9d7c3835f0de /src/modules | |
parent | ab46710fc47891a80eb1b6073616c95a1acc92bd (diff) |
feat: Allow directory truncation length to be configured (#120)
This allows the directory truncation length to be configured. Previously, it was hard-coded to truncate to 3 parent directories.
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/directory.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/modules/directory.rs b/src/modules/directory.rs index 61937e751..a14f1c204 100644 --- a/src/modules/directory.rs +++ b/src/modules/directory.rs @@ -15,12 +15,16 @@ use super::{Context, Module}; /// Paths will be limited in length to `3` path components by default. pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { const HOME_SYMBOL: &str = "~"; - const DIR_TRUNCATION_LENGTH: usize = 3; + const DIR_TRUNCATION_LENGTH: i64 = 3; let module_color = Color::Cyan.bold(); let mut module = context.new_module("directory")?; module.set_style(module_color); + let truncation_length = module + .config_value_i64("truncation_length") + .unwrap_or(DIR_TRUNCATION_LENGTH); + let current_dir = &context.current_dir; log::debug!("Current directory: {:?}", current_dir); @@ -38,7 +42,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { } // Truncate the dir string to the maximum number of path components - let truncated_dir_string = truncate(dir_string, DIR_TRUNCATION_LENGTH); + let truncated_dir_string = truncate(dir_string, truncation_length as usize); module.new_segment("path", &truncated_dir_string); module.get_prefix().set_value("in "); |