From 42ce2919a34645ba57a07dfc6a68f62f75b23351 Mon Sep 17 00:00:00 2001 From: Jan Larres Date: Tue, 4 Feb 2014 18:00:27 +1300 Subject: [PATCH] Allow configuring zoom, closes #189 --- autoload/tagbar.vim | 13 +++++++++++-- doc/tagbar.txt | 16 ++++++++++++++++ plugin/tagbar.vim | 1 + 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/autoload/tagbar.vim b/autoload/tagbar.vim index a020036..ffefd56 100644 --- a/autoload/tagbar.vim +++ b/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 diff --git a/doc/tagbar.txt b/doc/tagbar.txt index 06174a1..71aeeba 100644 --- a/doc/tagbar.txt +++ b/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 diff --git a/plugin/tagbar.vim b/plugin/tagbar.vim index 3ebe6e4..1615669 100644 --- a/plugin/tagbar.vim +++ b/plugin/tagbar.vim @@ -65,6 +65,7 @@ let s:options = [ \ ['sort', 1], \ ['systemenc', &encoding], \ ['width', 40], + \ ['zoomwidth', 1], \ ] for [opt, val] in s:options