| " Test for textobjects |
| |
| if !has('textobjects') |
| finish |
| endif |
| |
| function! CpoM(line, useM, expected) |
| new |
| |
| if a:useM |
| set cpoptions+=M |
| else |
| set cpoptions-=M |
| endif |
| |
| call setline(1, a:line) |
| |
| call setreg('"', '') |
| normal! ggfrmavi)y |
| call assert_equal(getreg('"'), a:expected[0]) |
| |
| call setreg('"', '') |
| normal! `afbmavi)y |
| call assert_equal(getreg('"'), a:expected[1]) |
| |
| call setreg('"', '') |
| normal! `afgmavi)y |
| call assert_equal(getreg('"'), a:expected[2]) |
| |
| q! |
| endfunction |
| |
| function! Test_inner_block_without_cpo_M() |
| call CpoM('(red \(blue) green)', 0, ['red \(blue', 'red \(blue', '']) |
| endfunction |
| |
| function! Test_inner_block_with_cpo_M_left_backslash() |
| call CpoM('(red \(blue) green)', 1, ['red \(blue) green', 'blue', 'red \(blue) green']) |
| endfunction |
| |
| function! Test_inner_block_with_cpo_M_right_backslash() |
| call CpoM('(red (blue\) green)', 1, ['red (blue\) green', 'blue\', 'red (blue\) green']) |
| endfunction |