aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorShougo Matsushita <Shougo.Matsu@gmail.com>2020-07-11 13:13:49 +0900
committerShougo Matsushita <Shougo.Matsu@gmail.com>2020-07-23 10:29:36 +0900
commitd3eddcf630f29da72409934eb14fb7a534f6497e (patch)
tree858fe91c4a88964f3ae57d3c5afc6bba96453460 /src/nvim/testdir
parent326b87feb6179d1b36375844eab493e0bb4dbf7f (diff)
downloadrneovim-d3eddcf630f29da72409934eb14fb7a534f6497e.tar.gz
rneovim-d3eddcf630f29da72409934eb14fb7a534f6497e.tar.bz2
rneovim-d3eddcf630f29da72409934eb14fb7a534f6497e.zip
vim-patch:8.1.1564: sign column takes up space
Problem: Sign column takes up space. (Adam Stankiewicz) Solution: Optionally put signs in the number column. (Yegappan Lakshmanan, closes vim/vim#4555, closes vim/vim#4515) https://github.com/vim/vim/commit/394c5d8870b15150fc91a4c058dc571fd5eaa97e
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_signs.vim59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_signs.vim b/src/nvim/testdir/test_signs.vim
index 8b1927e4f0..f89095ec5d 100644
--- a/src/nvim/testdir/test_signs.vim
+++ b/src/nvim/testdir/test_signs.vim
@@ -6,6 +6,8 @@ endif
source screendump.vim
+set noswapfile
+
func Test_sign()
new
call setline(1, ['a', 'b', 'c', 'd'])
@@ -1742,3 +1744,60 @@ func Test_sign_cursor_position()
call StopVimInTerminal(buf)
call delete('XtestSigncolumn')
endfunc
+
+" Return the 'len' characters in screen starting from (row,col)
+func s:ScreenLine(row, col, len)
+ let s = ''
+ for i in range(a:len)
+ let s .= nr2char(screenchar(a:row, a:col + i))
+ endfor
+ return s
+endfunc
+
+" Test for 'signcolumn' set to 'number'.
+func Test_sign_numcol()
+ new
+ call append(0, "01234")
+ " With 'signcolumn' set to 'number', make sure sign is displayed in the
+ " number column and line number is not displayed.
+ set numberwidth=2
+ set number
+ set signcolumn=number
+ sign define sign1 text==>
+ sign place 10 line=1 name=sign1
+ redraw!
+ call assert_equal("=> 01234", s:ScreenLine(1, 1, 8))
+
+ " With 'signcolumn' set to 'number', when there is no sign, make sure line
+ " number is displayed in the number column
+ sign unplace 10
+ redraw!
+ call assert_equal("1 01234", s:ScreenLine(1, 1, 7))
+
+ " Disable number column. Check whether sign is displayed in the sign column
+ set numberwidth=4
+ set nonumber
+ sign place 10 line=1 name=sign1
+ redraw!
+ call assert_equal("=>01234", s:ScreenLine(1, 1, 7))
+
+ " Enable number column. Check whether sign is displayed in the number column
+ set number
+ redraw!
+ call assert_equal("=> 01234", s:ScreenLine(1, 1, 9))
+
+ " Disable sign column. Make sure line number is displayed
+ set signcolumn=no
+ redraw!
+ call assert_equal(" 1 01234", s:ScreenLine(1, 1, 9))
+
+ " Enable auto sign column. Make sure both sign and line number are displayed
+ set signcolumn=auto
+ redraw!
+ call assert_equal("=> 1 01234", s:ScreenLine(1, 1, 11))
+
+ sign undefine sign1
+ set signcolumn&
+ set number&
+ enew! | close
+endfunc