mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
vim-patch:8.2.0491: cannot recognize a <script> mapping using maparg()
Problem: Cannot recognize a <script> mapping using maparg().
Solution: Add the "script" key. (closes vim/vim#5873)
2da0f0c445
This commit is contained in:
parent
f85bf6ec37
commit
909af2f3f1
@ -5835,6 +5835,7 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
||||
"rhs" The {rhs} of the mapping as typed.
|
||||
"silent" 1 for a |:map-silent| mapping, else 0.
|
||||
"noremap" 1 if the {rhs} of the mapping is not remappable.
|
||||
"script" 1 if mapping was defined with <script>.
|
||||
"expr" 1 for an expression mapping (|:map-<expr>|).
|
||||
"buffer" 1 for a buffer local mapping (|:map-local|).
|
||||
"mode" Modes for which the mapping is defined. In
|
||||
|
@ -6754,6 +6754,7 @@ void mapblock_fill_dict(dict_T *const dict,
|
||||
}
|
||||
tv_dict_add_allocated_str(dict, S_LEN("lhs"), lhs);
|
||||
tv_dict_add_nr(dict, S_LEN("noremap"), noremap_value);
|
||||
tv_dict_add_nr(dict, S_LEN("script"), mp->m_noremap == REMAP_SCRIPT ? 1 : 0);
|
||||
tv_dict_add_nr(dict, S_LEN("expr"), mp->m_expr ? 1 : 0);
|
||||
tv_dict_add_nr(dict, S_LEN("silent"), mp->m_silent ? 1 : 0);
|
||||
tv_dict_add_nr(dict, S_LEN("sid"), (varnumber_T)mp->m_script_ctx.sc_sid);
|
||||
|
@ -15,23 +15,23 @@ function Test_maparg()
|
||||
map foo<C-V> is<F4>foo
|
||||
vnoremap <script> <buffer> <expr> <silent> bar isbar
|
||||
call assert_equal("is<F4>foo", maparg('foo<C-V>'))
|
||||
call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>',
|
||||
call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'foo<C-V>',
|
||||
\ 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': sid, 'lnum': lnum + 1,
|
||||
\ 'rhs': 'is<F4>foo', 'buffer': 0},
|
||||
\ maparg('foo<C-V>', '', 0, 1))
|
||||
call assert_equal({'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v',
|
||||
call assert_equal({'silent': 1, 'noremap': 1, 'script': 1, 'lhs': 'bar', 'mode': 'v',
|
||||
\ 'nowait': 0, 'expr': 1, 'sid': sid, 'lnum': lnum + 2,
|
||||
\ 'rhs': 'isbar', 'buffer': 1},
|
||||
\ maparg('bar', '', 0, 1))
|
||||
let lnum = expand('<sflnum>')
|
||||
map <buffer> <nowait> foo bar
|
||||
call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ',
|
||||
call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'foo', 'mode': ' ',
|
||||
\ 'nowait': 1, 'expr': 0, 'sid': sid, 'lnum': lnum + 1, 'rhs': 'bar',
|
||||
\ 'buffer': 1},
|
||||
\ maparg('foo', '', 0, 1))
|
||||
let lnum = expand('<sflnum>')
|
||||
tmap baz foo
|
||||
call assert_equal({'silent': 0, 'noremap': 0, 'lhs': 'baz', 'mode': 't',
|
||||
call assert_equal({'silent': 0, 'noremap': 0, 'script': 0, 'lhs': 'baz', 'mode': 't',
|
||||
\ 'nowait': 0, 'expr': 0, 'sid': sid, 'lnum': lnum + 1, 'rhs': 'foo',
|
||||
\ 'buffer': 0},
|
||||
\ maparg('baz', 't', 0, 1))
|
||||
|
@ -21,6 +21,7 @@ describe('nvim_get_keymap', function()
|
||||
local foo_bar_string = 'nnoremap foo bar'
|
||||
local foo_bar_map_table = {
|
||||
lhs='foo',
|
||||
script=0,
|
||||
silent=0,
|
||||
rhs='bar',
|
||||
expr=0,
|
||||
@ -245,6 +246,7 @@ describe('nvim_get_keymap', function()
|
||||
|
||||
it('works correctly despite various &cpo settings', function()
|
||||
local cpo_table = {
|
||||
script=0,
|
||||
silent=0,
|
||||
expr=0,
|
||||
sid=0,
|
||||
@ -302,6 +304,7 @@ describe('nvim_get_keymap', function()
|
||||
lhs='| |',
|
||||
rhs='| |',
|
||||
mode='n',
|
||||
script=0,
|
||||
silent=0,
|
||||
expr=0,
|
||||
sid=0,
|
||||
@ -343,6 +346,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
|
||||
to_return.noremap = not opts.noremap and 0 or 1
|
||||
to_return.lhs = lhs
|
||||
to_return.rhs = rhs
|
||||
to_return.script = 0
|
||||
to_return.silent = not opts.silent and 0 or 1
|
||||
to_return.nowait = not opts.nowait and 0 or 1
|
||||
to_return.expr = not opts.expr and 0 or 1
|
||||
|
@ -13,6 +13,7 @@ describe('maparg()', function()
|
||||
|
||||
local foo_bar_map_table = {
|
||||
lhs='foo',
|
||||
script=0,
|
||||
silent=0,
|
||||
rhs='bar',
|
||||
expr=0,
|
||||
@ -147,6 +148,7 @@ describe('maparg()', function()
|
||||
mode = 'n',
|
||||
noremap = 1,
|
||||
nowait = 0,
|
||||
script=0,
|
||||
sid = 0,
|
||||
silent = 0,
|
||||
lnum = 0,
|
||||
|
@ -49,9 +49,9 @@ describe('maparg()', function()
|
||||
-- Assert buffer contents.
|
||||
expect([[
|
||||
is<F4>foo
|
||||
{'lnum': 0, 'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
|
||||
{'lnum': 0, 'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
|
||||
{'lnum': 0, 'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
|
||||
{'lnum': 0, 'script': 0, 'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
|
||||
{'lnum': 0, 'script': 1, 'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
|
||||
{'lnum': 0, 'script': 0, 'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}
|
||||
xrx
|
||||
yRy
|
||||
abcd]])
|
||||
|
Loading…
Reference in New Issue
Block a user