Loading .vim/autoload/kodo/toggleterm.vim +38 −21 Original line number Diff line number Diff line Loading @@ -5,9 +5,11 @@ function! kodo#toggleterm#Terminal(new_win, ...) let term = {} let term.origin_buffer = v:null let term.buffer = v:null let term.window = v:null let term.was_new = v:null let term.new_win = a:new_win let term.closed = v:false let cmd = get(a:, 1, v:null) let term.cmd = type(cmd) == v:t_list ? cmd : Loading @@ -18,6 +20,10 @@ function! kodo#toggleterm#Terminal(new_win, ...) " If a new window is requested it is opened by spliting, which obeys the […] " and […] settings. function term.expand(...) let origin_buffer = bufnr('') if self.buffer == v:null call self.open() endif if self.window != v:null call self.collapse() endif Loading @@ -36,7 +42,12 @@ function! kodo#toggleterm#Terminal(new_win, ...) endif let self.window = win_getid() let self.origin_buffer = new_win ? v:null : bufnr('') let self.origin_buffer = new_win ? v:null : origin_buffer augroup toggleterm au! BufLeave <buffer> au BufLeave <buffer> let b:toggleterm.window = v:null augroup END if has('nvim') && !has('nvim-0.4') " Hack to fix terminal resizing bug Loading Loading @@ -81,15 +92,19 @@ function! kodo#toggleterm#Terminal(new_win, ...) silent execute 'buffer' self.origin_buffer endif silent execute 'bdelete!' self.buffer call setbufvar(self.buffer, 'toggleterm', v:null) let self.buffer = v:null let self.window = v:null let self.closed = v:true endfunction function term.open() " Create the terminal buffer let origin = bufnr('') enew let term.buffer = bufnr('') let self.buffer = bufnr('') if term.buffer == origin && origin != 1 if self.buffer == origin && origin != 1 echoerr "New buffer appears to have replaced old buffer?" endif Loading @@ -97,17 +112,19 @@ function! kodo#toggleterm#Terminal(new_win, ...) setl nobuflisted " Start the terminal job let term.job = termopen(term.cmd, term) let self.job = termopen(self.cmd, self) silent execute 'buffer' origin if term.job > 0 return term elseif term.job == -1 echoerr "Not found or executable:" term.cmd[0] else throw "Failed to open a new terminal; returned: " + term.job if self.job == -1 echoerr "Not found or executable:" self.cmd[0] elseif self.job <= 0 throw "Failed to open a new terminal; returned: " + self.job endif return v:null call setbufvar(self.buffer, 'toggleterm', self) let self.closed = v:false endfunction return term endfunction Loading
.vim/autoload/kodo/toggleterm.vim +38 −21 Original line number Diff line number Diff line Loading @@ -5,9 +5,11 @@ function! kodo#toggleterm#Terminal(new_win, ...) let term = {} let term.origin_buffer = v:null let term.buffer = v:null let term.window = v:null let term.was_new = v:null let term.new_win = a:new_win let term.closed = v:false let cmd = get(a:, 1, v:null) let term.cmd = type(cmd) == v:t_list ? cmd : Loading @@ -18,6 +20,10 @@ function! kodo#toggleterm#Terminal(new_win, ...) " If a new window is requested it is opened by spliting, which obeys the […] " and […] settings. function term.expand(...) let origin_buffer = bufnr('') if self.buffer == v:null call self.open() endif if self.window != v:null call self.collapse() endif Loading @@ -36,7 +42,12 @@ function! kodo#toggleterm#Terminal(new_win, ...) endif let self.window = win_getid() let self.origin_buffer = new_win ? v:null : bufnr('') let self.origin_buffer = new_win ? v:null : origin_buffer augroup toggleterm au! BufLeave <buffer> au BufLeave <buffer> let b:toggleterm.window = v:null augroup END if has('nvim') && !has('nvim-0.4') " Hack to fix terminal resizing bug Loading Loading @@ -81,15 +92,19 @@ function! kodo#toggleterm#Terminal(new_win, ...) silent execute 'buffer' self.origin_buffer endif silent execute 'bdelete!' self.buffer call setbufvar(self.buffer, 'toggleterm', v:null) let self.buffer = v:null let self.window = v:null let self.closed = v:true endfunction function term.open() " Create the terminal buffer let origin = bufnr('') enew let term.buffer = bufnr('') let self.buffer = bufnr('') if term.buffer == origin && origin != 1 if self.buffer == origin && origin != 1 echoerr "New buffer appears to have replaced old buffer?" endif Loading @@ -97,17 +112,19 @@ function! kodo#toggleterm#Terminal(new_win, ...) setl nobuflisted " Start the terminal job let term.job = termopen(term.cmd, term) let self.job = termopen(self.cmd, self) silent execute 'buffer' origin if term.job > 0 return term elseif term.job == -1 echoerr "Not found or executable:" term.cmd[0] else throw "Failed to open a new terminal; returned: " + term.job if self.job == -1 echoerr "Not found or executable:" self.cmd[0] elseif self.job <= 0 throw "Failed to open a new terminal; returned: " + self.job endif return v:null call setbufvar(self.buffer, 'toggleterm', self) let self.closed = v:false endfunction return term endfunction