49a294e830
subrepo: subdir: "dotfiles/.vim/plugged/coc.nvim" merged: "387b7850a" upstream: origin: "https://github.com/neoclide/coc.nvim.git" branch: "release" commit: "387b7850a" git-subrepo: version: "0.4.3" origin: "???" commit: "???"
36 lines
1.3 KiB
VimL
36 lines
1.3 KiB
VimL
let s:is_vim = !has('nvim')
|
|
let s:virtual_text_support = has('nvim-0.5.0') || has('patch-9.0.0067')
|
|
let s:text_options = has('patch-9.0.0121')
|
|
|
|
" opts.hl_mode default to 'combine'.
|
|
" opts.col not used on neovim.
|
|
" opts.virt_text_win_col neovim only.
|
|
" opts.text_align could be 'after' 'right' 'below', vim9 only.
|
|
" opts.text_wrap could be 'wrap' and 'truncate', vim9 only.
|
|
function! coc#vtext#add(bufnr, src_id, line, blocks, opts) abort
|
|
if !s:virtual_text_support
|
|
return
|
|
endif
|
|
if s:is_vim
|
|
for [text, hl] in a:blocks
|
|
let type = coc#api#create_type(a:src_id, hl, a:opts)
|
|
let column = get(a:opts, 'col', 0)
|
|
let opts = { 'text': text, 'type': type }
|
|
if s:text_options && column == 0
|
|
let opts['text_align'] = get(a:opts, 'text_align', 'after')
|
|
let opts['text_wrap'] = get(a:opts, 'text_wrap', 'truncate')
|
|
endif
|
|
call prop_add(a:line + 1, column, opts)
|
|
endfor
|
|
else
|
|
let opts = {
|
|
\ 'virt_text': a:blocks,
|
|
\ 'hl_mode': get(a:opts, 'hl_mode', 'combine'),
|
|
\ }
|
|
if has('nvim-0.5.1') && has_key(a:opts, 'virt_text_win_col')
|
|
let opts['virt_text_win_col'] = a:opts['virt_text_win_col']
|
|
let opts['virt_text_pos'] = 'overlay'
|
|
endif
|
|
call nvim_buf_set_extmark(a:bufnr, a:src_id, a:line, 0, opts)
|
|
endif
|
|
endfunction
|