Mercurial > vim
view src/testdir/test_charsearch.vim @ 13060:1bdc12630fc0 v8.0.1405
patch 8.0.1405: duplicated code for getting a typed character
commit https://github.com/vim/vim/commit/c9e649ae816cdff0d1da8a97d40e695c6d3991bd
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Dec 18 18:14:47 2017 +0100
patch 8.0.1405: duplicated code for getting a typed character
Problem: Duplicated code for getting a typed character. CursorHold is
called too often in the GUI. (lilydjwg)
Solution: Refactor code to move code up from mch_inchar(). Don't fire
CursorHold if feedkeys() was used. (closes #2451)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 18 Dec 2017 18:15:05 +0100 |
parents | eb9a7296ae9f |
children | 63b02fcf1361 |
line wrap: on
line source
function! Test_charsearch() enew! call append(0, ['Xabcdefghijkemnopqretuvwxyz', \ 'Yabcdefghijkemnopqretuvwxyz', \ 'Zabcdefghijkemnokqretkvwxyz']) " check that "fe" and ";" work 1 normal! ylfep;;p,,p call assert_equal('XabcdeXfghijkeXmnopqreXtuvwxyz', getline(1)) " check that save/restore works 2 normal! ylfep let csave = getcharsearch() normal! fip call setcharsearch(csave) normal! ;p;p call assert_equal('YabcdeYfghiYjkeYmnopqreYtuvwxyz', getline(2)) " check that setcharsearch() changes the settings. 3 normal! ylfep call setcharsearch({'char': 'k'}) normal! ;p call setcharsearch({'forward': 0}) normal! $;p call setcharsearch({'until': 1}) set cpo-=; normal! ;;p call assert_equal('ZabcdeZfghijkZZemnokqretkZvwxyz', getline(3)) enew! endfunction " Test for t,f,F,T movement commands and 'cpo-;' setting function! Test_search_cmds() enew! call append(0, ["aaa two three four", " zzz", "yyy ", \ "bbb yee yoo four", "ccc two three four", \ "ddd yee yoo four"]) set cpo-=; 1 normal! 0tt;D 2 normal! 0fz;D 3 normal! $Fy;D 4 normal! $Ty;D set cpo+=; 5 normal! 0tt;;D 6 normal! $Ty;;D call assert_equal('aaa two', getline(1)) call assert_equal(' z', getline(2)) call assert_equal('y', getline(3)) call assert_equal('bbb y', getline(4)) call assert_equal('ccc', getline(5)) call assert_equal('ddd yee y', getline(6)) enew! endfunction