clipboard.vim 897 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. let g:loaded_clipboard_provider = 2
  2. let g:test_clip = { '+': [''], '*': [''], }
  3. let s:methods = {}
  4. let g:cliplossy = 0
  5. let g:cliperror = 0
  6. " Count how many times the clipboard was invoked.
  7. let g:clip_called_get = 0
  8. let g:clip_called_set = 0
  9. function! s:methods.get(reg)
  10. let g:clip_called_get += 1
  11. if g:cliperror
  12. return 0
  13. end
  14. if g:cliplossy
  15. " behave like pure text clipboard
  16. return g:test_clip[a:reg][0]
  17. else
  18. " behave like VIMENC clipboard
  19. return g:test_clip[a:reg]
  20. end
  21. endfunction
  22. function! s:methods.set(lines, regtype, reg)
  23. let g:clip_called_set += 1
  24. if a:reg == '"'
  25. call s:methods.set(a:lines,a:regtype,'+')
  26. call s:methods.set(a:lines,a:regtype,'*')
  27. return 0
  28. end
  29. let g:test_clip[a:reg] = [a:lines, a:regtype]
  30. endfunction
  31. function! provider#clipboard#Call(method, args)
  32. return call(s:methods[a:method],a:args,s:methods)
  33. endfunction