mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:7.4.1300
Problem: Cannot test CursorMovedI because there is typeahead.
Solution: Add disable_char_avail_for_testing().
2ab375e54e
Most of it manually applied.
This commit is contained in:
parent
ad99d0bf7e
commit
11fd965554
@ -6707,6 +6707,7 @@ static struct fst {
|
|||||||
{ "did_filetype", 0, 0, f_did_filetype },
|
{ "did_filetype", 0, 0, f_did_filetype },
|
||||||
{ "diff_filler", 1, 1, f_diff_filler },
|
{ "diff_filler", 1, 1, f_diff_filler },
|
||||||
{ "diff_hlID", 2, 2, f_diff_hlID },
|
{ "diff_hlID", 2, 2, f_diff_hlID },
|
||||||
|
{"disable_char_avail_for_testing", 1, 1, f_disable_char_avail_for_testing},
|
||||||
{ "empty", 1, 1, f_empty },
|
{ "empty", 1, 1, f_empty },
|
||||||
{ "escape", 2, 2, f_escape },
|
{ "escape", 2, 2, f_escape },
|
||||||
{ "eval", 1, 1, f_eval },
|
{ "eval", 1, 1, f_eval },
|
||||||
@ -8582,6 +8583,15 @@ static void f_diff_hlID(typval_T *argvars, typval_T *rettv)
|
|||||||
rettv->vval.v_number = hlID == (hlf_T)0 ? 0 : (int)hlID;
|
rettv->vval.v_number = hlID == (hlf_T)0 ? 0 : (int)hlID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// "disable_char_avail_for_testing({expr})" function
|
||||||
|
//
|
||||||
|
static void f_disable_char_avail_for_testing(typval_T *argvars, typval_T *rettv)
|
||||||
|
FUNC_ATTR_NONNULL_ARG(1)
|
||||||
|
{
|
||||||
|
disable_char_avail_for_testing = get_tv_number(&argvars[0]);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "empty({expr})" function
|
* "empty({expr})" function
|
||||||
*/
|
*/
|
||||||
@ -10173,6 +10183,7 @@ static void getpos_both(typval_T *argvars, typval_T *rettv, bool getcurpos)
|
|||||||
list_append_number(l,
|
list_append_number(l,
|
||||||
(fp != NULL) ? (varnumber_T)fp->coladd : (varnumber_T)0);
|
(fp != NULL) ? (varnumber_T)fp->coladd : (varnumber_T)0);
|
||||||
if (getcurpos) {
|
if (getcurpos) {
|
||||||
|
update_curswant();
|
||||||
list_append_number(l, curwin->w_curswant == MAXCOL
|
list_append_number(l, curwin->w_curswant == MAXCOL
|
||||||
? (varnumber_T)MAXCOL
|
? (varnumber_T)MAXCOL
|
||||||
: (varnumber_T)curwin->w_curswant + 1);
|
: (varnumber_T)curwin->w_curswant + 1);
|
||||||
|
@ -1562,6 +1562,11 @@ int char_avail(void)
|
|||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
|
// When disable_char_avail_for_testing(1) was called pretend
|
||||||
|
// there is no typeahead
|
||||||
|
if (disable_char_avail_for_testing) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
++no_mapping;
|
++no_mapping;
|
||||||
retval = vpeekc();
|
retval = vpeekc();
|
||||||
--no_mapping;
|
--no_mapping;
|
||||||
|
@ -1239,6 +1239,8 @@ EXTERN FILE *time_fd INIT(= NULL); /* where to write startup timing */
|
|||||||
EXTERN int ignored;
|
EXTERN int ignored;
|
||||||
EXTERN char *ignoredp;
|
EXTERN char *ignoredp;
|
||||||
|
|
||||||
|
EXTERN int disable_char_avail_for_testing INIT(= 0);
|
||||||
|
|
||||||
// If a msgpack-rpc channel should be started over stdin/stdout
|
// If a msgpack-rpc channel should be started over stdin/stdout
|
||||||
EXTERN bool embedded_mode INIT(= false);
|
EXTERN bool embedded_mode INIT(= false);
|
||||||
EXTERN Loop loop;
|
EXTERN Loop loop;
|
||||||
|
@ -20,16 +20,35 @@ func Test_move_cursor()
|
|||||||
call assert_equal([4, 3, 0, 3], getcurpos()[1:])
|
call assert_equal([4, 3, 0, 3], getcurpos()[1:])
|
||||||
|
|
||||||
call cursor(2, 2)
|
call cursor(2, 2)
|
||||||
call assert_equal([2, 2, 0, 3], getcurpos()[1:])
|
call assert_equal([2, 2, 0, 2], getcurpos()[1:])
|
||||||
" line number zero keeps the line number
|
" line number zero keeps the line number
|
||||||
call cursor(0, 1)
|
call cursor(0, 1)
|
||||||
call assert_equal([2, 1, 0, 3], getcurpos()[1:])
|
call assert_equal([2, 1, 0, 1], getcurpos()[1:])
|
||||||
" col number zero keeps the column
|
" col number zero keeps the column
|
||||||
call cursor(3, 0)
|
call cursor(3, 0)
|
||||||
call assert_equal([3, 1, 0, 3], getcurpos()[1:])
|
call assert_equal([3, 1, 0, 1], getcurpos()[1:])
|
||||||
" below last line goes to last line
|
" below last line goes to last line
|
||||||
call cursor(9, 1)
|
call cursor(9, 1)
|
||||||
call assert_equal([4, 1, 0, 3], getcurpos()[1:])
|
call assert_equal([4, 1, 0, 1], getcurpos()[1:])
|
||||||
|
|
||||||
quit!
|
quit!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Very short version of what matchparen does.
|
||||||
|
function s:Highlight_Matching_Pair()
|
||||||
|
let save_cursor = getcurpos()
|
||||||
|
call setpos('.', save_cursor)
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_curswant_with_autocommand()
|
||||||
|
new
|
||||||
|
call setline(1, ['func()', '{', '}', '----'])
|
||||||
|
autocmd! CursorMovedI * call s:Highlight_Matching_Pair()
|
||||||
|
call disable_char_avail_for_testing(1)
|
||||||
|
exe "normal! 3Ga\<Down>X\<Esc>"
|
||||||
|
call disable_char_avail_for_testing(0)
|
||||||
|
call assert_equal('-X---', getline(4))
|
||||||
|
autocmd! CursorMovedI *
|
||||||
|
quit!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ static int included_patches[] = {
|
|||||||
// 1303 NA
|
// 1303 NA
|
||||||
// 1302 NA
|
// 1302 NA
|
||||||
// 1301 NA
|
// 1301 NA
|
||||||
// 1300,
|
1300,
|
||||||
// 1299 NA
|
// 1299 NA
|
||||||
// 1298 NA
|
// 1298 NA
|
||||||
// 1297 NA
|
// 1297 NA
|
||||||
|
Loading…
Reference in New Issue
Block a user