Speed up pwd truncation algorithm

This commit is contained in:
Ilan Cosman 2021-12-09 22:56:17 -08:00
parent e56e1f971c
commit e41aeecf9b
2 changed files with 8 additions and 4 deletions

View File

@ -27,12 +27,11 @@ function _tide_pwd
end end
set split_output[$i] $_tide_color_anchors$dir_section$_tide_reset_to_color_dirs set split_output[$i] $_tide_color_anchors$dir_section$_tide_reset_to_color_dirs
else if test $pwd_length -gt $dist_btwn_sides else if test $pwd_length -gt $dist_btwn_sides
string sub --length 1 -- $dir_section | read -l trunc trunc_len=1 while string match -qr "(?<trunc>.{$trunc_len})" $dir_section &&
trunc_len=1 while test $trunc != $dir_section -a (count $parent_dir/$trunc*/) != 1 test (count $parent_dir/$trunc*/) != 1
math $trunc_len+1 | read trunc_len math $trunc_len+1 | read trunc_len
string sub --length $trunc_len -- $dir_section | read trunc
end end
if test $trunc != $dir_section if test -n "$trunc"
set split_output[$i] $_tide_color_truncated_dirs$trunc$_tide_reset_to_color_dirs set split_output[$i] $_tide_color_truncated_dirs$trunc$_tide_reset_to_color_dirs
string join / $split_output | string length --visible | read -g pwd_length string join / $split_output | string length --visible | read -g pwd_length
end end

View File

@ -49,6 +49,11 @@ mkdir -p $tmpdir/alfa/bratwurst
_pwd "$longDir" # CHECK: ~/a/brav/c/d/e/f/golf/hotel/india/juliett/kilo/lima/mike/november/oscar/papa _pwd "$longDir" # CHECK: ~/a/brav/c/d/e/f/golf/hotel/india/juliett/kilo/lima/mike/november/oscar/papa
rm -r $tmpdir/alfa/bratwurst rm -r $tmpdir/alfa/bratwurst
# Truncate to unique
mkdir -p $tmpdir/alfa/bravohello
_pwd "$longDir" # CHECK: ~/a/bravo/c/d/e/f/golf/hotel/india/juliett/kilo/lima/mike/november/oscar/papa
rm -r $tmpdir/alfa/bravohello
# Markers # Markers
mkdir -p $tmpdir/alfa/.git mkdir -p $tmpdir/alfa/.git
_pwd "$longDir" # CHECK: ~/alfa/b/c/d/e/f/golf/hotel/india/juliett/kilo/lima/mike/november/oscar/papa _pwd "$longDir" # CHECK: ~/alfa/b/c/d/e/f/golf/hotel/india/juliett/kilo/lima/mike/november/oscar/papa