Deprecated.vim 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. " ___vital___
  2. " NOTE: lines between '" ___vital___' is generated by :Vitalize.
  3. " Do not mofidify the code nor insert new lines before '" ___vital___'
  4. if v:version > 703 || v:version == 703 && has('patch1170')
  5. function! vital#_neocomplete#System#Cache#Deprecated#import() abort
  6. return map({'filereadable': '', '_vital_depends': '', 'delete': '', 'readfile': '', 'getfilename': '', 'deletefile': '', 'check_old_cache': '', 'writefile': '', '_vital_loaded': ''}, 'function("s:" . v:key)')
  7. endfunction
  8. else
  9. function! s:_SID() abort
  10. return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
  11. endfunction
  12. execute join(['function! vital#_neocomplete#System#Cache#Deprecated#import() abort', printf("return map({'filereadable': '', '_vital_depends': '', 'delete': '', 'readfile': '', 'getfilename': '', 'deletefile': '', 'check_old_cache': '', 'writefile': '', '_vital_loaded': ''}, \"function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
  13. delfunction s:_SID
  14. endif
  15. " ___vital___
  16. " Note:
  17. " This module is deprecated. Use a new `Syste.Cache` instead.
  18. let s:save_cpo = &cpo
  19. set cpo&vim
  20. function! s:_vital_loaded(V) abort
  21. let s:V = a:V
  22. let s:S = s:V.import('Data.String')
  23. endfunction
  24. function! s:_vital_depends() abort
  25. return ['Data.String']
  26. endfunction
  27. function! s:getfilename(cache_dir, filename) abort
  28. return s:_encode_name(a:cache_dir, a:filename)
  29. endfunction
  30. function! s:filereadable(cache_dir, filename) abort
  31. let cache_name = s:_encode_name(a:cache_dir, a:filename)
  32. return filereadable(cache_name)
  33. endfunction
  34. function! s:readfile(cache_dir, filename) abort
  35. let cache_name = s:_encode_name(a:cache_dir, a:filename)
  36. return filereadable(cache_name) ? readfile(cache_name) : []
  37. endfunction
  38. function! s:writefile(cache_dir, filename, list) abort
  39. let cache_name = s:_encode_name(a:cache_dir, a:filename)
  40. call writefile(a:list, cache_name)
  41. endfunction
  42. function! s:delete(cache_dir, filename) abort
  43. echoerr 'System.Cache.delete() is obsolete. Use its deletefile() instead.'
  44. return call('s:deletefile', a:cache_dir, a:filename)
  45. endfunction
  46. function! s:deletefile(cache_dir, filename) abort
  47. let cache_name = s:_encode_name(a:cache_dir, a:filename)
  48. return delete(cache_name)
  49. endfunction
  50. function! s:_encode_name(cache_dir, filename) abort
  51. " Check cache directory.
  52. if !isdirectory(a:cache_dir)
  53. call mkdir(a:cache_dir, 'p')
  54. endif
  55. let cache_dir = a:cache_dir
  56. if cache_dir !~# '/$'
  57. let cache_dir .= '/'
  58. endif
  59. return cache_dir . s:_create_hash(cache_dir, a:filename)
  60. endfunction
  61. function! s:check_old_cache(cache_dir, filename) abort
  62. " Check old cache file.
  63. let cache_name = s:_encode_name(a:cache_dir, a:filename)
  64. let ret = getftime(cache_name) == -1
  65. \ || getftime(cache_name) <= getftime(a:filename)
  66. if ret && filereadable(cache_name)
  67. " Delete old cache.
  68. call delete(cache_name)
  69. endif
  70. return ret
  71. endfunction
  72. function! s:_create_hash(dir, str) abort
  73. if len(a:dir) + len(a:str) < 150
  74. let hash = substitute(substitute(
  75. \ a:str, ':', '=-', 'g'), '[/\\]', '=+', 'g')
  76. else
  77. let hash = s:S.hash(a:str)
  78. endif
  79. return hash
  80. endfunction
  81. let &cpo = s:save_cpo
  82. unlet s:save_cpo
  83. " vim:set et ts=2 sts=2 sw=2 tw=0: