autocmd_spec.lua 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. local t = require('test.testutil')
  2. local n = require('test.functional.testnvim')()
  3. local Screen = require('test.functional.ui.screen')
  4. local clear = n.clear
  5. local write_file = t.write_file
  6. local command = n.command
  7. local feed = n.feed
  8. local api = n.api
  9. local eq = t.eq
  10. before_each(clear)
  11. -- oldtest: Test_autocmd_invalidates_undo_on_textchanged()
  12. it('no E440 in quickfix window when autocommand invalidates undo', function()
  13. write_file(
  14. 'XTest_autocmd_invalidates_undo_on_textchanged',
  15. [[
  16. set hidden
  17. " create quickfix list (at least 2 lines to move line)
  18. vimgrep /u/j %
  19. " enter quickfix window
  20. cwindow
  21. " set modifiable
  22. setlocal modifiable
  23. " set autocmd to clear quickfix list
  24. autocmd! TextChanged <buffer> call setqflist([])
  25. " move line
  26. move+1
  27. ]]
  28. )
  29. finally(function()
  30. os.remove('XTest_autocmd_invalidates_undo_on_textchanged')
  31. end)
  32. command('edit XTest_autocmd_invalidates_undo_on_textchanged')
  33. command('so %')
  34. feed('G')
  35. eq('', api.nvim_get_vvar('errmsg'))
  36. end)
  37. -- oldtest: Test_WinScrolled_Resized_eiw()
  38. it('WinScrolled and WinResized events can be ignored in a window', function()
  39. local screen = Screen.new()
  40. n.exec([[
  41. call setline(1, ['foo']->repeat(32))
  42. set eventignorewin=WinScrolled,WinResized
  43. split
  44. let [g:afile,g:resized,g:scrolled] = ['none',0,0]
  45. au WinScrolled * let [g:afile,g:scrolled] = [expand('<afile>'),g:scrolled+1]
  46. au WinResized * let [g:afile,g:resized] = [expand('<afile>'),g:resized+1]
  47. ]])
  48. feed('<C-W>-')
  49. screen:expect([[
  50. ^foo |
  51. foo |*4
  52. {3:[No Name] [+] }|
  53. foo |*6
  54. {2:[No Name] [+] }|
  55. |
  56. ]])
  57. feed(':echo g:afile g:resized g:scrolled<CR>')
  58. screen:expect({ any = 'none 0 0.*' })
  59. feed('G')
  60. screen:expect([[
  61. foo |*4
  62. ^foo |
  63. {3:[No Name] [+] }|
  64. foo |*6
  65. {2:[No Name] [+] }|
  66. none 0 0 |
  67. ]])
  68. feed('gg')
  69. screen:expect([[
  70. ^foo |
  71. foo |*4
  72. {3:[No Name] [+] }|
  73. foo |*6
  74. {2:[No Name] [+] }|
  75. none 0 0 |
  76. ]])
  77. feed(':echo g:afile g:resized g:scrolled')
  78. screen:expect({ any = ':echo g:afile g:resized g:scrolled.*' })
  79. feed('<CR>')
  80. screen:expect({ any = 'none 0 0.*' })
  81. feed(':set eventignorewin=<CR><C-W>w<C-W>+')
  82. screen:expect({ any = ':set eventignorewin=.*' })
  83. feed(':echo win_getid() g:afile g:resized g:scrolled<CR>')
  84. screen:expect({ any = '1000 1001 1 1.*' })
  85. end)