Commit c82f49e7 authored by Marc Cornellà's avatar Marc Cornellà
Browse files

Merge pull request #4652 from psprint/master

znt: updated README.md, twice as fast searching
parents 00344f76 d427ac1e
......@@ -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}" )
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment