Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
101 lines
2.5 KiB
VimL
101 lines
2.5 KiB
VimL
" ___vital___
|
|
" NOTE: lines between '" ___vital___' is generated by :Vitalize.
|
|
" Do not mofidify the code nor insert new lines before '" ___vital___'
|
|
function! s:_SID() abort
|
|
return matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze__SID$')
|
|
endfunction
|
|
execute join(['function! vital#_over#Unlocker#Rocker#import() abort', printf("return map({'file': '', '_vital_depends': '', 'as_locker_by_holder': '', 'any_by_holder': '', 'is_locker': '', 'any': '', 'option': '', 'variable': '', 'as_locker': '', 'get': '', 'lock': '', 'value': '', '_vital_loaded': ''}, \"vital#_over#function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
|
|
delfunction s:_SID
|
|
" ___vital___
|
|
scriptencoding utf-8
|
|
let s:save_cpo = &cpo
|
|
set cpo&vim
|
|
|
|
|
|
function! s:_vital_loaded(V)
|
|
let s:V = a:V
|
|
let s:Holder = a:V.import("Unlocker.Holder")
|
|
let s:Multi = a:V.import("Unlocker.Rocker.Multi")
|
|
let s:HolderBase = a:V.import("Unlocker.Rocker.HolderBase")
|
|
endfunction
|
|
|
|
|
|
function! s:_vital_depends()
|
|
return [
|
|
\ "Unlocker.Rocker.HolderBase",
|
|
\ "Unlocker.Rocker.Multi",
|
|
\ "Unlocker.Holder",
|
|
\ ]
|
|
endfunction
|
|
|
|
|
|
|
|
function! s:is_locker(obj)
|
|
return type(a:obj) == type({})
|
|
\ && type(get(a:obj, "lock", "")) == type(function("tr"))
|
|
\ && type(get(a:obj, "unlock", "")) == type(function("tr"))
|
|
endfunction
|
|
|
|
|
|
function! s:as_locker_by_holder(obj)
|
|
return s:HolderBase.make(s:Holder.as_get_deepcopy(a:obj))
|
|
endfunction
|
|
|
|
|
|
function! s:as_locker(obj)
|
|
return s:is_locker(a:obj) ? a:obj : s:as_locker_by_holder(a:obj)
|
|
endfunction
|
|
|
|
|
|
function! s:any_by_holder(...)
|
|
let any = s:Holder.get("Any")
|
|
return s:as_locker_by_holder(call(any.make, a:000, any))
|
|
endfunction
|
|
|
|
|
|
function! s:any(obj)
|
|
return s:is_locker(a:obj) ? a:obj : s:any_by_holder(a:obj)
|
|
endfunction
|
|
|
|
|
|
function! s:lock(...)
|
|
return s:Multi.make(map(copy(a:000), "s:any(v:val)")).lock()
|
|
endfunction
|
|
|
|
|
|
function! s:get(holdername)
|
|
let holder = s:Holder.get(a:holdername)
|
|
return s:as_locker_by_holder(call(holder.make, a:000, holder))
|
|
endfunction
|
|
|
|
|
|
let s:holders = [
|
|
\ "Value",
|
|
\ "Variable",
|
|
\ "Option",
|
|
\ "File",
|
|
\]
|
|
|
|
|
|
for s:name in s:holders
|
|
execute join([
|
|
\ "function! s:" . tolower(s:name) . "(...)",
|
|
\ " let holder = s:Holder.get('". s:name . "')",
|
|
\ " return s:as_locker_by_holder(call(holder.make, a:000, holder))",
|
|
\ "endfunction",
|
|
\ ], "\n")
|
|
endfor
|
|
|
|
|
|
" function! s:value(value)
|
|
" return s:as_locker_by_holder(s:Holder.value(a:value))
|
|
" endfunction
|
|
"
|
|
"
|
|
" function! s:variable(value)
|
|
" return s:as_locker_by_holder(s:Holder.variable(a:value))
|
|
" endfunction
|
|
|
|
let &cpo = s:save_cpo
|
|
unlet s:save_cpo
|