diff src/testdir/test_listener.vim @ 16774:0cc3f459237b v8.1.1389

patch 8.1.1389: changes are not flushed when end and start overlap commit https://github.com/vim/vim/commit/7b31a181c84ec6b9050892e80f3132907569f8d8 Author: Bram Moolenaar <Bram@vim.org> Date: Fri May 24 21:39:27 2019 +0200 patch 8.1.1389: changes are not flushed when end and start overlap Problem: Changes are not flushed when end and start overlap. (Paul Jolly) Solution: When end of a previous changes overlaps with start of a new change, first flush listeners.
author Bram Moolenaar <Bram@vim.org>
date Fri, 24 May 2019 21:45:05 +0200
parents 978bcd70883d
children 5493e31010e1
line wrap: on
line diff
--- a/src/testdir/test_listener.vim
+++ b/src/testdir/test_listener.vim
@@ -187,6 +187,17 @@ func Test_listener_args()
 	\ {'lnum': 4, 'end': 5, 'col': 1, 'added': -1},
 	\ {'lnum': 6, 'end': 6, 'col': 1, 'added': 1}], s:list)
 
+  " split a line then insert one, should get two disconnected change lists
+  call setline(1, 'split here')
+  call listener_flush()
+  let s:list = []
+  exe "normal 1ggwi\<CR>\<Esc>"
+  1
+  normal o
+  call assert_equal([{'lnum': 1, 'end': 2, 'col': 7, 'added': 1}], s:list)
+  call listener_flush()
+  call assert_equal([{'lnum': 2, 'end': 2, 'col': 1, 'added': 1}], s:list)
+
   call listener_remove(id)
   bwipe!
 endfunc