100b24be4SBram Moolenaar" Test for textobjects 200b24be4SBram Moolenaar 300b24be4SBram Moolenaarif !has('textobjects') 400b24be4SBram Moolenaar finish 500b24be4SBram Moolenaarendif 600b24be4SBram Moolenaar 7c3c766eaSBram Moolenaarset belloff=all 8*c5e2b040SBram Moolenaarfunc CpoM(line, useM, expected) 900b24be4SBram Moolenaar new 1000b24be4SBram Moolenaar 1100b24be4SBram Moolenaar if a:useM 1200b24be4SBram Moolenaar set cpoptions+=M 1300b24be4SBram Moolenaar else 1400b24be4SBram Moolenaar set cpoptions-=M 1500b24be4SBram Moolenaar endif 1600b24be4SBram Moolenaar 1700b24be4SBram Moolenaar call setline(1, a:line) 1800b24be4SBram Moolenaar 1900b24be4SBram Moolenaar call setreg('"', '') 2000b24be4SBram Moolenaar normal! ggfrmavi)y 2100b24be4SBram Moolenaar call assert_equal(getreg('"'), a:expected[0]) 2200b24be4SBram Moolenaar 2300b24be4SBram Moolenaar call setreg('"', '') 2400b24be4SBram Moolenaar normal! `afbmavi)y 2500b24be4SBram Moolenaar call assert_equal(getreg('"'), a:expected[1]) 2600b24be4SBram Moolenaar 2700b24be4SBram Moolenaar call setreg('"', '') 2800b24be4SBram Moolenaar normal! `afgmavi)y 2900b24be4SBram Moolenaar call assert_equal(getreg('"'), a:expected[2]) 3000b24be4SBram Moolenaar 3100b24be4SBram Moolenaar q! 32*c5e2b040SBram Moolenaarendfunc 3300b24be4SBram Moolenaar 34*c5e2b040SBram Moolenaarfunc Test_inner_block_without_cpo_M() 3500b24be4SBram Moolenaar call CpoM('(red \(blue) green)', 0, ['red \(blue', 'red \(blue', '']) 36*c5e2b040SBram Moolenaarendfunc 3700b24be4SBram Moolenaar 38*c5e2b040SBram Moolenaarfunc Test_inner_block_with_cpo_M_left_backslash() 3900b24be4SBram Moolenaar call CpoM('(red \(blue) green)', 1, ['red \(blue) green', 'blue', 'red \(blue) green']) 40*c5e2b040SBram Moolenaarendfunc 4100b24be4SBram Moolenaar 42*c5e2b040SBram Moolenaarfunc Test_inner_block_with_cpo_M_right_backslash() 4300b24be4SBram Moolenaar call CpoM('(red (blue\) green)', 1, ['red (blue\) green', 'blue\', 'red (blue\) green']) 44*c5e2b040SBram Moolenaarendfunc 45*c5e2b040SBram Moolenaar 46*c5e2b040SBram Moolenaarfunc Test_quote_selection_selection_exclusive() 47*c5e2b040SBram Moolenaar new 48*c5e2b040SBram Moolenaar call setline(1, "a 'bcde' f") 49*c5e2b040SBram Moolenaar set selection=exclusive 50*c5e2b040SBram Moolenaar exe "norm! fdvhi'y" 51*c5e2b040SBram Moolenaar call assert_equal('bcde', @") 52*c5e2b040SBram Moolenaar set selection&vim 53*c5e2b040SBram Moolenaar bw! 54*c5e2b040SBram Moolenaarendfunc 55