mirror of
https://github.com/neovim/neovim.git
synced 2024-12-26 14:11:15 -07:00
241956720d
Value of 1 cannot be used, because users might set that in their vimrc to _disable_ a provider, which would confuse :checkhealth and has().
43 lines
897 B
VimL
43 lines
897 B
VimL
let g:loaded_clipboard_provider = 2
|
|
|
|
let g:test_clip = { '+': [''], '*': [''], }
|
|
|
|
let s:methods = {}
|
|
|
|
let g:cliplossy = 0
|
|
let g:cliperror = 0
|
|
|
|
" Count how many times the clipboard was invoked.
|
|
let g:clip_called_get = 0
|
|
let g:clip_called_set = 0
|
|
|
|
function! s:methods.get(reg)
|
|
let g:clip_called_get += 1
|
|
|
|
if g:cliperror
|
|
return 0
|
|
end
|
|
if g:cliplossy
|
|
" behave like pure text clipboard
|
|
return g:test_clip[a:reg][0]
|
|
else
|
|
" behave like VIMENC clipboard
|
|
return g:test_clip[a:reg]
|
|
end
|
|
endfunction
|
|
|
|
function! s:methods.set(lines, regtype, reg)
|
|
let g:clip_called_set += 1
|
|
|
|
if a:reg == '"'
|
|
call s:methods.set(a:lines,a:regtype,'+')
|
|
call s:methods.set(a:lines,a:regtype,'*')
|
|
return 0
|
|
end
|
|
let g:test_clip[a:reg] = [a:lines, a:regtype]
|
|
endfunction
|
|
|
|
function! provider#clipboard#Call(method, args)
|
|
return call(s:methods[a:method],a:args,s:methods)
|
|
endfunction
|