aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ex_cmds/map_spec.lua
blob: 160c7cf12681e12c3bfb48b10618b50eea09c7d8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
local helpers = require("test.functional.helpers")(after_each)

local eq = helpers.eq
local feed = helpers.feed
local meths = helpers.meths
local clear = helpers.clear
local command = helpers.command
local expect = helpers.expect
local insert = helpers.insert
local eval = helpers.eval

describe(':*map', function()
  before_each(clear)

  it('are not affected by &isident', function()
    meths.set_var('counter', 0)
    command('nnoremap <C-x> :let counter+=1<CR>')
    meths.set_option('isident', ('%u'):format(('>'):byte()))
    command('nnoremap <C-y> :let counter+=1<CR>')
    -- &isident used to disable keycode parsing here as well
    feed('\24\25<C-x><C-y>')
    eq(4, meths.get_var('counter'))
  end)

  it(':imap <M-">', function()
    command('imap <M-"> foo')
    feed('i-<M-">-')
    expect('-foo-')
  end)

  it('<Plug> keymaps ignore nore', function()
    command('let x = 0')
    eq(0, meths.eval('x'))
    command [[
      nnoremap <Plug>(Increase_x) <cmd>let x+=1<cr>
      nmap increase_x_remap <Plug>(Increase_x)
      nnoremap increase_x_noremap <Plug>(Increase_x)
    ]]
    feed('increase_x_remap')
    eq(1, meths.eval('x'))
    feed('increase_x_noremap')
    eq(2, meths.eval('x'))
  end)
  it("Doesn't auto ignore nore for keys before or after <Plug> keymap", function()
    command('let x = 0')
    eq(0, meths.eval('x'))
    command [[
      nnoremap x <nop>
      nnoremap <Plug>(Increase_x) <cmd>let x+=1<cr>
      nmap increase_x_remap x<Plug>(Increase_x)x
      nnoremap increase_x_noremap x<Plug>(Increase_x)x
    ]]
    insert("Some text")
    eq('Some text', eval("getline('.')"))

    feed('increase_x_remap')
    eq(1, meths.eval('x'))
    eq('Some text', eval("getline('.')"))
    feed('increase_x_noremap')
    eq(2, meths.eval('x'))
    eq('Some te', eval("getline('.')"))
  end)
end)