From 441ebb39b9cd451564959d259409d2395e7afb01 Mon Sep 17 00:00:00 2001 From: t-mangoe Date: Tue, 5 Apr 2022 04:13:29 +0900 Subject: [PATCH] fix(directory): enable repo_root_style when truncation_length is zero. (#3536) * Update merge-dependabot.yml * Revert "Update merge-dependabot.yml" This reverts commit b13a329660cc1f6fe57b29bc488764181a2ba66c. * Update merge-dependabot.yml * Revert "Update merge-dependabot.yml" This reverts commit b13a329660cc1f6fe57b29bc488764181a2ba66c. * fix(directory): enable repo_root_style when truncation_length is zero. * run dprint fmt * fix README * fix README * revert README.md --- src/modules/directory.rs | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/modules/directory.rs b/src/modules/directory.rs index 2e6c14336..53e9e73ed 100644 --- a/src/modules/directory.rs +++ b/src/modules/directory.rs @@ -106,7 +106,9 @@ pub fn module<'a>(context: &'a Context) -> Option> { let after_repo_root = contracted_path.replacen(repo_path_vec[0], "", 1); let num_segments_after_root = after_repo_root.split('/').count(); - if ((num_segments_after_root - 1) as i64) < config.truncation_length { + if config.truncation_length == 0 + || ((num_segments_after_root - 1) as i64) < config.truncation_length + { let root = repo_path_vec[0]; let before = dir_string.replace(&contracted_path, ""); [prefix + &before, root.to_string(), after_repo_root] @@ -1669,6 +1671,36 @@ mod tests { assert_eq!(expected, actual); tmp_dir.close() } + + #[test] + fn highlight_git_root_dir_zero_truncation_length() -> io::Result<()> { + let (tmp_dir, _) = make_known_tempdir(Path::new("/tmp"))?; + let repo_dir = tmp_dir.path().join("above").join("repo"); + let dir = repo_dir.join("src/sub/path"); + fs::create_dir_all(&dir)?; + init_repo(&repo_dir).unwrap(); + + let actual = ModuleRenderer::new("directory") + .config(toml::toml! { + [directory] + truncation_length = 0 + truncate_to_repo = false + repo_root_style = "green" + }) + .path(dir) + .collect(); + let expected = Some(format!( + "{}{}repo{} ", + Color::Cyan.bold().paint(convert_path_sep( + tmp_dir.path().join("above/").to_str().unwrap() + )), + Color::Green.prefix(), + Color::Cyan.bold().paint(convert_path_sep("/src/sub/path")) + )); + assert_eq!(expected, actual); + tmp_dir.close() + } + // sample for invalid unicode from https://doc.rust-lang.org/std/ffi/struct.OsStr.html#method.to_string_lossy #[cfg(any(unix, target_os = "redox"))] fn invalid_path() -> PathBuf {