mirror of
https://github.com/neovim/neovim.git
synced 2025-09-05 19:08:15 +00:00
vim-patch:partial:9.1.0501: too complicated mapping restore in termdebug
Problem: too complicated mapping restore in termdebug
Solution: simplify unmapping logic, add a few more tests
(Ubaldo Tiberi)
closes: vim/vim#15046
46f2823807
Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
This commit is contained in:
@@ -280,9 +280,20 @@ func Test_termdebug_mapping()
|
|||||||
call assert_equal(':echom "K"<cr>', maparg('K', 'n', 0, 1).rhs)
|
call assert_equal(':echom "K"<cr>', maparg('K', 'n', 0, 1).rhs)
|
||||||
|
|
||||||
%bw!
|
%bw!
|
||||||
|
|
||||||
|
" -- Test that local-buffer mappings are restored in the correct buffers --
|
||||||
|
" local mappings for foo
|
||||||
|
file foo
|
||||||
nnoremap <buffer> K :echom "bK"<cr>
|
nnoremap <buffer> K :echom "bK"<cr>
|
||||||
nnoremap <buffer> - :echom "b-"<cr>
|
nnoremap <buffer> - :echom "b-"<cr>
|
||||||
nnoremap <buffer> + :echom "b+"<cr>
|
nnoremap <buffer> + :echom "b+"<cr>
|
||||||
|
|
||||||
|
" no mappings for 'bar'
|
||||||
|
enew
|
||||||
|
file bar
|
||||||
|
|
||||||
|
" Start termdebug from foo
|
||||||
|
buffer foo
|
||||||
Termdebug
|
Termdebug
|
||||||
call WaitForAssert({-> assert_equal(3, winnr('$'))})
|
call WaitForAssert({-> assert_equal(3, winnr('$'))})
|
||||||
wincmd b
|
wincmd b
|
||||||
@@ -290,15 +301,41 @@ func Test_termdebug_mapping()
|
|||||||
call assert_true(maparg('-', 'n', 0, 1).buffer)
|
call assert_true(maparg('-', 'n', 0, 1).buffer)
|
||||||
call assert_true(maparg('+', 'n', 0, 1).buffer)
|
call assert_true(maparg('+', 'n', 0, 1).buffer)
|
||||||
call assert_equal(maparg('K', 'n', 0, 1).rhs, ':echom "bK"<cr>')
|
call assert_equal(maparg('K', 'n', 0, 1).rhs, ':echom "bK"<cr>')
|
||||||
|
|
||||||
|
Source
|
||||||
|
buffer bar
|
||||||
|
call assert_false(maparg('K', 'n', 0, 1)->empty())
|
||||||
|
call assert_false(maparg('-', 'n', 0, 1)->empty())
|
||||||
|
call assert_false(maparg('+', 'n', 0, 1)->empty())
|
||||||
|
call assert_true(maparg('K', 'n', 0, 1).buffer->empty())
|
||||||
|
call assert_true(maparg('-', 'n', 0, 1).buffer->empty())
|
||||||
|
call assert_true(maparg('+', 'n', 0, 1).buffer->empty())
|
||||||
wincmd t
|
wincmd t
|
||||||
quit!
|
quit!
|
||||||
redraw!
|
redraw!
|
||||||
call WaitForAssert({-> assert_equal(1, winnr('$'))})
|
call WaitForAssert({-> assert_equal(1, winnr('$'))})
|
||||||
|
|
||||||
|
" Termdebug session ended. Buffer 'bar' shall have no mappings
|
||||||
|
call assert_true(bufname() ==# 'bar')
|
||||||
|
call assert_false(maparg('K', 'n', 0, 1)->empty())
|
||||||
|
call assert_false(maparg('-', 'n', 0, 1)->empty())
|
||||||
|
call assert_false(maparg('+', 'n', 0, 1)->empty())
|
||||||
|
call assert_true(maparg('K', 'n', 0, 1).buffer->empty())
|
||||||
|
call assert_true(maparg('-', 'n', 0, 1).buffer->empty())
|
||||||
|
call assert_true(maparg('+', 'n', 0, 1).buffer->empty())
|
||||||
|
|
||||||
|
" Buffer 'foo' shall have the same mapping as before running the termdebug
|
||||||
|
" session
|
||||||
|
buffer foo
|
||||||
|
call assert_true(bufname() ==# 'foo')
|
||||||
call assert_true(maparg('K', 'n', 0, 1).buffer)
|
call assert_true(maparg('K', 'n', 0, 1).buffer)
|
||||||
call assert_true(maparg('-', 'n', 0, 1).buffer)
|
call assert_true(maparg('-', 'n', 0, 1).buffer)
|
||||||
call assert_true(maparg('+', 'n', 0, 1).buffer)
|
call assert_true(maparg('+', 'n', 0, 1).buffer)
|
||||||
call assert_equal(':echom "bK"<cr>', maparg('K', 'n', 0, 1).rhs)
|
call assert_equal(':echom "bK"<cr>', maparg('K', 'n', 0, 1).rhs)
|
||||||
|
|
||||||
|
nunmap K
|
||||||
|
nunmap +
|
||||||
|
nunmap -
|
||||||
%bw!
|
%bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user