1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- local t = require('test.testutil')
- local n = require('test.functional.testnvim')()
- local source, clear = n.source, n.clear
- local eq, api = t.eq, n.api
- describe('undolevel', function()
- setup(clear)
- it('is working', function()
- source([[
- func FillBuffer()
- for i in range(1,13)
- put=i
- " Set 'undolevels' to split undo.
- exe "setg ul=" . &g:ul
- endfor
- endfunc
- func Test_global_local_undolevels()
- new one
- set undolevels=5
- call FillBuffer()
- " will only undo the last 5 changes, end up with 13 - (5 + 1) = 7 lines
- earlier 10
- call assert_equal(5, &g:undolevels)
- call assert_equal(-123456, &l:undolevels)
- call assert_equal('7', getline('$'))
- new two
- setlocal undolevels=2
- call FillBuffer()
- " will only undo the last 2 changes, end up with 13 - (2 + 1) = 10 lines
- earlier 10
- call assert_equal(5, &g:undolevels)
- call assert_equal(2, &l:undolevels)
- call assert_equal('10', getline('$'))
- setlocal ul=10
- call assert_equal(5, &g:undolevels)
- call assert_equal(10, &l:undolevels)
- " Setting local value in "two" must not change local value in "one"
- wincmd p
- call assert_equal(5, &g:undolevels)
- call assert_equal(-123456, &l:undolevels)
- new three
- setglobal ul=50
- call assert_equal(50, &g:undolevels)
- call assert_equal(-123456, &l:undolevels)
- " Drop created windows
- set ul&
- new
- only!
- endfunc
- call Test_global_local_undolevels()
- ]])
- eq({}, api.nvim_get_vvar('errors'))
- end)
- end)
|