File: popup.vim

package info (click to toggle)
vim-youcompleteme 0%2B20200825%2Bgit2afee9d%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,016 kB
  • sloc: python: 9,384; sh: 167; cpp: 51; makefile: 25; ansic: 4; xml: 1
file content (41 lines) | stat: -rw-r--r-- 1,494 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function! youcompleteme#test#popup#CheckPopupPosition( winid, pos )
  redraw
  let actual_pos = popup_getpos( a:winid )
  let ret = 0
  if a:pos->empty()
    return assert_true( actual_pos->empty(), 'popup pos empty' )
  endif
  for c in keys( a:pos )
    if !has_key( actual_pos, c )
      let ret += 1
      call assert_report( 'popup with ID '
                        \ . string( a:winid )
                        \ . ' has no '
                        \ . c
                        \ . ' in: '
                        \ . string( actual_pos ) )
    else
      let ret += assert_equal( a:pos[ c ],
                             \ actual_pos[ c ],
                             \ c . ' in: ' . string( actual_pos ) )
    endif
  endfor
  return ret
endfunction


function! youcompleteme#test#popup#ScreenPos( winid, row, col )
  " Returns the screen position of the row/col in win with id winid. This
  " differs from screenpos() only in that the position need not be valid, that
  " is there need not be a text character in the referenced cell. This is useful
  " when finding where a popup _should_ be in screen position relative to actual
  " text position
  "
  " It also probably doesn't work properly for multi-byte characters and tabs
  " and things. And only returns the 'row' and 'col' items of the dict.
  "
  " So it's not that much like 'screenpos()' really.
  "
  let [ w_row, w_col ] = win_screenpos( a:winid )
  return { 'row': w_row + a:row, 'col':  w_col + a:col }
endfunction