cursorbind_spec.lua 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. local helpers = require('test.functional.helpers')(after_each)
  2. local Screen = require('test.functional.ui.screen')
  3. local clear = helpers.clear
  4. local command = helpers.command
  5. local exec = helpers.exec
  6. local feed = helpers.feed
  7. before_each(clear)
  8. describe("'cursorbind'", function()
  9. it("behaves consistently whether 'cursorline' is set or not vim-patch:8.2.4795", function()
  10. local screen = Screen.new(60, 8)
  11. screen:set_default_attr_ids({
  12. [1] = {bold = true, foreground = Screen.colors.Blue}, -- NonText
  13. [2] = {bold = true, reverse = true}, -- StatusLine
  14. [3] = {reverse = true}, -- StatusLineNC
  15. [4] = {background = Screen.colors.Grey90}, -- CursorLine, CursorColumn
  16. })
  17. screen:attach()
  18. exec([[
  19. call setline(1, 'aa bb cc dd ee ff gg hh ii jj kk ll mm' ..
  20. \ ' nn oo pp qq rr ss tt uu vv ww xx yy zz')
  21. set nowrap
  22. " The following makes the cursor apparent on the screen dump
  23. set sidescroll=1 cursorcolumn
  24. " add empty lines, required for cursorcolumn
  25. call append(1, ['','','',''])
  26. 20vsp
  27. windo :set cursorbind
  28. ]])
  29. feed('20l')
  30. screen:expect([[
  31. a bb cc dd ee ff gg │aa bb cc dd ee ff gg^ hh ii jj kk ll mm |
  32. {4: }│ {4: } |
  33. {4: }│ {4: } |
  34. {4: }│ {4: } |
  35. {4: }│ {4: } |
  36. {1:~ }│{1:~ }|
  37. {3:[No Name] [+] }{2:[No Name] [+] }|
  38. |
  39. ]])
  40. feed('10l')
  41. screen:expect([[
  42. hh ii jj kk ll mm n│aa bb cc dd ee ff gg hh ii jj ^kk ll mm |
  43. {4: } │ {4: } |
  44. {4: } │ {4: } |
  45. {4: } │ {4: } |
  46. {4: } │ {4: } |
  47. {1:~ }│{1:~ }|
  48. {3:[No Name] [+] }{2:[No Name] [+] }|
  49. |
  50. ]])
  51. command('windo :set cursorline')
  52. feed('0')
  53. feed('20l')
  54. screen:expect([[
  55. {4:a bb cc dd ee ff gg }│{4:aa bb cc dd ee ff gg^ hh ii jj kk ll mm }|
  56. {4: }│ {4: } |
  57. {4: }│ {4: } |
  58. {4: }│ {4: } |
  59. {4: }│ {4: } |
  60. {1:~ }│{1:~ }|
  61. {3:[No Name] [+] }{2:[No Name] [+] }|
  62. |
  63. ]])
  64. feed('10l')
  65. screen:expect([[
  66. {4: hh ii jj kk ll mm n}│{4:aa bb cc dd ee ff gg hh ii jj ^kk ll mm }|
  67. {4: } │ {4: } |
  68. {4: } │ {4: } |
  69. {4: } │ {4: } |
  70. {4: } │ {4: } |
  71. {1:~ }│{1:~ }|
  72. {3:[No Name] [+] }{2:[No Name] [+] }|
  73. |
  74. ]])
  75. command('windo :set nocursorline nocursorcolumn')
  76. feed('0')
  77. feed('40l')
  78. screen:expect([[
  79. kk ll mm nn oo pp qq│ bb cc dd ee ff gg hh ii jj kk ll mm n^n|
  80. │ |
  81. │ |
  82. │ |
  83. │ |
  84. {1:~ }│{1:~ }|
  85. {3:[No Name] [+] }{2:[No Name] [+] }|
  86. |
  87. ]])
  88. end)
  89. end)