diff src/testdir/test_matchadd_conceal.vim @ 18621:a9bfdc5ea1ec v8.1.2303

patch 8.1.2303: cursor in wrong position after horizontal scroll Commit: https://github.com/vim/vim/commit/08f23636aef595f4cc061dfee8248dca97df16b3 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 16 14:19:33 2019 +0100 patch 8.1.2303: cursor in wrong position after horizontal scroll Problem: Cursor in wrong position after horizontal scroll. Solution: Set w_valid_leftcol. (closes https://github.com/vim/vim/issues/5214, closes https://github.com/vim/vim/issues/5224)
author Bram Moolenaar <Bram@vim.org>
date Sat, 16 Nov 2019 14:30:03 +0100
parents e4b03b369c41
children 7882ccab03da
line wrap: on
line diff
--- a/src/testdir/test_matchadd_conceal.vim
+++ b/src/testdir/test_matchadd_conceal.vim
@@ -316,3 +316,31 @@ func Test_cursor_column_in_concealed_lin
   call StopVimInTerminal(buf)
   call delete('Xcolesearch')
 endfunc
+
+func Test_cursor_column_in_concealed_line_after_leftcol_change()
+  CheckRunVimInTerminal
+
+  " Test for issue #5214 fix.
+  let lines =<< trim END
+    0put = 'ab' .. repeat('-', &columns) .. 'c'
+    call matchadd('Conceal', '-')
+    set nowrap ss=0 cole=3 cocu=n
+  END
+  call writefile(lines, 'Xcurs-columns')
+  let buf = RunVimInTerminal('-S Xcurs-columns', {})
+
+  " Go to the end of the line (3 columns beyond the end of the screen).
+  " Horizontal scroll would center the cursor in the screen line, but conceal
+  " makes it go to screen column 1.
+  call term_sendkeys(buf, "$")
+  call term_wait(buf)
+
+  " Are the concealed parts of the current line really hidden?
+  call assert_equal('c', term_getline(buf, '.'))
+
+  " BugFix check: Is the window's cursor column properly updated for conceal?
+  call assert_equal(1, term_getcursor(buf)[1])
+
+  call StopVimInTerminal(buf)
+  call delete('Xcurs-columns')
+endfunc