mirror of
https://github.com/zoriya/vim.git
synced 2026-05-31 02:30:56 +00:00
patch 8.1.1331: test 29 is old style
Problem: Test 29 is old style. Solution: Turn it into a new style test. (Yegappan Lakshmanan, closes #4370)
This commit is contained in:
+1
-1
@@ -2179,7 +2179,7 @@ test_libvterm:
|
||||
test1 \
|
||||
test_eval \
|
||||
test3 \
|
||||
test29 test30 test37 test39 \
|
||||
test30 test37 test39 \
|
||||
test42 test44 test48 test49 \
|
||||
test52 test59 \
|
||||
test64 test69 \
|
||||
|
||||
@@ -14,7 +14,6 @@ SCRIPTS_FIRST = \
|
||||
# Tests that run on all systems.
|
||||
SCRIPTS_ALL = \
|
||||
test3.out \
|
||||
test29.out \
|
||||
test37.out \
|
||||
test39.out \
|
||||
test42.out \
|
||||
|
||||
@@ -74,7 +74,6 @@ VIMPROG = <->vim.exe
|
||||
.SUFFIXES : .out .in
|
||||
|
||||
SCRIPT = test1.out test3.out \
|
||||
test29.out \
|
||||
test30.out test37.out test39.out \
|
||||
test42.out test44.out test48.out test49.out \
|
||||
test64.out test69.out \
|
||||
|
||||
@@ -1,231 +0,0 @@
|
||||
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
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:set nocompatible viminfo+=nviminfo
|
||||
:set nojoinspaces
|
||||
:set cpoptions-=j
|
||||
/firstline/
|
||||
j"td/^STARTTEST/-1
|
||||
PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
|
||||
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
|
||||
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
|
||||
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
|
||||
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
|
||||
ENDTEST
|
||||
|
||||
firstline
|
||||
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
|
||||
|
||||
STARTTEST
|
||||
/^{/+1
|
||||
:set comments=s1:/*,mb:*,ex:*/,://
|
||||
:set nojoinspaces fo=j
|
||||
:set backspace=eol,start
|
||||
:.,+3join
|
||||
j4J
|
||||
:.,+2join
|
||||
j3J
|
||||
:.,+2join
|
||||
j3J
|
||||
:.,+2join
|
||||
jj3J
|
||||
ENDTEST
|
||||
|
||||
{
|
||||
|
||||
/*
|
||||
* 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();
|
||||
}
|
||||
|
||||
STARTTEST
|
||||
:" Test with backspace set to the non-compatible setting
|
||||
:set belloff=all
|
||||
/^\d\+ this
|
||||
:set cp bs=2
|
||||
Avim1
|
||||
Avim2u
|
||||
:set cpo-=<
|
||||
:inoremap <c-u> <left><c-u>
|
||||
Avim3
|
||||
:iunmap <c-u>
|
||||
Avim4
|
||||
:" Test with backspace set to the compatible setting
|
||||
:set backspace= visualbell
|
||||
A vim5A
|
||||
A vim6Azweiu
|
||||
:inoremap <c-u> <left><c-u>
|
||||
A vim7
|
||||
:set compatible novisualbell
|
||||
ENDTEST
|
||||
1 this shouldn't be deleted
|
||||
2 this shouldn't be deleted
|
||||
3 this shouldn't be deleted
|
||||
4 this should be deleted
|
||||
5 this shouldn't be deleted
|
||||
6 this shouldn't be deleted
|
||||
7 this shouldn't be deleted
|
||||
8 this shouldn't be deleted (not touched yet)
|
||||
|
||||
STARTTEST
|
||||
/^{/+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
|
||||
j4J
|
||||
:.,+8join
|
||||
j9J
|
||||
:.,+2join
|
||||
j3J
|
||||
:.,+2join
|
||||
j3J
|
||||
:.,+2join
|
||||
jj3J
|
||||
j:.,+2join
|
||||
jj3J
|
||||
j:.,+5join
|
||||
j6J
|
||||
oSome code!
// Make sure backspacing does not remove this comment leader.0i
|
||||
ENDTEST
|
||||
|
||||
{
|
||||
|
||||
/*
|
||||
* 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.
|
||||
|
||||
}
|
||||
|
||||
STARTTEST
|
||||
:g/^STARTTEST/.,/^ENDTEST/d
|
||||
:?firstline?+1,$w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
@@ -1,97 +0,0 @@
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
||||
{
|
||||
/* 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();
|
||||
}
|
||||
|
||||
1 this shouldn't be deleted
|
||||
2 this shouldn't be deleted
|
||||
3 this shouldn't be deleted
|
||||
4 this should be deleted3
|
||||
|
||||
6 this shouldn't be deleted vim5
|
||||
7 this shouldn't be deleted vim6
|
||||
8 this shouldn't be deleted (not touched yet) vim7
|
||||
|
||||
|
||||
{
|
||||
/* 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.
|
||||
}
|
||||
|
||||
@@ -56,4 +56,55 @@ func Test_backspace_option()
|
||||
set nocompatible viminfo+=nviminfo
|
||||
endfunc
|
||||
|
||||
" Test with backspace set to the non-compatible setting
|
||||
func Test_backspace_ctrl_u()
|
||||
new
|
||||
call append(0, [
|
||||
\ "1 this shouldn't be deleted",
|
||||
\ "2 this shouldn't be deleted",
|
||||
\ "3 this shouldn't be deleted",
|
||||
\ "4 this should be deleted",
|
||||
\ "5 this shouldn't be deleted",
|
||||
\ "6 this shouldn't be deleted",
|
||||
\ "7 this shouldn't be deleted",
|
||||
\ "8 this shouldn't be deleted (not touched yet)"])
|
||||
call cursor(2, 1)
|
||||
|
||||
set compatible
|
||||
set backspace=2
|
||||
|
||||
exe "normal Avim1\<C-U>\<Esc>\<CR>"
|
||||
exe "normal Avim2\<C-G>u\<C-U>\<Esc>\<CR>"
|
||||
|
||||
set cpo-=<
|
||||
inoremap <c-u> <left><c-u>
|
||||
exe "normal Avim3\<C-U>\<Esc>\<CR>"
|
||||
iunmap <c-u>
|
||||
exe "normal Avim4\<C-U>\<C-U>\<Esc>\<CR>"
|
||||
|
||||
" Test with backspace set to the compatible setting
|
||||
set backspace= visualbell
|
||||
exe "normal A vim5\<Esc>A\<C-U>\<C-U>\<Esc>\<CR>"
|
||||
exe "normal A vim6\<Esc>Azwei\<C-G>u\<C-U>\<Esc>\<CR>"
|
||||
|
||||
inoremap <c-u> <left><c-u>
|
||||
exe "normal A vim7\<C-U>\<C-U>\<Esc>\<CR>"
|
||||
|
||||
call assert_equal([
|
||||
\ "1 this shouldn't be deleted",
|
||||
\ "2 this shouldn't be deleted",
|
||||
\ "3 this shouldn't be deleted",
|
||||
\ "4 this should be deleted3",
|
||||
\ "",
|
||||
\ "6 this shouldn't be deleted vim5",
|
||||
\ "7 this shouldn't be deleted vim6",
|
||||
\ "8 this shouldn't be deleted (not touched yet) vim7",
|
||||
\ ""], getline(1, '$'))
|
||||
|
||||
set compatible&vim
|
||||
set visualbell&vim
|
||||
set backspace&vim
|
||||
close!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -33,3 +33,391 @@ func Test_join_marks()
|
||||
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
|
||||
|
||||
normal G
|
||||
let last_line = line('$')
|
||||
|
||||
" Expected output
|
||||
append
|
||||
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
|
||||
.
|
||||
|
||||
call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
|
||||
|
||||
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
|
||||
|
||||
normal G
|
||||
let last_line = line('$')
|
||||
|
||||
" Expected output
|
||||
append
|
||||
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
|
||||
|
||||
.
|
||||
|
||||
call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
|
||||
|
||||
enew!
|
||||
call append(0, text)
|
||||
normal gg
|
||||
|
||||
set cpoptions-=j
|
||||
set nojoinspaces
|
||||
set compatible
|
||||
|
||||
normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ
|
||||
normal j4Jy3l$pjdG
|
||||
|
||||
normal G
|
||||
let last_line = line('$')
|
||||
|
||||
" Expected output
|
||||
append
|
||||
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
|
||||
.
|
||||
|
||||
call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
|
||||
|
||||
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>"
|
||||
|
||||
normal G
|
||||
let last_line = line('$')
|
||||
|
||||
" Expected output
|
||||
append
|
||||
{
|
||||
/* 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 assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
|
||||
|
||||
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>"
|
||||
|
||||
normal G
|
||||
let last_line = line('$')
|
||||
|
||||
" Expected output
|
||||
append
|
||||
{
|
||||
/* 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.
|
||||
}
|
||||
.
|
||||
|
||||
call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
|
||||
close!
|
||||
endfunc
|
||||
|
||||
@@ -767,6 +767,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1331,
|
||||
/**/
|
||||
1330,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user