neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

cursorbind_spec.lua (3351B)


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