1" Test for textobjects
2
3if !has('textobjects')
4  finish
5endif
6
7set belloff=all
8function! CpoM(line, useM, expected)
9  new
10
11  if a:useM
12    set cpoptions+=M
13  else
14    set cpoptions-=M
15  endif
16
17  call setline(1, a:line)
18
19  call setreg('"', '')
20  normal! ggfrmavi)y
21  call assert_equal(getreg('"'), a:expected[0])
22
23  call setreg('"', '')
24  normal! `afbmavi)y
25  call assert_equal(getreg('"'), a:expected[1])
26
27  call setreg('"', '')
28  normal! `afgmavi)y
29  call assert_equal(getreg('"'), a:expected[2])
30
31  q!
32endfunction
33
34function! Test_inner_block_without_cpo_M()
35  call CpoM('(red \(blue) green)', 0, ['red \(blue', 'red \(blue', ''])
36endfunction
37
38function! Test_inner_block_with_cpo_M_left_backslash()
39  call CpoM('(red \(blue) green)', 1, ['red \(blue) green', 'blue', 'red \(blue) green'])
40endfunction
41
42function! Test_inner_block_with_cpo_M_right_backslash()
43  call CpoM('(red (blue\) green)', 1, ['red (blue\) green', 'blue\', 'red (blue\) green'])
44endfunction
45