neovim

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

test_window_id.vim (3631B)


      1 " Test using the window ID.
      2 
      3 source check.vim
      4 
      5 func Test_win_getid()
      6  edit one
      7  let id1 = win_getid()
      8  let w:one = 'one'
      9  split two
     10  let id2 = win_getid()
     11  let bufnr2 = bufnr('%')
     12  let w:two = 'two'
     13  split three
     14  let id3 = win_getid()
     15  let w:three = 'three'
     16  tabnew
     17  edit four
     18  let id4 = win_getid()
     19  let w:four = 'four'
     20  split five
     21  let id5 = win_getid()
     22  let bufnr5 = bufnr('%')
     23  let w:five = 'five'
     24  tabnext
     25 
     26  wincmd w
     27  call assert_equal("two", expand("%"))
     28  call assert_equal(id2, win_getid())
     29  let nr2 = winnr()
     30  wincmd w
     31  call assert_equal("one", expand("%"))
     32  call assert_equal(id1, win_getid())
     33  let nr1 = winnr()
     34  wincmd w
     35  call assert_equal("three", expand("%"))
     36  call assert_equal(id3, win_getid())
     37  let nr3 = winnr()
     38  call assert_equal('one', getwinvar(id1, 'one'))
     39  call assert_equal('two', getwinvar(id2, 'two'))
     40  call assert_equal('three', getwinvar(id3, 'three'))
     41  tabnext
     42  call assert_equal("five", expand("%"))
     43  call assert_equal(id5, win_getid())
     44  let nr5 = winnr()
     45  wincmd w
     46  call assert_equal("four", expand("%"))
     47  call assert_equal(id4, win_getid())
     48  let nr4 = winnr()
     49  call assert_equal('four', getwinvar(id4, 'four'))
     50  call assert_equal('five', getwinvar(id5, 'five'))
     51  call settabwinvar(1, id2, 'two', '2')
     52  call setwinvar(id4, 'four', '4')
     53  tabnext
     54  call assert_equal('4', gettabwinvar(2, id4, 'four'))
     55  call assert_equal('five', gettabwinvar(2, id5, 'five'))
     56  call assert_equal('2', getwinvar(id2, 'two'))
     57 
     58  exe nr1 . "wincmd w"
     59  call assert_equal(id1, win_getid())
     60  exe nr2 . "wincmd w"
     61  call assert_equal(id2, win_getid())
     62  exe nr3 . "wincmd w"
     63  call assert_equal(id3, win_getid())
     64  tabnext
     65  exe nr4 . "wincmd w"
     66  call assert_equal(id4, win_getid())
     67  exe nr5 . "wincmd w"
     68  call assert_equal(id5, win_getid())
     69 
     70  call win_gotoid(id2)
     71  call assert_equal("two", expand("%"))
     72  eval id4->win_gotoid()
     73  call assert_equal("four", expand("%"))
     74  call win_gotoid(id1)
     75  call assert_equal("one", expand("%"))
     76  call win_gotoid(id5)
     77  call assert_equal("five", expand("%"))
     78 
     79  call assert_equal(0, win_id2win(9999))
     80  call assert_equal(nr5, id5->win_id2win())
     81  call assert_equal(0, win_id2win(id1))
     82  tabnext
     83  call assert_equal(nr1, win_id2win(id1))
     84 
     85  call assert_equal([0, 0], win_id2tabwin(9999))
     86  call assert_equal([1, nr2], id2->win_id2tabwin())
     87  call assert_equal([2, nr4], win_id2tabwin(id4))
     88 
     89  call assert_equal([], win_findbuf(9999))
     90  call assert_equal([id2], bufnr2->win_findbuf())
     91  call win_gotoid(id5)
     92  split
     93  call assert_equal(sort([id5, win_getid()]), sort(win_findbuf(bufnr5)))
     94 
     95  call assert_fails('let w = win_getid([])', 'E745:')
     96  call assert_equal(0, win_getid(-1))
     97  call assert_equal(-1, win_getid(1, -1))
     98 
     99  only!
    100 endfunc
    101 
    102 func Test_win_getid_curtab()
    103  CheckFeature quickfix
    104 
    105  tabedit X
    106  tabfirst
    107  copen
    108  only
    109  call assert_equal(win_getid(1), 1->win_getid( 1))
    110  tabclose!
    111 endfunc
    112 
    113 func Test_winlayout()
    114  let w1 = win_getid()
    115  call assert_equal(['leaf', w1], winlayout())
    116 
    117  split
    118  let w2 = win_getid()
    119  call assert_equal(['col', [['leaf', w2], ['leaf', w1]]], winlayout())
    120 
    121  split
    122  let w3 = win_getid()
    123  call assert_equal(['col', [['leaf', w3], ['leaf', w2], ['leaf', w1]]], winlayout())
    124 
    125  2wincmd w
    126  vsplit
    127  let w4 = win_getid()
    128  call assert_equal(['col', [['leaf', w3], ['row', [['leaf', w4], ['leaf', w2]]], ['leaf', w1]]], winlayout())
    129 
    130  only!
    131 
    132  let w1 = win_getid()
    133  call assert_equal(['leaf', w1], winlayout(1))
    134  tabnew
    135  let w2 = win_getid()
    136  call assert_equal(['leaf', w2], 2->winlayout())
    137  tabclose
    138 
    139  call assert_equal([], winlayout(-1))
    140 endfunc
    141 
    142 " vim: shiftwidth=2 sts=2 expandtab