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
81 lines
2.3 KiB
VimL
81 lines
2.3 KiB
VimL
"=============================================================================
|
|
" api.vim --- SpaceVim api
|
|
" Copyright (c) 2016-2023 Wang Shidong & Contributors
|
|
" Author: Wang Shidong < wsdjeg@outlook.com >
|
|
" URL: https://spacevim.org
|
|
" License: GPLv3
|
|
"=============================================================================
|
|
|
|
""
|
|
" @section API, api
|
|
" SpaceVim contains a variety of public apis. To using the api, you need to
|
|
" make sure SpaceVim has been added to your &rtp. after that, you can use
|
|
" |SpaceVim#api#import| to import the API you need.
|
|
"
|
|
" @subsection usage
|
|
"
|
|
" This is just an example, and it works well in old version vim.
|
|
" >
|
|
" let s:json = SpaceVim#api#import('data#json')
|
|
" let rst = s:json.json_encode(onject)
|
|
" let rst = s:json.json_decode(string)
|
|
" <
|
|
"
|
|
" here is list of resources where SpaceVim comes from:
|
|
"
|
|
" - vital: https://github.com/vim-jp/vital.vim
|
|
|
|
let s:apis = {}
|
|
|
|
" the api itself is a dict, and it will be changed when user use the api. so
|
|
" every time when request a api, we should provide an clean api.
|
|
|
|
|
|
""
|
|
" Import API base the given {name}, and return the API object. for all
|
|
" available APIs please check |spacevim-api|
|
|
function! SpaceVim#api#import(name) abort
|
|
if has_key(s:apis, a:name)
|
|
return deepcopy(s:apis[a:name])
|
|
endif
|
|
let p = {}
|
|
try
|
|
let p = SpaceVim#api#{a:name}#get()
|
|
let s:apis[a:name] = deepcopy(p)
|
|
catch /^Vim\%((\a\+)\)\=:E117/
|
|
endtry
|
|
return p
|
|
endfunction
|
|
|
|
""
|
|
" Register new {api} named {name}, 1 will be returned if succeed. for all
|
|
" available APIs please check |spacevim-api|
|
|
"
|
|
" Example:
|
|
" >
|
|
" let s:hello = {}
|
|
" function! s:hello.say(who)
|
|
" echo 'hello! ' . a:who
|
|
" endfunction
|
|
" call SpaceVim#api#register('hello', s:hello)
|
|
"
|
|
" " after registering api, you can use this api
|
|
" " in other vim scripts like this:
|
|
" let s:H = SpaceVim#api#import('hello')
|
|
" call s:H.say('wsdjeg')
|
|
" <
|
|
function! SpaceVim#api#register(name, api) abort
|
|
" the name must be string
|
|
if type(a:name) ==# type('') && strlen(a:name) >= 1
|
|
if !empty(SpaceVim#api#import(a:name))
|
|
call SpaceVim#logger#warn('API:' . a:name . ' already existed!')
|
|
else
|
|
let s:apis[a:name] = deepcopy(a:api)
|
|
endif
|
|
else
|
|
call SpaceVim#logger#warn('failed to register api, the name must be a no empty string!')
|
|
endif
|
|
endfunction
|
|
|
|
" vim:set fdm=marker sw=2 nowrap:
|