lets try again...
This commit is contained in:
79
sources_non_forked/tlib/autoload/tlib/progressbar.vim
Normal file
79
sources_non_forked/tlib/autoload/tlib/progressbar.vim
Normal file
@@ -0,0 +1,79 @@
|
||||
" progressbar.vim
|
||||
" @Author: Tom Link (mailto:micathom AT gmail com?subject=[vim])
|
||||
" @Website: http://www.vim.org/account/profile.php?user_id=4037
|
||||
" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
||||
" @Created: 2007-09-30.
|
||||
" @Last Change: 2010-01-07.
|
||||
" @Revision: 0.0.66
|
||||
|
||||
if &cp || exists("loaded_tlib_progressbar_autoload")
|
||||
finish
|
||||
endif
|
||||
let loaded_tlib_progressbar_autoload = 1
|
||||
|
||||
let s:statusline = []
|
||||
let s:laststatus = []
|
||||
let s:max = []
|
||||
let s:format = []
|
||||
let s:width = []
|
||||
let s:value = []
|
||||
let s:timestamp = -1
|
||||
|
||||
" EXAMPLE: >
|
||||
" call tlib#progressbar#Init(20)
|
||||
" try
|
||||
" for i in range(20)
|
||||
" call tlib#progressbar#Display(i)
|
||||
" call DoSomethingThatTakesSomeTime(i)
|
||||
" endfor
|
||||
" finally
|
||||
" call tlib#progressbar#Restore()
|
||||
" endtry
|
||||
function! tlib#progressbar#Init(max, ...) "{{{3
|
||||
TVarArg ['format', '%s'], ['width', 10]
|
||||
call insert(s:statusline, &statusline)
|
||||
call insert(s:laststatus, &laststatus)
|
||||
call insert(s:max, a:max)
|
||||
call insert(s:format, format)
|
||||
call insert(s:width, width)
|
||||
call insert(s:value, -1)
|
||||
let &laststatus = 2
|
||||
let s:timestamp = localtime()
|
||||
endf
|
||||
|
||||
|
||||
function! tlib#progressbar#Display(value, ...) "{{{3
|
||||
TVarArg 'extra'
|
||||
let ts = localtime()
|
||||
if ts == s:timestamp
|
||||
return
|
||||
else
|
||||
let s:timestamp = ts
|
||||
endif
|
||||
let val = a:value * s:width[0] / s:max[0]
|
||||
if val != s:value[0]
|
||||
let s:value[0] = val
|
||||
let pbl = repeat('#', val)
|
||||
let pbr = repeat('.', s:width[0] - val)
|
||||
let txt = printf(s:format[0], '['.pbl.pbr.']') . extra
|
||||
let &l:statusline = txt
|
||||
redrawstatus
|
||||
" redraw
|
||||
" call tlib#notify#Echo(txt)
|
||||
endif
|
||||
endf
|
||||
|
||||
|
||||
function! tlib#progressbar#Restore() "{{{3
|
||||
let &l:statusline = remove(s:statusline, 0)
|
||||
let &laststatus = remove(s:laststatus, 0)
|
||||
redrawstatus
|
||||
" redraw
|
||||
" echo
|
||||
call remove(s:max, 0)
|
||||
call remove(s:format, 0)
|
||||
call remove(s:width, 0)
|
||||
call remove(s:value, 0)
|
||||
endf
|
||||
|
||||
|
||||
Reference in New Issue
Block a user