Mercurial > vim
view src/testdir/test_changedtick.vim @ 11698:4f59d2a66bf7 v8.0.0732
patch 8.0.0732: when updating a buffer modeless selection is lost
commit https://github.com/vim/vim/commit/80dd3f9d41ce2ff6ab3544cdb266627bbdfc34a6
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jul 19 12:51:52 2017 +0200
patch 8.0.0732: when updating a buffer modeless selection is lost
Problem: When updating a buffer for a callback the modeless selection is
lost.
Solution: Do not insert or delete screen lines when redrawing for a callback
and there is a modeless selection.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 19 Jul 2017 13:00:03 +0200 |
parents | fd1760f8c215 |
children | 1f418d27e11f |
line wrap: on
line source
" Tests for b:changedtick func Test_changedtick_increments() new " New buffer has an empty line, tick starts at 2. let expected = 2 call assert_equal(expected, b:changedtick) call assert_equal(expected, b:['changedtick']) call setline(1, 'hello') let expected += 1 call assert_equal(expected, b:changedtick) call assert_equal(expected, b:['changedtick']) undo " Somehow undo counts as two changes. let expected += 2 call assert_equal(expected, b:changedtick) call assert_equal(expected, b:['changedtick']) bwipe! endfunc func Test_changedtick_dict_entry() let d = b: call assert_equal(b:changedtick, d['changedtick']) endfunc func Test_changedtick_bdel() new let bnr = bufnr('%') let v = b:changedtick bdel " Delete counts as a change too. call assert_equal(v + 1, getbufvar(bnr, 'changedtick')) endfunc func Test_changedtick_islocked() call assert_equal(0, islocked('b:changedtick')) let d = b: call assert_equal(0, islocked('d.changedtick')) endfunc func Test_changedtick_fixed() call assert_fails('let b:changedtick = 4', 'E46:') call assert_fails('let b:["changedtick"] = 4', 'E46:') call assert_fails('lockvar b:changedtick', 'E940:') call assert_fails('lockvar b:["changedtick"]', 'E46:') call assert_fails('unlockvar b:changedtick', 'E940:') call assert_fails('unlockvar b:["changedtick"]', 'E46:') call assert_fails('unlet b:changedtick', 'E795:') call assert_fails('unlet b:["changedtick"]', 'E46:') let d = b: call assert_fails('lockvar d["changedtick"]', 'E46:') call assert_fails('unlockvar d["changedtick"]', 'E46:') call assert_fails('unlet d["changedtick"]', 'E46:') endfunc