diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2024-12-18 09:04:32 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-18 09:04:32 +0800 |
| commit | f7c42433c55203a1421276b33b6d3fedd652ca7e (patch) | |
| tree | f452d6044948242f34fdce0480fe938392724237 /test/old/testdir | |
| parent | 51c380238cd23c5e6e050dfb379ae6b30bef032c (diff) | |
| download | rneovim-f7c42433c55203a1421276b33b6d3fedd652ca7e.tar.gz rneovim-f7c42433c55203a1421276b33b6d3fedd652ca7e.tar.bz2 rneovim-f7c42433c55203a1421276b33b6d3fedd652ca7e.zip | |
vim-patch:9.1.0940: Wrong cursor shape with "gq" and 'indentexpr' executes :normal (#31616)
Problem: Wrong cursor shape with "gq" and 'indentexpr' executes :normal
Solution: Update cursor and mouse shape after restoring old_State.
(zeertzjq)
closes: vim/vim#16241
Solution: Update cursor and mouse shape after restoring old_State.
https://github.com/vim/vim/commit/6c3027744e71937b24829135ba072090d7d52bc3
Diffstat (limited to 'test/old/testdir')
| -rw-r--r-- | test/old/testdir/test_indent.vim | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/old/testdir/test_indent.vim b/test/old/testdir/test_indent.vim index 0998b04443..36670a0472 100644 --- a/test/old/testdir/test_indent.vim +++ b/test/old/testdir/test_indent.vim @@ -1,5 +1,8 @@ " Test for various indent options +source shared.vim +source check.vim + func Test_preserveindent() new " Test for autoindent copying indent from the previous line @@ -303,4 +306,50 @@ func Test_indent_overflow_count2() close! endfunc +" Test that mouse shape is restored to Normal mode after using "gq" when +" 'indentexpr' executes :normal. +func Test_indent_norm_with_gq() + CheckFeature mouseshape + CheckCanRunGui + + let lines =<< trim END + func Indent() + exe "normal! \<Ignore>" + return 0 + endfunc + + setlocal indentexpr=Indent() + END + call writefile(lines, 'Xindentexpr.vim', 'D') + + let lines =<< trim END + vim9script + var mouse_shapes = [] + + setline(1, [repeat('a', 80), repeat('b', 80)]) + + feedkeys('ggVG') + timer_start(50, (_) => { + mouse_shapes += [getmouseshape()] + timer_start(50, (_) => { + feedkeys('gq') + timer_start(50, (_) => { + mouse_shapes += [getmouseshape()] + timer_start(50, (_) => { + writefile(mouse_shapes, 'Xmouseshapes') + quit! + }) + }) + }) + }) + END + call writefile(lines, 'Xmouseshape.vim', 'D') + + call RunVim([], [], "-g -S Xindentexpr.vim -S Xmouseshape.vim") + call WaitForAssert({-> assert_equal(['rightup-arrow', 'arrow'], + \ readfile('Xmouseshapes'))}, 300) + + call delete('Xmouseshapes') +endfunc + " vim: shiftwidth=2 sts=2 expandtab |