summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorshane.xb.qian <shane.qian@foxmail.com>2023-11-08 21:44:48 +0100
committerChristian Brabandt <cb@256bit.org>2023-11-08 21:46:30 +0100
commit7fbbd7fdc6df9dc198b3735cfbe8dbe8afd646f9 (patch)
tree61573840649a9ae1f64665ff63f0dbb223c4d54c /src
parent6a650bf696f1df3214b3d788947447c5bbf1a77d (diff)
runtime(termdebug): handle buffer-local mappings properly
closes: #13475 Signed-off-by: shane.xb.qian <shane.qian@foxmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src')
-rw-r--r--src/testdir/test_termdebug.vim73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/testdir/test_termdebug.vim b/src/testdir/test_termdebug.vim
index eba2a61762..23ec0e828c 100644
--- a/src/testdir/test_termdebug.vim
+++ b/src/testdir/test_termdebug.vim
@@ -83,10 +83,83 @@ func Test_termdebug_basic()
wincmd t
quit!
redraw!
+ call WaitForAssert({-> assert_equal(1, winnr('$'))})
call assert_equal([], sign_getplaced('', #{group: 'TermDebug'})[0].signs)
call delete('XTD_basic')
%bw!
endfunc
+func Test_termdebug_mapping()
+ %bw!
+ call assert_equal(maparg('K', 'n', 0, 1)->empty(), 1)
+ call assert_equal(maparg('-', 'n', 0, 1)->empty(), 1)
+ call assert_equal(maparg('+', 'n', 0, 1)->empty(), 1)
+ Termdebug
+ call WaitForAssert({-> assert_equal(3, winnr('$'))})
+ wincmd b
+ call assert_equal(maparg('K', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('-', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('+', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('K', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('-', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('+', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('K', 'n', 0, 1).rhs, ':Evaluate<CR>')
+ wincmd t
+ quit!
+ redraw!
+ call WaitForAssert({-> assert_equal(1, winnr('$'))})
+ call assert_equal(maparg('K', 'n', 0, 1)->empty(), 1)
+ call assert_equal(maparg('-', 'n', 0, 1)->empty(), 1)
+ call assert_equal(maparg('+', 'n', 0, 1)->empty(), 1)
+
+ %bw!
+ nnoremap K :echom "K"<cr>
+ nnoremap - :echom "-"<cr>
+ nnoremap + :echom "+"<cr>
+ Termdebug
+ call WaitForAssert({-> assert_equal(3, winnr('$'))})
+ wincmd b
+ call assert_equal(maparg('K', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('-', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('+', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('K', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('-', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('+', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('K', 'n', 0, 1).rhs, ':Evaluate<CR>')
+ wincmd t
+ quit!
+ redraw!
+ call WaitForAssert({-> assert_equal(1, winnr('$'))})
+ call assert_equal(maparg('K', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('-', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('+', 'n', 0, 1)->empty(), 0)
+ call assert_equal(maparg('K', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('-', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('+', 'n', 0, 1).buffer, 0)
+ call assert_equal(maparg('K', 'n', 0, 1).rhs, ':echom "K"<cr>')
+
+ %bw!
+ nnoremap <buffer> K :echom "bK"<cr>
+ nnoremap <buffer> - :echom "b-"<cr>
+ nnoremap <buffer> + :echom "b+"<cr>
+ Termdebug
+ call WaitForAssert({-> assert_equal(3, winnr('$'))})
+ wincmd b
+ call assert_equal(maparg('K', 'n', 0, 1).buffer, 1)
+ call assert_equal(maparg('-', 'n', 0, 1).buffer, 1)
+ call assert_equal(maparg('+', 'n', 0, 1).buffer, 1)
+ call assert_equal(maparg('K', 'n', 0, 1).rhs, ':echom "bK"<cr>')
+ wincmd t
+ quit!
+ redraw!
+ call WaitForAssert({-> assert_equal(1, winnr('$'))})
+ call assert_equal(maparg('K', 'n', 0, 1).buffer, 1)
+ call assert_equal(maparg('-', 'n', 0, 1).buffer, 1)
+ call assert_equal(maparg('+', 'n', 0, 1).buffer, 1)
+ call assert_equal(maparg('K', 'n', 0, 1).rhs, ':echom "bK"<cr>')
+
+ %bw!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab