From 3c62e060be8b319dd00457cd3800d3cec9267f4b Mon Sep 17 00:00:00 2001 From: ZyX Date: Fri, 22 Feb 2013 18:21:12 +0400 Subject: [PATCH] Don't use UUID for window IDs This fix uses an incremented number instead. Fixes #180 --- powerline/bindings/vim/plugin/powerline.vim | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/powerline/bindings/vim/plugin/powerline.vim b/powerline/bindings/vim/plugin/powerline.vim index d2344b8c..a538c9fc 100644 --- a/powerline/bindings/vim/plugin/powerline.vim +++ b/powerline/bindings/vim/plugin/powerline.vim @@ -18,7 +18,6 @@ endif let s:powerline_pycmd = substitute(get(g:, 'powerline_pycmd', 'py'), '\v^(py)%[thon](3?)$', '\1\2', '') let s:powerline_pyeval = get(g:, 'powerline_pyeval', s:powerline_pycmd.'eval') -exec s:powerline_pycmd 'import uuid' try exec s:powerline_pycmd 'from powerline.core import Powerline' catch @@ -47,15 +46,17 @@ else \"endfunction" endif +let s:last_window_id = 0 function! s:GetWinID(winnr) let r = getwinvar(a:winnr, 'window_id') if empty(r) - let r = s:pyeval('str(uuid.uuid4())') + let r = s:last_window_id + let s:last_window_id += 1 call setwinvar(a:winnr, 'window_id', r) endif " Without this condition it triggers unneeded statusline redraw - if getwinvar(a:winnr, '&statusline') isnot# '%!Powerline("'.r.'")' - call setwinvar(a:winnr, '&statusline', '%!Powerline("'.r.'")') + if getwinvar(a:winnr, '&statusline') isnot# '%!Powerline('.r.')' + call setwinvar(a:winnr, '&statusline', '%!Powerline('.r.')') endif return r endfunction @@ -63,14 +64,14 @@ endfunction function! Powerline(window_id) let winidx = index(map(range(1, winnr('$')), 's:GetWinID(v:val)'), a:window_id) let current = w:window_id is# a:window_id - return s:pyeval('powerline.renderer.render("'. a:window_id .'", '. winidx .', '. current .')') + return s:pyeval('powerline.renderer.render('. a:window_id .', '. winidx .', '. current .')') endfunction function! PowerlineNew() call map(range(1, winnr('$')), 's:GetWinID(v:val)') endfunction -" Is immediately changed when Powerline() function is run. Good for global +" Is immediately changed when PowerlineNew() function is run. Good for global " value. set statusline=%!PowerlineNew()