mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-03-26 04:00:29 +08:00
40 lines
734 B
VimL
40 lines
734 B
VimL
let s:self = {}
|
|
|
|
|
|
let s:self.begin = ''
|
|
let s:self.end = ''
|
|
let s:self.content_func = ''
|
|
let s:self.autoformat = 0
|
|
|
|
|
|
function! s:self._find_position() abort
|
|
let start = search(self.begin,'bwnc')
|
|
let end = search(self.end,'bnwc')
|
|
return sort([start, end], 'n')
|
|
endfunction
|
|
|
|
|
|
function! s:self.update(...) abort
|
|
let [start, end] = self._find_position()
|
|
if start != 0 && end != 0
|
|
if end - start > 1
|
|
exe (start + 1) . ',' . (end - 1) . 'delete'
|
|
endif
|
|
call append(start, call(self.content_func, a:000))
|
|
if self.autoformat
|
|
silent! Neoformat
|
|
endif
|
|
endif
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function! SpaceVim#api#dev#autodoc#get() abort
|
|
return deepcopy(s:self)
|
|
endfunction
|