summaryrefslogtreecommitdiffstats
path: root/src/modules/directory.rs
diff options
context:
space:
mode:
authorAndrew Dassonville <dassonville.andrew@gmail.com>2019-07-28 18:05:13 -0700
committerMatan Kushner <hello@matchai.me>2019-07-28 21:05:13 -0400
commit5dbf4381acd1fd8dbb2905828c3fcc6515d850cf (patch)
tree36a13ea34b8af9c0f6c5fa30c8ae9d7c3835f0de /src/modules/directory.rs
parentab46710fc47891a80eb1b6073616c95a1acc92bd (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/directory.rs')
-rw-r--r--src/modules/directory.rs8
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 ");