diff src/testdir/test_display.vim @ 18131:851a014dfd8b v8.1.2060

patch 8.1.2060: "precedes" in 'listchars' not used properly Commit: https://github.com/vim/vim/commit/bffba7f7042f6082e75b42484b15f66087b01941 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Sep 20 17:00:17 2019 +0200 patch 8.1.2060: "precedes" in 'listchars' not used properly Problem: "precedes" in 'listchars' not used properly. Solution: Correctly handle the "precedes" char in list mode for long lines. (Christian Brabandt, closes #4953)
author Bram Moolenaar <Bram@vim.org>
date Fri, 20 Sep 2019 17:15:04 +0200
parents 9695e9fed059
children 956a9bc4e25a
line wrap: on
line diff
--- a/src/testdir/test_display.vim
+++ b/src/testdir/test_display.vim
@@ -103,3 +103,58 @@ func Test_scroll_without_region()
   call StopVimInTerminal(buf)
   call delete('Xtestscroll')
 endfunc
+
+func Test_display_listchars_precedes()
+  call NewWindow(10, 10)
+  " Need a physical line that wraps over the complete
+  " window size
+  call append(0, repeat('aaa aaa aa ', 10))
+  call append(1, repeat(['bbb bbb bbb bbb'], 2))
+  " remove blank trailing line
+  $d
+  set list nowrap
+  call cursor(1, 1)
+  " move to end of line and scroll 2 characters back
+  norm! $2zh
+  let lines=ScreenLines([1,4], winwidth(0)+1)
+  let expect = [
+        \ " aaa aa $ |",
+        \ "$         |",
+        \ "$         |",
+        \ "~         |",
+        \ ]
+  call assert_equal(expect, lines)
+  set list listchars+=precedes:< nowrap
+  call cursor(1, 1)
+  " move to end of line and scroll 2 characters back
+  norm! $2zh
+  let lines = ScreenLines([1,4], winwidth(0)+1)
+  let expect = [
+        \ "<aaa aa $ |",
+        \ "<         |",
+        \ "<         |",
+        \ "~         |",
+        \ ]
+  call assert_equal(expect, lines)
+  set wrap
+  call cursor(1, 1)
+  " the complete line should be displayed in the window
+  norm! $
+
+  let lines = ScreenLines([1,10], winwidth(0)+1)
+  let expect = [
+        \ "<aaa aaa a|",
+        \ "a aaa aaa |",
+        \ "aa aaa aaa|",
+        \ " aa aaa aa|",
+        \ "a aa aaa a|",
+        \ "aa aa aaa |",
+        \ "aaa aa aaa|",
+        \ " aaa aa aa|",
+        \ "a aaa aa a|",
+        \ "aa aaa aa |",
+        \ ]
+  call assert_equal(expect, lines)
+  set list& listchars& wrap&
+  bw!
+endfunc