File: label.vim

package info (click to toggle)
vim-link-vim 2.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 524 kB
  • sloc: python: 66; makefile: 30
file content (35 lines) | stat: -rw-r--r-- 993 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
" Return the start index for the first label. By default, this is `0`, but the
" user can set it to e.g. `1`.
function! linkvim#x#label#get_start_index() abort
  return linkvim#x#u#setting_with_default(
    \ 'link_start_index',
    \ g:linkvim#defaults['start_index']
    \ )
endfunction

" Return line number and label index, for first and last label in reference
" section.
function! linkvim#x#label#get_info(...) abort
  let l:ref_target_links = a:0 == 0 ? linkvim#x#u#get_links('ref_target') : a:1

  if empty(l:ref_target_links)
    return {
      \ 'first': { 'lnum': -1, 'id': -1 },
      \ 'last':  { 'lnum': -1, 'id': -1 },
      \ }
  endif

  let l:first_link =  l:ref_target_links[0]
  let l:last_link = l:ref_target_links[-1]

  return {
    \ 'first': {
      \ 'lnum': l:first_link.pos_start[0],
      \ 'id': str2nr(l:first_link.text),
      \ },
    \ 'last': {
      \ 'lnum': l:last_link.pos_start[0],
      \ 'id': str2nr(l:last_link.text),
      \ },
    \ }
endfunction