From c2ad337c011dea127024d01e6fb9a92a1dabdcaf Mon Sep 17 00:00:00 2001 From: Jan Larres Date: Sun, 24 Apr 2011 20:15:02 +1200 Subject: [PATCH] Delete fileinfo when deleting buffer --- plugin/tagbar.vim | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/plugin/tagbar.vim b/plugin/tagbar.vim index 407e49d..b888bcd 100644 --- a/plugin/tagbar.vim +++ b/plugin/tagbar.vim @@ -830,7 +830,9 @@ function! s:CreateAutocommands() autocmd CursorHold __Tagbar__ call s:ShowPrototype() autocmd BufEnter,CursorHold * call - \ s:AutoUpdate(fnamemodify(bufname('%'), ':p')) + \ s:AutoUpdate(fnamemodify(expand(''), ':p')) + autocmd BufDelete * call + \ s:CleanupFileinfo(fnamemodify(expand(''), ':p')) augroup END let s:autocommands_done = 1 @@ -1202,6 +1204,7 @@ function! s:known_files.get(fname) dict endfunction " s:known_files.put() {{{3 +" Optional second argument is the filename function! s:known_files.put(fileinfo, ...) dict if a:0 == 1 let self._files[a:1] = a:fileinfo @@ -1216,6 +1219,13 @@ function! s:known_files.has(fname) dict return has_key(self._files, a:fname) endfunction +" s:known_files.rm() {{{2 +function! s:known_files.rm(fname) dict + if s:known_files.has(a:fname) + call remove(self._files, a:fname) + endif +endfunction + " Window management {{{1 " s:ToggleWindow() {{{2 function! s:ToggleWindow() @@ -2326,6 +2336,11 @@ function! s:CleanUp() unlet s:short_help endfunction +" s:CleanupFileinfo() {{{2 +function! s:CleanupFileinfo(fname) + call s:known_files.rm(a:fname) +endfunction + " s:QuitIfOnlyWindow() {{{2 function! s:QuitIfOnlyWindow() " Before quitting Vim, delete the tagbar buffer so that