mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(mappings): use all buckets in second round of unmap (#21534)
This commit is contained in:
parent
6f25623e79
commit
357aab4c65
@ -693,7 +693,7 @@ static int buf_do_map(int maptype, MapArguments *args, int mode, bool is_abbrev,
|
|||||||
for (int round = 0; (round == 0 || maptype == MAPTYPE_UNMAP) && round <= 1
|
for (int round = 0; (round == 0 || maptype == MAPTYPE_UNMAP) && round <= 1
|
||||||
&& !did_it && !got_int; round++) {
|
&& !did_it && !got_int; round++) {
|
||||||
int hash_start, hash_end;
|
int hash_start, hash_end;
|
||||||
if (has_lhs || is_abbrev) {
|
if ((round == 0 && has_lhs) || is_abbrev) {
|
||||||
// just use one hash
|
// just use one hash
|
||||||
hash_start = is_abbrev ? 0 : MAP_HASH(mode, (uint8_t)lhs[0]);
|
hash_start = is_abbrev ? 0 : MAP_HASH(mode, (uint8_t)lhs[0]);
|
||||||
hash_end = hash_start + 1;
|
hash_end = hash_start + 1;
|
||||||
|
@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen')
|
|||||||
|
|
||||||
local eq = helpers.eq
|
local eq = helpers.eq
|
||||||
local exec = helpers.exec
|
local exec = helpers.exec
|
||||||
|
local exec_capture = helpers.exec_capture
|
||||||
local feed = helpers.feed
|
local feed = helpers.feed
|
||||||
local meths = helpers.meths
|
local meths = helpers.meths
|
||||||
local clear = helpers.clear
|
local clear = helpers.clear
|
||||||
@ -30,12 +31,12 @@ describe(':*map', function()
|
|||||||
expect('-foo-')
|
expect('-foo-')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('shows <nop> as mapping rhs', function()
|
it('shows <Nop> as mapping rhs', function()
|
||||||
command('nmap asdf <Nop>')
|
command('nmap asdf <Nop>')
|
||||||
eq([[
|
eq([[
|
||||||
|
|
||||||
n asdf <Nop>]],
|
n asdf <Nop>]],
|
||||||
helpers.exec_capture('nmap asdf'))
|
exec_capture('nmap asdf'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('mappings with description can be filtered', function()
|
it('mappings with description can be filtered', function()
|
||||||
@ -48,7 +49,7 @@ n asdf3 qwert
|
|||||||
do the other thing
|
do the other thing
|
||||||
n asdf1 qwert
|
n asdf1 qwert
|
||||||
do the one thing]],
|
do the one thing]],
|
||||||
helpers.exec_capture('filter the nmap'))
|
exec_capture('filter the nmap'))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('<Plug> mappings ignore nore', function()
|
it('<Plug> mappings ignore nore', function()
|
||||||
@ -84,6 +85,12 @@ n asdf1 qwert
|
|||||||
eq(2, meths.eval('x'))
|
eq(2, meths.eval('x'))
|
||||||
eq('Some te', eval("getline('.')"))
|
eq('Some te', eval("getline('.')"))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it(':unmap with rhs works when lhs is in another bucket #21530', function()
|
||||||
|
command('map F <Plug>Foo')
|
||||||
|
command('unmap <Plug>Foo')
|
||||||
|
eq('\nNo mapping found', exec_capture('map F'))
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('Screen', function()
|
describe('Screen', function()
|
||||||
|
Loading…
Reference in New Issue
Block a user