Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
95 lines
2.5 KiB
VimL
95 lines
2.5 KiB
VimL
"=============================================================================
|
|
" windowsmanager.vim --- windows manager for SpaceVim
|
|
" Copyright (c) 2016-2023 Wang Shidong & Contributors
|
|
" Author: Wang Shidong < wsdjeg@outlook.com >
|
|
" URL: https://spacevim.org
|
|
" License: GPLv3
|
|
"=============================================================================
|
|
|
|
let s:TAB = SpaceVim#api#import('vim#tab')
|
|
|
|
let s:restore_windows_stack = []
|
|
|
|
let s:redo_stack = []
|
|
|
|
let s:unmarked = 0
|
|
|
|
|
|
function! s:get_window_restore_data() abort
|
|
let win_data = {
|
|
\ 'bufname': fnamemodify(bufname('%'), ':p'),
|
|
\ 'tabpagenr': tabpagenr(),
|
|
\ 'view': winsaveview(),
|
|
\ 'newtab':0,
|
|
\ 'oldwinid' : -1,
|
|
\ 'same_w' : 0,
|
|
\ }
|
|
return win_data
|
|
endfunction
|
|
|
|
function! SpaceVim#plugins#windowsmanager#UpdateRestoreWinInfo() abort
|
|
if !&buflisted
|
|
if &buftype ==# 'terminal'
|
|
noautocmd q
|
|
endif
|
|
return
|
|
endif
|
|
let s:unmarked = 1
|
|
let win_data = s:get_window_restore_data()
|
|
if len(tabpagebuflist()) == 1
|
|
let win_data.newtab = 1
|
|
let win_data.open_command = (tabpagenr() - 1).'tabnew'
|
|
else
|
|
if winwidth(winnr()) == &columns
|
|
let win_data.same_w = 1
|
|
endif
|
|
let win_data.oldwinid = winnr()
|
|
endif
|
|
call add(s:restore_windows_stack, win_data)
|
|
let s:redo_stack = []
|
|
endfunction
|
|
|
|
function! SpaceVim#plugins#windowsmanager#UndoQuitWin() abort
|
|
if empty(s:restore_windows_stack)
|
|
return
|
|
endif
|
|
let win_data = remove(s:restore_windows_stack, -1)
|
|
if win_data.newtab
|
|
exe win_data.open_command . ' ' . win_data.bufname
|
|
else
|
|
exe win_data.open_command
|
|
endif
|
|
call add(s:redo_stack, [tabpagenr(), winnr()])
|
|
endfunction
|
|
|
|
function! SpaceVim#plugins#windowsmanager#RedoQuitWin() abort
|
|
if !empty(s:redo_stack)
|
|
let [tabpage, winnr] = remove(s:redo_stack, -1)
|
|
exe 'tabnext' . tabpage
|
|
exe winnr . 'wincmd w'
|
|
quit
|
|
endif
|
|
endfunction
|
|
|
|
function! SpaceVim#plugins#windowsmanager#MarkBaseWin() abort
|
|
if s:unmarked
|
|
let win_data = s:restore_windows_stack[-1]
|
|
if win_data.same_w
|
|
" split
|
|
if win_data.oldwinid == winnr()
|
|
let win_data.open_command = 'topleft split ' . win_data.bufname
|
|
else
|
|
let win_data.open_command = 'rightbelow split ' . win_data.bufname
|
|
endif
|
|
else
|
|
" vsplit
|
|
if win_data.oldwinid == winnr()
|
|
let win_data.open_command = 'topleft vsplit ' . win_data.bufname
|
|
else
|
|
let win_data.open_command = 'rightbelow vsplit ' . win_data.bufname
|
|
endif
|
|
endif
|
|
let s:unmarked = 0
|
|
endif
|
|
endfunction
|