Mercurial > vim
view src/testdir/test_search_stat.vim @ 16560:8d0ea09e2d81 v8.1.1283
patch 8.1.1283: delaying half a second after the top-bot message
commit https://github.com/vim/vim/commit/c7a10b35de70471519d104a74d402c63557f0512
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon May 6 21:37:18 2019 +0200
patch 8.1.1283: delaying half a second after the top-bot message
Problem: Delaying half a second after the top-bot message.
Solution: Instead of the delay add "W" to the search count.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 06 May 2019 21:45:06 +0200 |
parents | 5e25171e0e75 |
children | 2c2f5f0173c1 |
line wrap: on
line source
" Tests for search_stats, when "S" is not in 'shortmess' " " This test is fragile, it might not work interactively, but it works when run " as test! source shared.vim func! Test_search_stat() new set shortmess-=S call append(0, repeat(['foobar', 'foo', 'fooooobar', 'foba', 'foobar'], 10)) " 1) match at second line call cursor(1, 1) let @/ = 'fo*\(bar\?\)\?' let g:a = execute(':unsilent :norm! n') let stat = '\[2/50\]' let pat = escape(@/, '()*?'). '\s\+' call assert_match(pat .. stat, g:a) " 2) Match at last line call cursor(line('$')-2, 1) let g:a = execute(':unsilent :norm! n') let stat = '\[50/50\]' call assert_match(pat .. stat, g:a) " 3) No search stat set shortmess+=S call cursor(1, 1) let stat = '\[2/50\]' let g:a = execute(':unsilent :norm! n') call assert_notmatch(pat .. stat, g:a) set shortmess-=S " 4) Many matches call cursor(line('$')-2, 1) let @/ = '.' let pat = escape(@/, '()*?'). '\s\+' let g:a = execute(':unsilent :norm! n') let stat = '\[>99/>99\]' call assert_match(pat .. stat, g:a) " 5) Many matches call cursor(1, 1) let g:a = execute(':unsilent :norm! n') let stat = '\[2/>99\]' call assert_match(pat .. stat, g:a) " 6) right-left if exists("+rightleft") set rl call cursor(1,1) let @/ = 'foobar' let pat = 'raboof/\s\+' let g:a = execute(':unsilent :norm! n') let stat = '\[20/2\]' call assert_match(pat .. stat, g:a) set norl endif " 7) right-left bottom if exists("+rightleft") set rl call cursor('$',1) let pat = 'raboof?\s\+' let g:a = execute(':unsilent :norm! N') let stat = '\[20/20\]' call assert_match(pat .. stat, g:a) set norl endif " 8) right-left back at top if exists("+rightleft") set rl call cursor('$',1) let pat = 'raboof/\s\+' let g:a = execute(':unsilent :norm! n') let stat = '\[20/1\]' call assert_match(pat .. stat, g:a) call assert_match('search hit BOTTOM, continuing at TOP', g:a) set norl endif " 9) normal, back at bottom call cursor(1,1) let @/ = 'foobar' let pat = '?foobar\s\+' let g:a = execute(':unsilent :norm! N') let stat = '\[20/20\]' call assert_match(pat .. stat, g:a) call assert_match('search hit TOP, continuing at BOTTOM', g:a) call assert_match('\[20/20\] W', Screenline(&lines)) " 10) normal, no match call cursor(1,1) let @/ = 'zzzzzz' let g:a = '' try let g:a = execute(':unsilent :norm! n') catch /^Vim\%((\a\+)\)\=:E486/ let stat = '' " error message is not redir'ed to g:a, it is empty call assert_true(empty(g:a)) catch call assert_false(1) endtry " close the window set shortmess+=S bwipe! endfunc