neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 48a35106efefa8f74d850d3eac365dc76b008ca3
parent c8fe8c5ea4b57b4fb0aaf022b94aa7377c5b7a60
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Mon, 25 Apr 2022 06:41:01 +0800

vim-patch:8.2.4818: no test for what 8.2.4806 fixes

Problem:    No test for what 8.2.4806 fixes.
Solution:   Add a test. (closes vim/vim#10727)
https://github.com/vim/vim/commit/ac92ab771952b2a9ee39ea6fa5e70e4c072942d5

Test cannot be used because it must use test_setmouse(). Use a Lua test.

Diffstat:
Msrc/nvim/testdir/test_mapping.vim | 29+++++++++++++++++++++++++++++
Mtest/functional/legacy/mapping_spec.lua | 15++++++++++++++-
2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/src/nvim/testdir/test_mapping.vim b/src/nvim/testdir/test_mapping.vim @@ -676,6 +676,35 @@ func Test_plug_remap() %bw! endfunc +func Test_mouse_drag_mapped_start_select() + CheckFunction test_setmouse + set mouse=a + set selectmode=key,mouse + func ClickExpr() + call test_setmouse(1, 1) + return "\<LeftMouse>" + endfunc + func DragExpr() + call test_setmouse(1, 2) + return "\<LeftDrag>" + endfunc + nnoremap <expr> <F2> ClickExpr() + nmap <expr> <F3> DragExpr() + + nnoremap <LeftDrag> <LeftDrag><Cmd><CR> + exe "normal \<F2>\<F3>" + call assert_equal('s', mode()) + exe "normal! \<C-\>\<C-N>" + + nunmap <LeftDrag> + nunmap <F2> + nunmap <F3> + delfunc ClickExpr + delfunc DragExpr + set selectmode& + set mouse& +endfunc + " Test for mapping <LeftDrag> in Insert mode func Test_mouse_drag_insert_map() CheckFunction test_setmouse diff --git a/test/functional/legacy/mapping_spec.lua b/test/functional/legacy/mapping_spec.lua @@ -129,10 +129,23 @@ describe('mapping', function() ]]) end) + it('dragging starts Select mode even if coming from mapping vim-patch:8.2.4806', function() + command('set mouse=a') + command('set selectmode=mouse') + + command('nnoremap <LeftDrag> <LeftDrag><Cmd><CR>') + sleep(10) + meths.input_mouse('left', 'press', '', 0, 0, 0) + sleep(10) + meths.input_mouse('left', 'drag', '', 0, 0, 1) + sleep(10) + eq('s', eval('mode()')) + end) + it('<LeftDrag> mapping in Insert mode works correctly vim-patch:8.2.4692', function() command('set mouse=a') - command([[inoremap <LeftDrag> <LeftDrag><Cmd>let g:dragged = 1<CR>]]) + command('inoremap <LeftDrag> <LeftDrag><Cmd>let g:dragged = 1<CR>') feed('i') sleep(10) meths.input_mouse('left', 'press', '', 0, 0, 0)