Commit bbd3f7e1 authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Make kodo#toggleterm#Terminal new_win flag permanent

The 'new_win' flag (previously required by expand() & toggle()) is now
required by the constructor instead. It is optional for expand() (and
overrides the value passed to the constructor if given) and has been
removed from toggle().
parent eabf99c4
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -2,11 +2,12 @@
" Toggle terminal buffers from hotkeys
""

function! kodo#toggleterm#Terminal(...)
function! kodo#toggleterm#Terminal(new_win, ...)
	let term = {}
	let term.origin_buffer = v:null
	let term.window = v:null
	let term.was_new = v:null
	let term.new_win = a:new_win

	let cmd = get(a:, 1, v:null)
	let term.cmd = type(cmd) == v:t_list ? cmd :
@@ -16,12 +17,13 @@ function! kodo#toggleterm#Terminal(...)
	" Expand (show) the terminal, optionally in a new window
	" If a new window is requested it is opened by spliting, which obeys the […] 
	" and […] settings.
	function term.expand(new_win)
	function term.expand(...)
		if self.window != v:null
			call self.collapse()
		endif
		let self.was_new = a:new_win
		if a:new_win
		let new_win = get(a:, 1, self.new_win)
		let self.was_new = new_win
		if new_win
			" Open and switch to a new window
			silent execute 'sbuffer +startinsert' self.buffer
			" let b:toggle_term = self
@@ -34,7 +36,7 @@ function! kodo#toggleterm#Terminal(...)
		endif

		let self.window = win_getid()
		let self.origin_buffer = a:new_win ? v:null : bufnr('')
		let self.origin_buffer = new_win ? v:null : bufnr('')

		if has('nvim') && !has('nvim-0.4')
			" Hack to fix terminal resizing bug
@@ -64,11 +66,11 @@ function! kodo#toggleterm#Terminal(...)
		let self.window = v:null
	endfunction

	function term.toggle(new_win)
	function term.toggle()
		if self.window == win_getid()
			call self.collapse()
		else
			call self.expand(a:new_win)
			call self.expand()
		endif
	endfunction

+2 −2
Original line number Diff line number Diff line
@@ -3,9 +3,9 @@ let s:hot_terms = {}

function s:toggle(num)
	if !has_key(s:hot_terms, a:num)
		let s:hot_terms[a:num] = kodo#toggleterm#Terminal()
		let s:hot_terms[a:num] = kodo#toggleterm#Terminal(g:TermToggleOpenNewWindow)
	endif
	call s:hot_terms[a:num].toggle(g:TermToggleOpenNewWindow)
	call s:hot_terms[a:num].toggle()

	" command! -nargs=0 TermToggle :call <SID>:global_term_list[<SID>:global_term_cur].toggle(g:TermToggleOpenNewWindow)
endfunction