diff options
Diffstat (limited to 'src/nvim/testdir/test_join.vim')
-rw-r--r-- | src/nvim/testdir/test_join.vim | 447 |
1 files changed, 0 insertions, 447 deletions
diff --git a/src/nvim/testdir/test_join.vim b/src/nvim/testdir/test_join.vim deleted file mode 100644 index 1f7a0825a5..0000000000 --- a/src/nvim/testdir/test_join.vim +++ /dev/null @@ -1,447 +0,0 @@ -" Test for joining lines. - -func Test_join_with_count() - new - call setline(1, ['one', 'two', 'three', 'four']) - normal J - call assert_equal('one two', getline(1)) - %del - call setline(1, ['one', 'two', 'three', 'four']) - normal 10J - call assert_equal('one two three four', getline(1)) - - call setline(1, ['one', '', 'two']) - normal J - call assert_equal('one', getline(1)) - - call setline(1, ['one', ' ', 'two']) - normal J - call assert_equal('one', getline(1)) - - call setline(1, ['one', '', '', 'two']) - normal JJ - call assert_equal('one', getline(1)) - - call setline(1, ['one', ' ', ' ', 'two']) - normal JJ - call assert_equal('one', getline(1)) - - call setline(1, ['one', '', '', 'two']) - normal 2J - call assert_equal('one', getline(1)) - - quit! -endfunc - -" Tests for setting the '[,'] marks when joining lines. -func Test_join_marks() - enew - call append(0, [ - \ "\t\tO sodales, ludite, vos qui", - \ "attamen consulite per voster honur. Tua pulchra " . - \ "facies me fay planszer milies", - \ "", - \ "This line.", - \ "Should be joined with the next line", - \ "and with this line"]) - - normal gg0gqj - call assert_equal([0, 1, 1, 0], getpos("'[")) - call assert_equal([0, 2, 1, 0], getpos("']")) - - /^This line/;'}-join - call assert_equal([0, 4, 11, 0], getpos("'[")) - call assert_equal([0, 4, 67, 0], getpos("']")) - enew! -endfunc - -" Test for joining lines and marks in them -" in compatible and nocompatible modes -" and with 'joinspaces' set or not -" and with 'cpoptions' flag 'j' set or not -func Test_join_spaces_marks() - new - " Text used for the test - insert -asdfasdf. -asdf -asdfasdf. -asdf -asdfasdf. -asdf -asdfasdf. -asdf -asdfasdf. -asdf -asdfasdf. -asdf -asdfasdf. -asdf -asdfasdf -asdf -asdfasdf -asdf -asdfasdf -asdf -asdfasdf -asdf -asdfasdf -asdf -asdfasdf -asdf -asdfasdf -asdf -zx cvn. -as dfg? -hjkl iop! -ert -zx cvn. -as dfg? -hjkl iop! -ert -. - let text = getline(1, '$') - normal gg - - set nojoinspaces - set cpoptions-=j - normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ - normal j05lmx - normal 2j06lmy - normal 2k4Jy3l$p - normal `xyl$p - normal `yy2l$p - - " set cpoptions+=j - normal j05lmx - normal 2j06lmy - normal 2k4Jy3l$p - normal `xyl$p - normal `yy2l$p - - " Expected output - let expected =<< trim [DATA] - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - zx cvn. as dfg? hjkl iop! ert ernop - zx cvn. as dfg? hjkl iop! ert ernop - [DATA] - - call assert_equal(expected, getline(1, '$')) - throw 'skipped: Nvim does not support "set compatible" or "set cpoptions+=j"' - - enew! - call append(0, text) - normal gg - - set cpoptions-=j - set joinspaces - normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ - normal j05lmx - normal 2j06lmy - normal 2k4Jy3l$p - normal `xyl$p - normal `yy2l$p - - set cpoptions+=j - normal j05lmx - normal 2j06lmy - normal 2k4Jy3l$p - normal `xyl$p - normal `yy2l$p - - " Expected output - let expected =<< trim [DATA] - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - zx cvn. as dfg? hjkl iop! ert enop - zx cvn. as dfg? hjkl iop! ert ernop - - [DATA] - - call assert_equal(expected, getline(1, '$')) - - enew! - call append(0, text) - normal gg - - set cpoptions-=j - set nojoinspaces - set compatible - - normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ - normal j4Jy3l$pjdG - - " Expected output - let expected =<< trim [DATA] - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf. asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - asdfasdf asdf - zx cvn. as dfg? hjkl iop! ert a - [DATA] - - call assert_equal(expected, getline(1, '$')) - - set nocompatible - set cpoptions&vim - set joinspaces&vim - close! -endfunc - -" Test for joining lines with comments -func Test_join_lines_with_comments() - new - - " Text used by the test - insert -{ - -/* -* Make sure the previous comment leader is not removed. -*/ - -/* -* Make sure the previous comment leader is not removed. -*/ - -// Should the next comment leader be left alone? -// Yes. - -// Should the next comment leader be left alone? -// Yes. - -/* Here the comment leader should be left intact. */ -// And so should this one. - -/* Here the comment leader should be left intact. */ -// And so should this one. - -if (condition) // Remove the next comment leader! -// OK, I will. -action(); - -if (condition) // Remove the next comment leader! -// OK, I will. -action(); -} -. - - call cursor(2, 1) - set comments=s1:/*,mb:*,ex:*/,:// - set nojoinspaces fo=j - set backspace=eol,start - - .,+3join - exe "normal j4J\<CR>" - .,+2join - exe "normal j3J\<CR>" - .,+2join - exe "normal j3J\<CR>" - .,+2join - exe "normal jj3J\<CR>" - - " Expected output - let expected =<< trim [CODE] - { - /* Make sure the previous comment leader is not removed. */ - /* Make sure the previous comment leader is not removed. */ - // Should the next comment leader be left alone? Yes. - // Should the next comment leader be left alone? Yes. - /* Here the comment leader should be left intact. */ // And so should this one. - /* Here the comment leader should be left intact. */ // And so should this one. - if (condition) // Remove the next comment leader! OK, I will. - action(); - if (condition) // Remove the next comment leader! OK, I will. - action(); - } - [CODE] - - call assert_equal(expected, getline(1, '$')) - - set comments&vim - set joinspaces&vim - set fo&vim - set backspace&vim - close! -endfunc - -" Test for joining lines with different comment leaders -func Test_join_comments_2() - new - - insert -{ - -/* - * Make sure the previous comment leader is not removed. - */ - -/* - * Make sure the previous comment leader is not removed. - */ - -/* List: - * - item1 - * foo bar baz - * foo bar baz - * - item2 - * foo bar baz - * foo bar baz - */ - -/* List: - * - item1 - * foo bar baz - * foo bar baz - * - item2 - * foo bar baz - * foo bar baz - */ - -// Should the next comment leader be left alone? -// Yes. - -// Should the next comment leader be left alone? -// Yes. - -/* Here the comment leader should be left intact. */ -// And so should this one. - -/* Here the comment leader should be left intact. */ -// And so should this one. - -if (condition) // Remove the next comment leader! - // OK, I will. - action(); - -if (condition) // Remove the next comment leader! - // OK, I will. - action(); - -int i = 7 /* foo *// 3 - // comment - ; - -int i = 7 /* foo *// 3 - // comment - ; - -># 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. - -># 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. - -} -. - - call cursor(2, 1) - set comments=sO:*\ -,mO:*\ \ ,exO:*/ - set comments+=s1:/*,mb:*,ex:*/,:// - set comments+=s1:>#,mb:#,ex:#<,:< - set cpoptions-=j joinspaces fo=j - set backspace=eol,start - - .,+3join - exe "normal j4J\<CR>" - .,+8join - exe "normal j9J\<CR>" - .,+2join - exe "normal j3J\<CR>" - .,+2join - exe "normal j3J\<CR>" - .,+2join - exe "normal jj3J\<CR>j" - .,+2join - exe "normal jj3J\<CR>j" - .,+5join - exe "normal j6J\<CR>" - exe "normal oSome code!\<CR>// Make sure backspacing does not remove this comment leader.\<Esc>0i\<C-H>\<Esc>" - - " Expected output - let expected =<< trim [CODE] - { - /* Make sure the previous comment leader is not removed. */ - /* Make sure the previous comment leader is not removed. */ - /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */ - /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */ - // Should the next comment leader be left alone? Yes. - // Should the next comment leader be left alone? Yes. - /* Here the comment leader should be left intact. */ // And so should this one. - /* Here the comment leader should be left intact. */ // And so should this one. - if (condition) // Remove the next comment leader! OK, I will. - action(); - if (condition) // Remove the next comment leader! OK, I will. - action(); - int i = 7 /* foo *// 3 // comment - ; - int i = 7 /* foo *// 3 // comment - ; - ># 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. - ># 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. - - Some code!// Make sure backspacing does not remove this comment leader. - } - [CODE] - - call assert_equal(expected, getline(1, '$')) - close! -endfunc - -func Test_join_lines() - new - call setline(1, ['a', 'b', '', 'c', 'd']) - %join - call assert_equal('a b c d', getline(1)) - call setline(1, ['a', 'b', '', 'c', 'd']) - normal 5J - call assert_equal('a b c d', getline(1)) - call setline(1, ['a', 'b', 'c']) - 2,2join - call assert_equal(['a', 'b', 'c'], getline(1, '$')) - call assert_equal(2, line('.')) - 2join - call assert_equal(['a', 'b c'], getline(1, '$')) - bwipe! -endfunc |