Merge pull request #4652 from psprint/master

znt: updated README.md, twice as fast searching
master
Marc Cornellà 10 years ago
commit c82f49e734
  1. 5
      plugins/zsh-navigation-tools/README.md
  2. 18
      plugins/zsh-navigation-tools/n-list

@ -105,7 +105,8 @@ colorize output of the tools, via their config files (check out e.g. n-cd.conf,
it uses this).
## Performance
ZNT is fastest with Zsh before 5.0.8 and starting from 5.2 (the version yet to
ZNT are fastest with Zsh before 5.0.8 and starting from 5.2 (the version yet to
be released).
# vim:filetype=conf
vim:filetype=conf

@ -261,18 +261,15 @@ while (( 1 )); do
local search_buffer="${NLIST_SEARCH_BUFFER%% ##}"
search_buffer="${search_buffer## ##}"
search_buffer="${search_buffer//(#m)[][*?|#~^()><\\]/\\$MATCH}"
local search_pattern=""
local colsearch_pattern=""
if [ -n "$search_buffer" ]; then
# Patterns will be *foo*~^*bar* and foo|bar)
local search_pattern="${search_buffer// ##/*~^*}"
local colsearch_pattern="${search_buffer// ##/|}"
search_pattern="${search_buffer// ##/*~^*}"
colsearch_pattern="${search_buffer// ##/|}"
list=( "${(@M)list:#(#i)*$~search_pattern*}" )
last_element="$#list"
local red=$'\x1b[00;31m' reset=$'\x1b[00;00m'
col_list=( "${(@)list//(#mi)($~colsearch_pattern)/$red${MATCH}$reset}" )
else
col_list=( "$list[@]" )
fi
# Called after processing list
@ -286,7 +283,12 @@ while (( 1 )); do
if [ "$prev_start_idx" -ne "$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" ]; then
prev_start_idx="$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN"
disp_list=( "${(@)col_list[NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN, end_idx]}" )
disp_list=( "${(@)list[NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN, end_idx]}" )
if [ -n "$colsearch_pattern" ]; then
local red=$'\x1b[00;31m' reset=$'\x1b[00;00m'
disp_list=( "${(@)disp_list//(#mi)($~colsearch_pattern)/$red${MATCH}$reset}" )
fi
# We have display list, lets replace newlines with "\n" when needed (1/3)
[ "$NLIST_REPLACE_NEWLINES" -eq 1 ] && disp_list=( "${(@)disp_list//$'\n'/\\n}" )

Loading…
Cancel
Save