1
1
" vim-tags - The Ctags generator for Vim
2
2
" Maintainer: Szymon Wrozynski
3
- " Version: 0.0.2
3
+ " Version: 0.0.3
4
4
"
5
5
" Installation:
6
6
" Place in ~/.vim/plugin/tags.vim or in case of Pathogen:
@@ -36,7 +36,7 @@ if !exists('g:vim_tags_gems_tags_command')
36
36
let g: vim_tags_gems_tags_command = " ctags -R -f Gemfile.lock.tags `bundle show --paths` 2>/dev/null &"
37
37
endif
38
38
39
- command ! -nargs =0 TagsGenerate :call s: generate_tags (1 )
39
+ command ! - bang - nargs =0 TagsGenerate :call s: generate_tags (' <bang> ' , 1 )
40
40
41
41
" Generate options and custom dirs list
42
42
let options = []
@@ -56,7 +56,14 @@ endfor
56
56
57
57
let s: options = join (options , ' ' )
58
58
59
- fun ! s: generate_tags (redraw )
59
+ fun ! s: generate_tags (bang , redraw )
60
+ " Remove existing tags
61
+ if a: bang == ' !'
62
+ for f in split (globpath (' .' , ' *.tags' , 1 ), ' \n' ) + [' tags' ]
63
+ call writefile ([], f , ' b' )
64
+ endfor
65
+ endif
66
+
60
67
" Custom tags files
61
68
for dir_name in s: custom_dirs
62
69
let file_name = dir_name . ' .tags'
@@ -79,7 +86,7 @@ fun! s:generate_tags(redraw)
79
86
if gemfile_time > -1
80
87
let gems_time = getftime (' Gemfile.lock.tags' )
81
88
if gems_time > -1
82
- if gems_time < gemfile_time
89
+ if ( gems_time < gemfile_time) || ( getfsize ( ' Gemfile.lock.tags ' ) == 0 )
83
90
silent ! exe ' !' . g: vim_tags_gems_tags_command
84
91
endif
85
92
else
@@ -94,5 +101,5 @@ fun! s:generate_tags(redraw)
94
101
endfun
95
102
96
103
if filereadable (' tags' ) && g: vim_tags_auto_generate
97
- au BufWritePost * call s: generate_tags (0 )
104
+ au BufWritePost * call s: generate_tags (' ' , 0 )
98
105
endif
0 commit comments