100b24be4SBram Moolenaar" Test for textobjects 200b24be4SBram Moolenaar 300b24be4SBram Moolenaarif !has('textobjects') 400b24be4SBram Moolenaar finish 500b24be4SBram Moolenaarendif 600b24be4SBram Moolenaar 7*c3c766eaSBram Moolenaarset belloff=all 800b24be4SBram Moolenaarfunction! 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! 3200b24be4SBram Moolenaarendfunction 3300b24be4SBram Moolenaar 3400b24be4SBram Moolenaarfunction! Test_inner_block_without_cpo_M() 3500b24be4SBram Moolenaar call CpoM('(red \(blue) green)', 0, ['red \(blue', 'red \(blue', '']) 3600b24be4SBram Moolenaarendfunction 3700b24be4SBram Moolenaar 3800b24be4SBram Moolenaarfunction! Test_inner_block_with_cpo_M_left_backslash() 3900b24be4SBram Moolenaar call CpoM('(red \(blue) green)', 1, ['red \(blue) green', 'blue', 'red \(blue) green']) 4000b24be4SBram Moolenaarendfunction 4100b24be4SBram Moolenaar 4200b24be4SBram Moolenaarfunction! Test_inner_block_with_cpo_M_right_backslash() 4300b24be4SBram Moolenaar call CpoM('(red (blue\) green)', 1, ['red (blue\) green', 'blue\', 'red (blue\) green']) 4400b24be4SBram Moolenaarendfunction 45