spacevim/.SpaceVim.d/autoload/SpaceVim/api/dev/autodoc.vim

40 lines
695 B
VimL
Raw Permalink Normal View History

2024-08-21 14:17:26 +08:00
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