From 4d284a677c5c54a08d2d111e0cbaf915a28eedcc Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Sat, 2 Jan 2021 20:25:00 +0100 Subject: [PATCH] searchcount: Add leading space closes #2314 #2154 Add a leading space before the searchcount statistics. Note, that this uses a non-breaking space, because it looks like Vim is stripping aways leading space characters (see vim/vim#1431) --- autoload/airline/extensions/searchcount.vim | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/autoload/airline/extensions/searchcount.vim b/autoload/airline/extensions/searchcount.vim index 643c6471..c28a319a 100644 --- a/autoload/airline/extensions/searchcount.vim +++ b/autoload/airline/extensions/searchcount.vim @@ -17,6 +17,13 @@ function! airline#extensions#searchcount#apply(...) abort \ '%{v:hlsearch ? airline#extensions#searchcount#status() : ""}') endfunction +function! s:search_term() + " shorten for all width smaller than 300 (this is just a guess) + " this uses a non-breaking space, because it looks like + " a leading space is stripped :/ + return "\ua0" . '/' . airline#util#shorten(getreg('/'), 300, 8) +endfunction + function! airline#extensions#searchcount#status() abort try let result = searchcount(#{recompute: 1, maxcount: -1}) @@ -24,18 +31,18 @@ function! airline#extensions#searchcount#status() abort return '' endif if result.incomplete ==# 1 " timed out - return printf(' /%s [?/??]', @/) + return printf('%s [?/??]', s:search_term()) elseif result.incomplete ==# 2 " max count exceeded if result.total > result.maxcount && \ result.current > result.maxcount - return printf('%s[>%d/>%d]', @/, + return printf('%s[>%d/>%d]', s:search_term(), \ result.current, result.total) elseif result.total > result.maxcount - return printf('%s[%d/>%d]', @/, + return printf('%s[%d/>%d]', s:search_term(), \ result.current, result.total) endif endif - return printf('%s[%d/%d]', @/, + return printf('%s[%d/%d]', s:search_term(), \ result.current, result.total) catch return ''