diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2020-11-07 15:13:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-07 15:13:20 +0100 |
commit | e5d83a3bf344a4ab0ef539d70004c2b771e1044a (patch) | |
tree | c4de9a896700ff8a7131ab430cc108d90fd2774a /test/functional/autocmd/winscrolled_spec.lua | |
parent | da134270d3e9f8a4824b0e0540bf017f7e59b06e (diff) | |
parent | 0fce70252d8e5ccf4cb6f141d1c388966f9f3482 (diff) | |
download | rneovim-e5d83a3bf344a4ab0ef539d70004c2b771e1044a.tar.gz rneovim-e5d83a3bf344a4ab0ef539d70004c2b771e1044a.tar.bz2 rneovim-e5d83a3bf344a4ab0ef539d70004c2b771e1044a.zip |
Merge pull request #13117 from romgrk/add-scroll-events
Implement scroll autocommand
Diffstat (limited to 'test/functional/autocmd/winscrolled_spec.lua')
-rw-r--r-- | test/functional/autocmd/winscrolled_spec.lua | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/functional/autocmd/winscrolled_spec.lua b/test/functional/autocmd/winscrolled_spec.lua new file mode 100644 index 0000000000..1ef5a37479 --- /dev/null +++ b/test/functional/autocmd/winscrolled_spec.lua @@ -0,0 +1,62 @@ +local helpers = require('test.functional.helpers')(after_each) + +local clear = helpers.clear +local eq = helpers.eq +local eval = helpers.eval +local source = helpers.source + +describe('WinScrolled', function() + before_each(clear) + + it('is triggered by scrolling vertically', function() + source([[ + set nowrap + let width = winwidth(0) + let line = '123' . repeat('*', width * 2) + let lines = [line, line] + call nvim_buf_set_lines(0, 0, -1, v:true, lines) + + let g:scrolled = 0 + autocmd WinScrolled * let g:scrolled += 1 + execute "normal! \<C-e>" + ]]) + eq(1, eval('g:scrolled')) + end) + + it('is triggered by scrolling horizontally', function() + source([[ + set nowrap + let width = winwidth(0) + let line = '123' . repeat('*', width * 2) + let lines = [line, line] + call nvim_buf_set_lines(0, 0, -1, v:true, lines) + + let g:scrolled = 0 + autocmd WinScrolled * let g:scrolled += 1 + execute "normal! zl" + ]]) + eq(1, eval('g:scrolled')) + end) + + it('is triggered when the window scrolls in insert mode', function() + source([[ + let height = winheight(0) + let lines = map(range(height * 2), {_, i -> string(i)}) + call nvim_buf_set_lines(0, 0, -1, v:true, lines) + + let g:scrolled = 0 + autocmd WinScrolled * let g:scrolled += 1 + call feedkeys("LA\<CR><Esc>", "n") + ]]) + eq(2, eval('g:scrolled')) + end) + + it('is triggered when the window is resized', function() + source([[ + let g:scrolled = 0 + autocmd WinScrolled * let g:scrolled += 1 + wincmd v + ]]) + eq(1, eval('g:scrolled')) + end) +end) |