Files
vim-brightest/autoload/vital/_brightest/Coaster/Window.vim
2015-04-17 11:06:30 +09:00

53 lines
901 B
VimL

scriptencoding utf-8
let s:save_cpo = &cpo
set cpo&vim
function! s:_vital_loaded(V)
let s:V = a:V
let s:Buffer = a:V.import("Vim.Buffer")
endfunction
function! s:_vital_depends()
return [
\ "Vim.Buffer",
\ ]
endfunction
function! s:windo(func, args, obj)
if len(tabpagebuflist()) <= 1 || s:Buffer.is_cmdwin()
return call(a:func, a:args, a:obj)
endif
let pre_winnr = winnr()
noautocmd windo call call(a:func, a:args, a:obj)
if pre_winnr == winnr()
return
endif
execute pre_winnr . "wincmd w"
endfunction
function! s:as_windo(base)
let windo = {}
let windo.obj = a:base
for [key, Value] in items(a:base)
if type(function("tr")) == type(Value)
execute
\ "function! windo.". key. "(...)\n"
\ " return s:windo(self.obj." . key . ", a:000, self.obj)\n"
\ "endfunction"
endif
unlet Value
endfor
return windo
endfunction
let &cpo = s:save_cpo
unlet s:save_cpo