mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
vim-patch: b:changedtick-related patches
vim-patch:8.0.0334 vim-patch:8.0.0335 vim-patch:8.0.0343 vim-patch:8.0.0345 Problem: Can't access b:changedtick from a dict reference. Solution: Make changedtick a member of the b: dict. (inspired by neovim vim/vim#6112)79518e2ace
vim-patch:8.0.0343: b:changedtick can be unlocked Problem: b:changedtick can be unlocked, even though it has no effect. (Nikolai Pavlov) Solution: Add a check and error E940. (closes #1496) vim-patch:8.0.0345: islocked('d.changedtick') does not work Problem: islocked('d.changedtick') does not work. Solution: Make it work. vim-patch:8.0.0335: functions test fails Problem: Functions test fails. Solution: Use the right buffer number.507647da31
This commit is contained in:
parent
1d8c612f78
commit
321a46b724
@ -42,6 +42,7 @@ SCRIPTS ?= $(SCRIPTS_DEFAULT)
|
||||
NEW_TESTS ?= \
|
||||
test_autocmd.res \
|
||||
test_bufwintabinfo.res \
|
||||
test_changedtick.res \
|
||||
test_charsearch.res \
|
||||
test_cmdline.res \
|
||||
test_command_count.res \
|
||||
|
@ -2,9 +2,10 @@
|
||||
" This makes testing go faster, since Vim doesn't need to restart.
|
||||
|
||||
source test_assign.vim
|
||||
source test_changedtick.vim
|
||||
source test_cursor_func.vim
|
||||
source test_execute_func.vim
|
||||
source test_ex_undo.vim
|
||||
source test_execute_func.vim
|
||||
source test_expr.vim
|
||||
source test_expr_utf8.vim
|
||||
source test_feedkeys.vim
|
||||
|
57
src/nvim/testdir/test_changedtick.vim
Normal file
57
src/nvim/testdir/test_changedtick.vim
Normal file
@ -0,0 +1,57 @@
|
||||
" 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
|
@ -311,3 +311,45 @@ func! Test_mode()
|
||||
bwipe!
|
||||
iunmap <F2>
|
||||
endfunc
|
||||
|
||||
func Test_getbufvar()
|
||||
let bnr = bufnr('%')
|
||||
let b:var_num = '1234'
|
||||
let def_num = '5678'
|
||||
call assert_equal('1234', getbufvar(bnr, 'var_num'))
|
||||
call assert_equal('1234', getbufvar(bnr, 'var_num', def_num))
|
||||
|
||||
let bd = getbufvar(bnr, '')
|
||||
call assert_equal('1234', bd['var_num'])
|
||||
call assert_true(exists("bd['changedtick']"))
|
||||
call assert_equal(2, len(bd))
|
||||
|
||||
let bd2 = getbufvar(bnr, '', def_num)
|
||||
call assert_equal(bd, bd2)
|
||||
|
||||
unlet b:var_num
|
||||
call assert_equal(def_num, getbufvar(bnr, 'var_num', def_num))
|
||||
call assert_equal('', getbufvar(bnr, 'var_num'))
|
||||
|
||||
let bd = getbufvar(bnr, '')
|
||||
call assert_equal(1, len(bd))
|
||||
let bd = getbufvar(bnr, '',def_num)
|
||||
call assert_equal(1, len(bd))
|
||||
|
||||
call assert_equal('', getbufvar(9999, ''))
|
||||
call assert_equal(def_num, getbufvar(9999, '', def_num))
|
||||
unlet def_num
|
||||
|
||||
call assert_equal(0, getbufvar(bnr, '&autoindent'))
|
||||
call assert_equal(0, getbufvar(bnr, '&autoindent', 1))
|
||||
|
||||
" Open new window with forced option values
|
||||
set fileformats=unix,dos
|
||||
new ++ff=dos ++bin ++enc=iso-8859-2
|
||||
call assert_equal('dos', getbufvar(bufnr('%'), '&fileformat'))
|
||||
call assert_equal(1, getbufvar(bufnr('%'), '&bin'))
|
||||
call assert_equal('iso-8859-2', getbufvar(bufnr('%'), '&fenc'))
|
||||
close
|
||||
|
||||
set fileformats&
|
||||
endfunc
|
||||
|
Loading…
Reference in New Issue
Block a user