52 lines
1.2 KiB
VimL
52 lines
1.2 KiB
VimL
function! tagbar#state#get_current_file(force_current) abort
|
|
return s:get().getCurrent(a:force_current)
|
|
endfunction
|
|
|
|
function! tagbar#state#set_current_file(fileinfo) abort
|
|
call s:get().setCurrentFile(a:fileinfo)
|
|
endfunction
|
|
|
|
function! tagbar#state#set_paused() abort
|
|
call s:get().setPaused()
|
|
endfunction
|
|
|
|
function! s:get() abort
|
|
if !exists('t:tagbar_state')
|
|
let t:tagbar_state = s:State.New()
|
|
endif
|
|
|
|
return t:tagbar_state
|
|
endfunction
|
|
|
|
let s:State = {
|
|
\ '_current' : {},
|
|
\ '_paused' : {},
|
|
\ }
|
|
|
|
" s:state.New() {{{1
|
|
function! s:State.New() abort dict
|
|
return deepcopy(self)
|
|
endfunction
|
|
|
|
" s:state.getCurrent() {{{1
|
|
function! s:State.getCurrent(force_current) abort dict
|
|
if !tagbar#is_paused() || a:force_current
|
|
return self._current
|
|
else
|
|
return self._paused
|
|
endif
|
|
endfunction
|
|
|
|
" s:state.setCurrentFile() {{{1
|
|
function! s:State.setCurrentFile(fileinfo) abort dict
|
|
let self._current = a:fileinfo
|
|
endfunction
|
|
|
|
" s:state.setPaused() {{{1
|
|
function! s:State.setPaused() abort dict
|
|
let self._paused = self._current
|
|
endfunction
|
|
|
|
" Modeline {{{1
|
|
" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1
|