summaryrefslogtreecommitdiff
path: root/src/testdir/test_signs.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-01-06 16:24:01 +0100
committerBram Moolenaar <Bram@vim.org>2019-01-06 16:24:01 +0100
commitb328cca2548936c5f68fff683049a929882f5011 (patch)
tree8237567d6c94872a3bf97768e70bf8cc327e4533 /src/testdir/test_signs.vim
parent8ad16da7290190f55f88073d5586dfe133fddf45 (diff)
downloadvim-git-b328cca2548936c5f68fff683049a929882f5011.tar.gz
patch 8.1.0697: ":sign place" requires the buffer argumentv8.1.0697
Problem: ":sign place" requires the buffer argument. Solution: Make the argument optional. Also update the help and clean up the sign test. (Yegappan Lakshmanan, closes #3767)
Diffstat (limited to 'src/testdir/test_signs.vim')
-rw-r--r--src/testdir/test_signs.vim94
1 files changed, 46 insertions, 48 deletions
diff --git a/src/testdir/test_signs.vim b/src/testdir/test_signs.vim
index a9a347270..5bb0cf926 100644
--- a/src/testdir/test_signs.vim
+++ b/src/testdir/test_signs.vim
@@ -14,7 +14,8 @@ func Test_sign()
" the icon name when listing signs.
sign define Sign1 text=x
try
- sign define Sign2 text=xy texthl=Title linehl=Error icon=../../pixmaps/stock_vim_find_help.png
+ sign define Sign2 text=xy texthl=Title linehl=Error
+ \ icon=../../pixmaps/stock_vim_find_help.png
catch /E255:/
" Ignore error: E255: Couldn't read in sign data!
" This error can happen when running in the GUI.
@@ -23,7 +24,9 @@ func Test_sign()
" Test listing signs.
let a=execute('sign list')
- call assert_match("^\nsign Sign1 text=x \nsign Sign2 icon=../../pixmaps/stock_vim_find_help.png .*text=xy linehl=Error texthl=Title$", a)
+ call assert_match('^\nsign Sign1 text=x \nsign Sign2 ' .
+ \ 'icon=../../pixmaps/stock_vim_find_help.png .*text=xy ' .
+ \ 'linehl=Error texthl=Title$', a)
let a=execute('sign list Sign1')
call assert_equal("\nsign Sign1 text=x ", a)
@@ -63,7 +66,8 @@ func Test_sign()
" Check placed signs
let a=execute('sign place')
- call assert_equal("\n--- Signs ---\nSigns for [NULL]:\n line=3 id=41 name=Sign1 priority=10\n", a)
+ call assert_equal("\n--- Signs ---\nSigns for [NULL]:\n" .
+ \ " line=3 id=41 name=Sign1 priority=10\n", a)
" Unplace the sign and try jumping to it again should fail.
sign unplace 41
@@ -87,12 +91,20 @@ func Test_sign()
let a=execute('sign place')
call assert_equal("\n--- Signs ---\n", a)
+ " Place a sign without specifying the filename or buffer
+ sign place 77 line=9 name=Sign2
+ let a=execute('sign place')
+ call assert_equal("\n--- Signs ---\nSigns for [NULL]:\n" .
+ \ " line=9 id=77 name=Sign2 priority=10\n", a)
+ sign unplace *
+
" Check :jump with file=...
edit foo
call setline(1, ['A', 'B', 'C', 'D'])
try
- sign define Sign3 text=y texthl=DoesNotExist linehl=DoesNotExist icon=doesnotexist.xpm
+ sign define Sign3 text=y texthl=DoesNotExist linehl=DoesNotExist
+ \ icon=doesnotexist.xpm
catch /E255:/
" ignore error: E255: it can happens for guis.
endtry
@@ -148,38 +160,12 @@ func Test_sign()
call assert_equal("\nsign 4 text=#> linehl=Comment", a)
exe 'sign place 20 line=3 name=004 buffer=' . bufnr('')
let a = execute('sign place')
- call assert_equal("\n--- Signs ---\nSigns for foo:\n line=3 id=20 name=4 priority=10\n", a)
+ call assert_equal("\n--- Signs ---\nSigns for foo:\n" .
+ \ " line=3 id=20 name=4 priority=10\n", a)
exe 'sign unplace 20 buffer=' . bufnr('')
sign undefine 004
call assert_fails('sign list 4', 'E155:')
- " Error cases
- call assert_fails("sign place abc line=3 name=Sign1 buffer=" .
- \ bufnr('%'), 'E474:')
- call assert_fails("sign unplace abc name=Sign1 buffer=" .
- \ bufnr('%'), 'E474:')
- call assert_fails("sign place 1abc line=3 name=Sign1 buffer=" .
- \ bufnr('%'), 'E474:')
- call assert_fails("sign unplace 2abc name=Sign1 buffer=" .
- \ bufnr('%'), 'E474:')
- call assert_fails("sign unplace 2 *", 'E474:')
- call assert_fails("sign place 1 line=3 name=Sign1 buffer=" .
- \ bufnr('%') . " a", 'E488:')
- call assert_fails("sign place name=Sign1 buffer=" . bufnr('%'), 'E474:')
- call assert_fails("sign place line=10 buffer=" . bufnr('%'), 'E474:')
- call assert_fails("sign unplace 2 line=10 buffer=" . bufnr('%'), 'E474:')
- call assert_fails("sign unplace 2 name=Sign1 buffer=" . bufnr('%'), 'E474:')
- call assert_fails("sign place 2 line=3 buffer=" . bufnr('%'), 'E474:')
- call assert_fails("sign place 2", 'E474:')
- call assert_fails("sign place abc", 'E474:')
- call assert_fails("sign place 5 line=3", 'E474:')
- call assert_fails("sign place 5 name=Sign1", 'E474:')
- call assert_fails("sign place 5 group=g1", 'E474:')
- call assert_fails("sign place 5 group=*", 'E474:')
- call assert_fails("sign place 5 priority=10", 'E474:')
- call assert_fails("sign place 5 line=3 name=Sign1", 'E474:')
- call assert_fails("sign place 5 group=g1 line=3 name=Sign1", 'E474:')
-
" After undefining the sign, we should no longer be able to place it.
sign undefine Sign1
sign undefine Sign2
@@ -202,7 +188,8 @@ func Test_sign_undefine_still_placed()
" Listing placed sign should show that sign is deleted.
let a=execute('sign place')
- call assert_equal("\n--- Signs ---\nSigns for foobar:\n line=1 id=41 name=[Deleted] priority=10\n", a)
+ call assert_equal("\n--- Signs ---\nSigns for foobar:\n" .
+ \ " line=1 id=41 name=[Deleted] priority=10\n", a)
sign unplace 41
let a=execute('sign place')
@@ -220,7 +207,8 @@ func Test_sign_completion()
call assert_equal('"sign define Sign icon= linehl= text= texthl=', @:)
call feedkeys(":sign define Sign linehl=Spell\<C-A>\<C-B>\"\<CR>", 'tx')
- call assert_equal('"sign define Sign linehl=SpellBad SpellCap SpellLocal SpellRare', @:)
+ call assert_equal('"sign define Sign linehl=SpellBad SpellCap ' .
+ \ 'SpellLocal SpellRare', @:)
call writefile(['foo'], 'XsignOne')
call writefile(['bar'], 'XsignTwo')
@@ -273,17 +261,22 @@ func Test_sign_invalid_commands()
call assert_fails('sign jump 1 line=100', '474:')
call assert_fails('sign define Sign2 text=', 'E239:')
" Non-numeric identifier for :sign place
- call assert_fails("sign place abc line=3 name=Sign1 buffer=" . bufnr('%'), 'E474:')
+ call assert_fails("sign place abc line=3 name=Sign1 buffer=" . bufnr(''),
+ \ 'E474:')
" Non-numeric identifier for :sign unplace
- call assert_fails("sign unplace abc name=Sign1 buffer=" . bufnr('%'), 'E474:')
+ call assert_fails("sign unplace abc name=Sign1 buffer=" . bufnr(''),
+ \ 'E474:')
" Number followed by an alphabet as sign identifier for :sign place
- call assert_fails("sign place 1abc line=3 name=Sign1 buffer=" . bufnr('%'), 'E474:')
+ call assert_fails("sign place 1abc line=3 name=Sign1 buffer=" . bufnr(''),
+ \ 'E474:')
" Number followed by an alphabet as sign identifier for :sign unplace
- call assert_fails("sign unplace 2abc name=Sign1 buffer=" . bufnr('%'), 'E474:')
+ call assert_fails("sign unplace 2abc name=Sign1 buffer=" . bufnr(''),
+ \ 'E474:')
" Sign identifier and '*' for :sign unplace
call assert_fails("sign unplace 2 *", 'E474:')
" Trailing characters after buffer number for :sign place
- call assert_fails("sign place 1 line=3 name=Sign1 buffer=" . bufnr('%') . 'xxx', 'E488:')
+ call assert_fails("sign place 1 line=3 name=Sign1 buffer=" .
+ \ bufnr('%') . 'xxx', 'E488:')
" Trailing characters after buffer number for :sign unplace
call assert_fails("sign unplace 1 buffer=" . bufnr('%') . 'xxx', 'E488:')
call assert_fails("sign unplace * buffer=" . bufnr('%') . 'xxx', 'E488:')
@@ -306,16 +299,11 @@ func Test_sign_invalid_commands()
call assert_fails("sign place abc", 'E474:')
" Placing a sign with only line number
call assert_fails("sign place 5 line=3", 'E474:')
- " Placing a sign with only sign name
- call assert_fails("sign place 5 name=Sign1", 'E474:')
" Placing a sign with only sign group
call assert_fails("sign place 5 group=g1", 'E474:')
call assert_fails("sign place 5 group=*", 'E474:')
" Placing a sign with only sign priority
call assert_fails("sign place 5 priority=10", 'E474:')
- " Placing a sign without buffer number or file name
- call assert_fails("sign place 5 line=3 name=Sign1", 'E474:')
- call assert_fails("sign place 5 group=g1 line=3 name=Sign1", 'E474:')
sign undefine Sign1
endfunc
@@ -624,11 +612,13 @@ func Test_sign_group()
" :sign place file={fname}
let a = execute('sign place file=Xsign')
- call assert_equal("\n--- Signs ---\nSigns for Xsign:\n line=10 id=5 name=sign1 priority=10\n", a)
+ call assert_equal("\n--- Signs ---\nSigns for Xsign:\n" .
+ \ " line=10 id=5 name=sign1 priority=10\n", a)
" :sign place group={group} file={fname}
let a = execute('sign place group=g2 file=Xsign')
- call assert_equal("\n--- Signs ---\nSigns for Xsign:\n line=10 id=5 group=g2 name=sign1 priority=10\n", a)
+ call assert_equal("\n--- Signs ---\nSigns for Xsign:\n" .
+ \ " line=10 id=5 group=g2 name=sign1 priority=10\n", a)
" :sign place group=* file={fname}
let a = execute('sign place group=* file=Xsign')
@@ -649,11 +639,13 @@ func Test_sign_group()
" :sign place buffer={fname}
let a = execute('sign place buffer=' . bnum)
- call assert_equal("\n--- Signs ---\nSigns for Xsign:\n line=10 id=5 name=sign1 priority=10\n", a)
+ call assert_equal("\n--- Signs ---\nSigns for Xsign:\n" .
+ \ " line=10 id=5 name=sign1 priority=10\n", a)
" :sign place group={group} buffer={fname}
let a = execute('sign place group=g2 buffer=' . bnum)
- call assert_equal("\n--- Signs ---\nSigns for Xsign:\n line=12 id=5 group=g2 name=sign1 priority=10\n", a)
+ call assert_equal("\n--- Signs ---\nSigns for Xsign:\n" .
+ \ " line=12 id=5 group=g2 name=sign1 priority=10\n", a)
" :sign place group=* buffer={fname}
let a = execute('sign place group=* buffer=' . bnum)
@@ -690,6 +682,12 @@ func Test_sign_group()
sign jump 5 group=g2 file=Xsign
call assert_equal(12, line('.'))
+ " Test for :sign jump command without the filename or buffer
+ sign jump 5
+ call assert_equal(10, line('.'))
+ sign jump 5 group=g1
+ call assert_equal(11, line('.'))
+
" Error cases
call assert_fails("sign place 3 group= name=sign1 buffer=" . bnum, 'E474:')