Skip to content
Browse files

Allow configuring zoom, closes #189

  • Loading branch information...
1 parent 836a39a commit 42ce2919a34645ba57a07dfc6a68f62f75b23351 @majutsushi committed Feb 4, 2014
Showing with 28 additions and 2 deletions.
  1. +11 −2 autoload/tagbar.vim
  2. +16 −0 doc/tagbar.txt
  3. +1 −0 plugin/tagbar.vim
View
13 autoload/tagbar.vim
@@ -1929,12 +1929,21 @@ endfunction
" s:ZoomWindow() {{{2
function! s:ZoomWindow() abort
if s:is_maximized
- execute 'vert resize ' . g:tagbar_width
+ execute 'vertical resize ' . g:tagbar_width
execute s:winrestcmd
let s:is_maximized = 0
else
let s:winrestcmd = winrestcmd()
- vert resize
+ if g:tagbar_zoomwidth == 1
+ vertical resize
+ elseif g:tagbar_zoomwidth == 0
+ let func = exists('*strdisplaywidth') ? 'strdisplaywidth' : 'strlen'
+ let maxline = max(map(getline(line('w0'), line('w$')),
+ \ func . '(v:val)'))
+ execute 'vertical resize ' . maxline
+ elseif g:tagbar_zoomwidth > 1
+ execute 'vertical resize ' . g:tagbar_zoomwidth
+ endif
let s:is_maximized = 1
endif
endfunction
View
16 doc/tagbar.txt
@@ -398,6 +398,22 @@ Example:
let g:tagbar_width = 30
<
+ *g:tagbar_zoomwidth*
+g:tagbar_zoomwidth~
+Default: 1
+
+Width of the Tagbar window when zoomed.
+
+Possible values are:
+ 1: Use the maximum width available.
+ 0: Use the width of the longest currently visible tag.
+ >1: Use this width in characters.
+
+Example:
+>
+ let g:tagbar_zoomwidth = 0
+<
+
*g:tagbar_autoclose*
g:tagbar_autoclose~
Default: 0
View
1 plugin/tagbar.vim
@@ -65,6 +65,7 @@ let s:options = [
\ ['sort', 1],
\ ['systemenc', &encoding],
\ ['width', 40],
+ \ ['zoomwidth', 1],
\ ]
for [opt, val] in s:options

0 comments on commit 42ce291

Please sign in to comment.
Something went wrong with that request. Please try again.