141e0f2f4SBram Moolenaar" Test for joining lines. 241e0f2f4SBram Moolenaar 341e0f2f4SBram Moolenaarfunc Test_join_with_count() 441e0f2f4SBram Moolenaar new 541e0f2f4SBram Moolenaar call setline(1, ['one', 'two', 'three', 'four']) 641e0f2f4SBram Moolenaar normal J 741e0f2f4SBram Moolenaar call assert_equal('one two', getline(1)) 841e0f2f4SBram Moolenaar %del 941e0f2f4SBram Moolenaar call setline(1, ['one', 'two', 'three', 'four']) 1041e0f2f4SBram Moolenaar normal 10J 1141e0f2f4SBram Moolenaar call assert_equal('one two three four', getline(1)) 12cc184cfbSBram Moolenaar 13cc184cfbSBram Moolenaar call setline(1, ['one', '', 'two']) 14cc184cfbSBram Moolenaar normal J 15cc184cfbSBram Moolenaar call assert_equal('one', getline(1)) 16cc184cfbSBram Moolenaar 17cc184cfbSBram Moolenaar call setline(1, ['one', ' ', 'two']) 18cc184cfbSBram Moolenaar normal J 19cc184cfbSBram Moolenaar call assert_equal('one', getline(1)) 20cc184cfbSBram Moolenaar 21cc184cfbSBram Moolenaar call setline(1, ['one', '', '', 'two']) 22cc184cfbSBram Moolenaar normal JJ 23cc184cfbSBram Moolenaar call assert_equal('one', getline(1)) 24cc184cfbSBram Moolenaar 25cc184cfbSBram Moolenaar call setline(1, ['one', ' ', ' ', 'two']) 26cc184cfbSBram Moolenaar normal JJ 27cc184cfbSBram Moolenaar call assert_equal('one', getline(1)) 28cc184cfbSBram Moolenaar 29cc184cfbSBram Moolenaar call setline(1, ['one', '', '', 'two']) 30cc184cfbSBram Moolenaar normal 2J 31cc184cfbSBram Moolenaar call assert_equal('one', getline(1)) 32cc184cfbSBram Moolenaar 3341e0f2f4SBram Moolenaar quit! 3441e0f2f4SBram Moolenaarendfunc 3553f0c962SBram Moolenaar 3653f0c962SBram Moolenaar" Tests for setting the '[,'] marks when joining lines. 3753f0c962SBram Moolenaarfunc Test_join_marks() 3853f0c962SBram Moolenaar enew 3953f0c962SBram Moolenaar call append(0, [ 4053f0c962SBram Moolenaar \ "\t\tO sodales, ludite, vos qui", 4153f0c962SBram Moolenaar \ "attamen consulite per voster honur. Tua pulchra " . 4253f0c962SBram Moolenaar \ "facies me fay planszer milies", 4353f0c962SBram Moolenaar \ "", 4453f0c962SBram Moolenaar \ "This line.", 4553f0c962SBram Moolenaar \ "Should be joined with the next line", 4653f0c962SBram Moolenaar \ "and with this line"]) 4753f0c962SBram Moolenaar 4853f0c962SBram Moolenaar normal gg0gqj 4953f0c962SBram Moolenaar call assert_equal([0, 1, 1, 0], getpos("'[")) 5053f0c962SBram Moolenaar call assert_equal([0, 2, 1, 0], getpos("']")) 5153f0c962SBram Moolenaar 5253f0c962SBram Moolenaar /^This line/;'}-join 5353f0c962SBram Moolenaar call assert_equal([0, 4, 11, 0], getpos("'[")) 5453f0c962SBram Moolenaar call assert_equal([0, 4, 67, 0], getpos("']")) 5553f0c962SBram Moolenaar enew! 5653f0c962SBram Moolenaarendfunc 57fb222df2SBram Moolenaar 58fb222df2SBram Moolenaar" Test for joining lines and marks in them 59fb222df2SBram Moolenaar" in compatible and nocompatible modes 60fb222df2SBram Moolenaar" and with 'joinspaces' set or not 61fb222df2SBram Moolenaar" and with 'cpoptions' flag 'j' set or not 62fb222df2SBram Moolenaarfunc Test_join_spaces_marks() 63fb222df2SBram Moolenaar new 64fb222df2SBram Moolenaar " Text used for the test 65fb222df2SBram Moolenaar insert 66fb222df2SBram Moolenaarasdfasdf. 67fb222df2SBram Moolenaarasdf 68fb222df2SBram Moolenaarasdfasdf. 69fb222df2SBram Moolenaarasdf 70fb222df2SBram Moolenaarasdfasdf. 71fb222df2SBram Moolenaarasdf 72fb222df2SBram Moolenaarasdfasdf. 73fb222df2SBram Moolenaarasdf 74fb222df2SBram Moolenaarasdfasdf. 75fb222df2SBram Moolenaarasdf 76fb222df2SBram Moolenaarasdfasdf. 77fb222df2SBram Moolenaarasdf 78fb222df2SBram Moolenaarasdfasdf. 79fb222df2SBram Moolenaarasdf 80fb222df2SBram Moolenaarasdfasdf 81fb222df2SBram Moolenaarasdf 82fb222df2SBram Moolenaarasdfasdf 83fb222df2SBram Moolenaarasdf 84fb222df2SBram Moolenaarasdfasdf 85fb222df2SBram Moolenaarasdf 86fb222df2SBram Moolenaarasdfasdf 87fb222df2SBram Moolenaarasdf 88fb222df2SBram Moolenaarasdfasdf 89fb222df2SBram Moolenaarasdf 90fb222df2SBram Moolenaarasdfasdf 91fb222df2SBram Moolenaarasdf 92fb222df2SBram Moolenaarasdfasdf 93fb222df2SBram Moolenaarasdf 94fb222df2SBram Moolenaarzx cvn. 95fb222df2SBram Moolenaaras dfg? 96fb222df2SBram Moolenaarhjkl iop! 97fb222df2SBram Moolenaarert 98fb222df2SBram Moolenaarzx cvn. 99fb222df2SBram Moolenaaras dfg? 100fb222df2SBram Moolenaarhjkl iop! 101fb222df2SBram Moolenaarert 102fb222df2SBram Moolenaar. 103fb222df2SBram Moolenaar let text = getline(1, '$') 104fb222df2SBram Moolenaar normal gg 105fb222df2SBram Moolenaar 106fb222df2SBram Moolenaar set nojoinspaces 107fb222df2SBram Moolenaar set cpoptions-=j 108fb222df2SBram Moolenaar normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ 109fb222df2SBram Moolenaar normal j05lmx 110fb222df2SBram Moolenaar normal 2j06lmy 111fb222df2SBram Moolenaar normal 2k4Jy3l$p 112fb222df2SBram Moolenaar normal `xyl$p 113fb222df2SBram Moolenaar normal `yy2l$p 114fb222df2SBram Moolenaar 115fb222df2SBram Moolenaar set cpoptions+=j 116fb222df2SBram Moolenaar normal j05lmx 117fb222df2SBram Moolenaar normal 2j06lmy 118fb222df2SBram Moolenaar normal 2k4Jy3l$p 119fb222df2SBram Moolenaar normal `xyl$p 120fb222df2SBram Moolenaar normal `yy2l$p 121fb222df2SBram Moolenaar 122fb222df2SBram Moolenaar " Expected output 123c79745a8SBram Moolenaar let expected =<< trim [DATA] 124fb222df2SBram Moolenaar asdfasdf. asdf 125fb222df2SBram Moolenaar asdfasdf. asdf 126fb222df2SBram Moolenaar asdfasdf. asdf 127fb222df2SBram Moolenaar asdfasdf. asdf 128fb222df2SBram Moolenaar asdfasdf. asdf 129fb222df2SBram Moolenaar asdfasdf. asdf 130fb222df2SBram Moolenaar asdfasdf. asdf 131fb222df2SBram Moolenaar asdfasdf asdf 132fb222df2SBram Moolenaar asdfasdf asdf 133fb222df2SBram Moolenaar asdfasdf asdf 134fb222df2SBram Moolenaar asdfasdf asdf 135fb222df2SBram Moolenaar asdfasdf asdf 136fb222df2SBram Moolenaar asdfasdf asdf 137fb222df2SBram Moolenaar asdfasdf asdf 138fb222df2SBram Moolenaar zx cvn. as dfg? hjkl iop! ert ernop 139fb222df2SBram Moolenaar zx cvn. as dfg? hjkl iop! ert ernop 140c79745a8SBram Moolenaar [DATA] 141fb222df2SBram Moolenaar 142c79745a8SBram Moolenaar call assert_equal(expected, getline(1, '$')) 143fb222df2SBram Moolenaar 144fb222df2SBram Moolenaar enew! 145fb222df2SBram Moolenaar call append(0, text) 146fb222df2SBram Moolenaar normal gg 147fb222df2SBram Moolenaar 148fb222df2SBram Moolenaar set cpoptions-=j 149fb222df2SBram Moolenaar set joinspaces 150fb222df2SBram Moolenaar normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ 151fb222df2SBram Moolenaar normal j05lmx 152fb222df2SBram Moolenaar normal 2j06lmy 153fb222df2SBram Moolenaar normal 2k4Jy3l$p 154fb222df2SBram Moolenaar normal `xyl$p 155fb222df2SBram Moolenaar normal `yy2l$p 156fb222df2SBram Moolenaar 157fb222df2SBram Moolenaar set cpoptions+=j 158fb222df2SBram Moolenaar normal j05lmx 159fb222df2SBram Moolenaar normal 2j06lmy 160fb222df2SBram Moolenaar normal 2k4Jy3l$p 161fb222df2SBram Moolenaar normal `xyl$p 162fb222df2SBram Moolenaar normal `yy2l$p 163fb222df2SBram Moolenaar 164fb222df2SBram Moolenaar " Expected output 165c79745a8SBram Moolenaar let expected =<< trim [DATA] 166fb222df2SBram Moolenaar asdfasdf. asdf 167fb222df2SBram Moolenaar asdfasdf. asdf 168fb222df2SBram Moolenaar asdfasdf. asdf 169fb222df2SBram Moolenaar asdfasdf. asdf 170fb222df2SBram Moolenaar asdfasdf. asdf 171fb222df2SBram Moolenaar asdfasdf. asdf 172fb222df2SBram Moolenaar asdfasdf. asdf 173fb222df2SBram Moolenaar asdfasdf asdf 174fb222df2SBram Moolenaar asdfasdf asdf 175fb222df2SBram Moolenaar asdfasdf asdf 176fb222df2SBram Moolenaar asdfasdf asdf 177fb222df2SBram Moolenaar asdfasdf asdf 178fb222df2SBram Moolenaar asdfasdf asdf 179fb222df2SBram Moolenaar asdfasdf asdf 180fb222df2SBram Moolenaar zx cvn. as dfg? hjkl iop! ert enop 181fb222df2SBram Moolenaar zx cvn. as dfg? hjkl iop! ert ernop 182fb222df2SBram Moolenaar 183c79745a8SBram Moolenaar [DATA] 184fb222df2SBram Moolenaar 185c79745a8SBram Moolenaar call assert_equal(expected, getline(1, '$')) 186fb222df2SBram Moolenaar 187fb222df2SBram Moolenaar enew! 188fb222df2SBram Moolenaar call append(0, text) 189fb222df2SBram Moolenaar normal gg 190fb222df2SBram Moolenaar 191fb222df2SBram Moolenaar set cpoptions-=j 192fb222df2SBram Moolenaar set nojoinspaces 193fb222df2SBram Moolenaar set compatible 194fb222df2SBram Moolenaar 195fb222df2SBram Moolenaar normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ 196fb222df2SBram Moolenaar normal j4Jy3l$pjdG 197fb222df2SBram Moolenaar 198fb222df2SBram Moolenaar " Expected output 199c79745a8SBram Moolenaar let expected =<< trim [DATA] 200fb222df2SBram Moolenaar asdfasdf. asdf 201fb222df2SBram Moolenaar asdfasdf. asdf 202fb222df2SBram Moolenaar asdfasdf. asdf 203fb222df2SBram Moolenaar asdfasdf. asdf 204fb222df2SBram Moolenaar asdfasdf. asdf 205fb222df2SBram Moolenaar asdfasdf. asdf 206fb222df2SBram Moolenaar asdfasdf. asdf 207fb222df2SBram Moolenaar asdfasdf asdf 208fb222df2SBram Moolenaar asdfasdf asdf 209fb222df2SBram Moolenaar asdfasdf asdf 210fb222df2SBram Moolenaar asdfasdf asdf 211fb222df2SBram Moolenaar asdfasdf asdf 212fb222df2SBram Moolenaar asdfasdf asdf 213fb222df2SBram Moolenaar asdfasdf asdf 214fb222df2SBram Moolenaar zx cvn. as dfg? hjkl iop! ert a 215c79745a8SBram Moolenaar [DATA] 216fb222df2SBram Moolenaar 217c79745a8SBram Moolenaar call assert_equal(expected, getline(1, '$')) 218fb222df2SBram Moolenaar 219fb222df2SBram Moolenaar set nocompatible 220fb222df2SBram Moolenaar set cpoptions&vim 221fb222df2SBram Moolenaar set joinspaces&vim 222fb222df2SBram Moolenaar close! 223fb222df2SBram Moolenaarendfunc 224fb222df2SBram Moolenaar 225fb222df2SBram Moolenaar" Test for joining lines with comments 226fb222df2SBram Moolenaarfunc Test_join_lines_with_comments() 227fb222df2SBram Moolenaar new 228fb222df2SBram Moolenaar 229fb222df2SBram Moolenaar " Text used by the test 230fb222df2SBram Moolenaar insert 231fb222df2SBram Moolenaar{ 232fb222df2SBram Moolenaar 233fb222df2SBram Moolenaar/* 234fb222df2SBram Moolenaar* Make sure the previous comment leader is not removed. 235fb222df2SBram Moolenaar*/ 236fb222df2SBram Moolenaar 237fb222df2SBram Moolenaar/* 238fb222df2SBram Moolenaar* Make sure the previous comment leader is not removed. 239fb222df2SBram Moolenaar*/ 240fb222df2SBram Moolenaar 241fb222df2SBram Moolenaar// Should the next comment leader be left alone? 242fb222df2SBram Moolenaar// Yes. 243fb222df2SBram Moolenaar 244fb222df2SBram Moolenaar// Should the next comment leader be left alone? 245fb222df2SBram Moolenaar// Yes. 246fb222df2SBram Moolenaar 247fb222df2SBram Moolenaar/* Here the comment leader should be left intact. */ 248fb222df2SBram Moolenaar// And so should this one. 249fb222df2SBram Moolenaar 250fb222df2SBram Moolenaar/* Here the comment leader should be left intact. */ 251fb222df2SBram Moolenaar// And so should this one. 252fb222df2SBram Moolenaar 253fb222df2SBram Moolenaarif (condition) // Remove the next comment leader! 254fb222df2SBram Moolenaar// OK, I will. 255fb222df2SBram Moolenaaraction(); 256fb222df2SBram Moolenaar 257fb222df2SBram Moolenaarif (condition) // Remove the next comment leader! 258fb222df2SBram Moolenaar// OK, I will. 259fb222df2SBram Moolenaaraction(); 260fb222df2SBram Moolenaar} 261fb222df2SBram Moolenaar. 262fb222df2SBram Moolenaar 263fb222df2SBram Moolenaar call cursor(2, 1) 264fb222df2SBram Moolenaar set comments=s1:/*,mb:*,ex:*/,:// 265fb222df2SBram Moolenaar set nojoinspaces fo=j 266fb222df2SBram Moolenaar set backspace=eol,start 267fb222df2SBram Moolenaar 268fb222df2SBram Moolenaar .,+3join 269fb222df2SBram Moolenaar exe "normal j4J\<CR>" 270fb222df2SBram Moolenaar .,+2join 271fb222df2SBram Moolenaar exe "normal j3J\<CR>" 272fb222df2SBram Moolenaar .,+2join 273fb222df2SBram Moolenaar exe "normal j3J\<CR>" 274fb222df2SBram Moolenaar .,+2join 275fb222df2SBram Moolenaar exe "normal jj3J\<CR>" 276fb222df2SBram Moolenaar 277fb222df2SBram Moolenaar " Expected output 278c79745a8SBram Moolenaar let expected =<< trim [CODE] 279fb222df2SBram Moolenaar { 280fb222df2SBram Moolenaar /* Make sure the previous comment leader is not removed. */ 281fb222df2SBram Moolenaar /* Make sure the previous comment leader is not removed. */ 282fb222df2SBram Moolenaar // Should the next comment leader be left alone? Yes. 283fb222df2SBram Moolenaar // Should the next comment leader be left alone? Yes. 284fb222df2SBram Moolenaar /* Here the comment leader should be left intact. */ // And so should this one. 285fb222df2SBram Moolenaar /* Here the comment leader should be left intact. */ // And so should this one. 286fb222df2SBram Moolenaar if (condition) // Remove the next comment leader! OK, I will. 287fb222df2SBram Moolenaar action(); 288fb222df2SBram Moolenaar if (condition) // Remove the next comment leader! OK, I will. 289fb222df2SBram Moolenaar action(); 290fb222df2SBram Moolenaar } 291c79745a8SBram Moolenaar [CODE] 292fb222df2SBram Moolenaar 293c79745a8SBram Moolenaar call assert_equal(expected, getline(1, '$')) 294fb222df2SBram Moolenaar 295fb222df2SBram Moolenaar set comments&vim 296fb222df2SBram Moolenaar set joinspaces&vim 297fb222df2SBram Moolenaar set fo&vim 298fb222df2SBram Moolenaar set backspace&vim 299fb222df2SBram Moolenaar close! 300fb222df2SBram Moolenaarendfunc 301fb222df2SBram Moolenaar 302fb222df2SBram Moolenaar" Test for joining lines with different comment leaders 303fb222df2SBram Moolenaarfunc Test_join_comments_2() 304fb222df2SBram Moolenaar new 305fb222df2SBram Moolenaar 306fb222df2SBram Moolenaar insert 307fb222df2SBram Moolenaar{ 308fb222df2SBram Moolenaar 309fb222df2SBram Moolenaar/* 310fb222df2SBram Moolenaar * Make sure the previous comment leader is not removed. 311fb222df2SBram Moolenaar */ 312fb222df2SBram Moolenaar 313fb222df2SBram Moolenaar/* 314fb222df2SBram Moolenaar * Make sure the previous comment leader is not removed. 315fb222df2SBram Moolenaar */ 316fb222df2SBram Moolenaar 317fb222df2SBram Moolenaar/* List: 318fb222df2SBram Moolenaar * - item1 319fb222df2SBram Moolenaar * foo bar baz 320fb222df2SBram Moolenaar * foo bar baz 321fb222df2SBram Moolenaar * - item2 322fb222df2SBram Moolenaar * foo bar baz 323fb222df2SBram Moolenaar * foo bar baz 324fb222df2SBram Moolenaar */ 325fb222df2SBram Moolenaar 326fb222df2SBram Moolenaar/* List: 327fb222df2SBram Moolenaar * - item1 328fb222df2SBram Moolenaar * foo bar baz 329fb222df2SBram Moolenaar * foo bar baz 330fb222df2SBram Moolenaar * - item2 331fb222df2SBram Moolenaar * foo bar baz 332fb222df2SBram Moolenaar * foo bar baz 333fb222df2SBram Moolenaar */ 334fb222df2SBram Moolenaar 335fb222df2SBram Moolenaar// Should the next comment leader be left alone? 336fb222df2SBram Moolenaar// Yes. 337fb222df2SBram Moolenaar 338fb222df2SBram Moolenaar// Should the next comment leader be left alone? 339fb222df2SBram Moolenaar// Yes. 340fb222df2SBram Moolenaar 341fb222df2SBram Moolenaar/* Here the comment leader should be left intact. */ 342fb222df2SBram Moolenaar// And so should this one. 343fb222df2SBram Moolenaar 344fb222df2SBram Moolenaar/* Here the comment leader should be left intact. */ 345fb222df2SBram Moolenaar// And so should this one. 346fb222df2SBram Moolenaar 347fb222df2SBram Moolenaarif (condition) // Remove the next comment leader! 348fb222df2SBram Moolenaar // OK, I will. 349fb222df2SBram Moolenaar action(); 350fb222df2SBram Moolenaar 351fb222df2SBram Moolenaarif (condition) // Remove the next comment leader! 352fb222df2SBram Moolenaar // OK, I will. 353fb222df2SBram Moolenaar action(); 354fb222df2SBram Moolenaar 355fb222df2SBram Moolenaarint i = 7 /* foo *// 3 356fb222df2SBram Moolenaar // comment 357fb222df2SBram Moolenaar ; 358fb222df2SBram Moolenaar 359fb222df2SBram Moolenaarint i = 7 /* foo *// 3 360fb222df2SBram Moolenaar // comment 361fb222df2SBram Moolenaar ; 362fb222df2SBram Moolenaar 363fb222df2SBram Moolenaar># Note that the last character of the ending comment leader (left angle 364fb222df2SBram Moolenaar # bracket) is a comment leader itself. Make sure that this comment leader is 365fb222df2SBram Moolenaar # not removed from the next line #< 366fb222df2SBram Moolenaar< On this line a new comment is opened which spans 2 lines. This comment should 367fb222df2SBram Moolenaar< retain its comment leader. 368fb222df2SBram Moolenaar 369fb222df2SBram Moolenaar># Note that the last character of the ending comment leader (left angle 370fb222df2SBram Moolenaar # bracket) is a comment leader itself. Make sure that this comment leader is 371fb222df2SBram Moolenaar # not removed from the next line #< 372fb222df2SBram Moolenaar< On this line a new comment is opened which spans 2 lines. This comment should 373fb222df2SBram Moolenaar< retain its comment leader. 374fb222df2SBram Moolenaar 375fb222df2SBram Moolenaar} 376fb222df2SBram Moolenaar. 377fb222df2SBram Moolenaar 378fb222df2SBram Moolenaar call cursor(2, 1) 379fb222df2SBram Moolenaar set comments=sO:*\ -,mO:*\ \ ,exO:*/ 380fb222df2SBram Moolenaar set comments+=s1:/*,mb:*,ex:*/,:// 381fb222df2SBram Moolenaar set comments+=s1:>#,mb:#,ex:#<,:< 382fb222df2SBram Moolenaar set cpoptions-=j joinspaces fo=j 383fb222df2SBram Moolenaar set backspace=eol,start 384fb222df2SBram Moolenaar 385fb222df2SBram Moolenaar .,+3join 386fb222df2SBram Moolenaar exe "normal j4J\<CR>" 387fb222df2SBram Moolenaar .,+8join 388fb222df2SBram Moolenaar exe "normal j9J\<CR>" 389fb222df2SBram Moolenaar .,+2join 390fb222df2SBram Moolenaar exe "normal j3J\<CR>" 391fb222df2SBram Moolenaar .,+2join 392fb222df2SBram Moolenaar exe "normal j3J\<CR>" 393fb222df2SBram Moolenaar .,+2join 394fb222df2SBram Moolenaar exe "normal jj3J\<CR>j" 395fb222df2SBram Moolenaar .,+2join 396fb222df2SBram Moolenaar exe "normal jj3J\<CR>j" 397fb222df2SBram Moolenaar .,+5join 398fb222df2SBram Moolenaar exe "normal j6J\<CR>" 399fb222df2SBram Moolenaar exe "normal oSome code!\<CR>// Make sure backspacing does not remove this comment leader.\<Esc>0i\<C-H>\<Esc>" 400fb222df2SBram Moolenaar 401fb222df2SBram Moolenaar " Expected output 402e7eb9270SBram Moolenaar let expected =<< trim [CODE] 403fb222df2SBram Moolenaar { 404fb222df2SBram Moolenaar /* Make sure the previous comment leader is not removed. */ 405fb222df2SBram Moolenaar /* Make sure the previous comment leader is not removed. */ 406fb222df2SBram Moolenaar /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */ 407fb222df2SBram Moolenaar /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */ 408fb222df2SBram Moolenaar // Should the next comment leader be left alone? Yes. 409fb222df2SBram Moolenaar // Should the next comment leader be left alone? Yes. 410fb222df2SBram Moolenaar /* Here the comment leader should be left intact. */ // And so should this one. 411fb222df2SBram Moolenaar /* Here the comment leader should be left intact. */ // And so should this one. 412fb222df2SBram Moolenaar if (condition) // Remove the next comment leader! OK, I will. 413fb222df2SBram Moolenaar action(); 414fb222df2SBram Moolenaar if (condition) // Remove the next comment leader! OK, I will. 415fb222df2SBram Moolenaar action(); 416fb222df2SBram Moolenaar int i = 7 /* foo *// 3 // comment 417fb222df2SBram Moolenaar ; 418fb222df2SBram Moolenaar int i = 7 /* foo *// 3 // comment 419fb222df2SBram Moolenaar ; 420fb222df2SBram Moolenaar ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader. 421fb222df2SBram Moolenaar ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader. 422fb222df2SBram Moolenaar 423fb222df2SBram Moolenaar Some code!// Make sure backspacing does not remove this comment leader. 424fb222df2SBram Moolenaar } 425c79745a8SBram Moolenaar [CODE] 426fb222df2SBram Moolenaar 427c79745a8SBram Moolenaar call assert_equal(expected, getline(1, '$')) 428fb222df2SBram Moolenaar close! 429fb222df2SBram Moolenaarendfunc 43091b65e49SBram Moolenaar 43191b65e49SBram Moolenaarfunc Test_join_lines() 43291b65e49SBram Moolenaar new 43391b65e49SBram Moolenaar call setline(1, ['a', 'b', '', 'c', 'd']) 43491b65e49SBram Moolenaar %join 43591b65e49SBram Moolenaar call assert_equal('a b c d', getline(1)) 43691b65e49SBram Moolenaar call setline(1, ['a', 'b', '', 'c', 'd']) 43791b65e49SBram Moolenaar normal 5J 43891b65e49SBram Moolenaar call assert_equal('a b c d', getline(1)) 439bc2b71d4SBram Moolenaar call setline(1, ['a', 'b', 'c']) 440bc2b71d4SBram Moolenaar 2,2join 441bc2b71d4SBram Moolenaar call assert_equal(['a', 'b', 'c'], getline(1, '$')) 442bc2b71d4SBram Moolenaar call assert_equal(2, line('.')) 443bc2b71d4SBram Moolenaar 2join 444bc2b71d4SBram Moolenaar call assert_equal(['a', 'b c'], getline(1, '$')) 44591b65e49SBram Moolenaar bwipe! 44691b65e49SBram Moolenaarendfunc 447*6d91bcb4SBram Moolenaar 448*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 449