Use IDs instead of indexes to identify windows and panes (#110)

...because indexes can change while IDs are constant and unique.
fix-tmux-next-3dot4
Eugene Yunak 3 years ago committed by GitHub
parent fff2f1a686
commit 1dec7164ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -96,7 +96,7 @@ function! VimuxTogglePane()
call _VimuxTmux("join-pane -d -s ".g:VimuxRunnerIndex." -p "._VimuxOption("g:VimuxHeight", 20))
let g:VimuxRunnerType = "pane"
elseif _VimuxRunnerType() == "pane"
let g:VimuxRunnerIndex=substitute(_VimuxTmux("break-pane -d -t ".g:VimuxRunnerIndex." -P -F '#{window_index}'"), "\n", "", "")
let g:VimuxRunnerIndex=substitute(_VimuxTmux("break-pane -d -t ".g:VimuxRunnerIndex." -P -F '#{window_id}'"), "\n", "", "")
let g:VimuxRunnerType = "window"
endif
endif
@ -156,26 +156,27 @@ endfunction
function! _VimuxTmuxIndex()
if _VimuxRunnerType() == "pane"
return _VimuxTmuxPaneIndex()
return _VimuxTmuxPaneId()
else
return _VimuxTmuxWindowIndex()
return _VimuxTmuxWindowId()
end
endfunction
function! _VimuxTmuxPaneIndex()
return _VimuxTmuxProperty("#I.#P")
function! _VimuxTmuxPaneId()
return _VimuxTmuxProperty("#{pane_id}")
endfunction
function! _VimuxTmuxWindowIndex()
return _VimuxTmuxProperty("#I")
function! _VimuxTmuxWindowId()
return _VimuxTmuxProperty("#{window_id}")
endfunction
function! _VimuxNearestIndex()
let views = split(_VimuxTmux("list-"._VimuxRunnerType()."s"), "\n")
let t = _VimuxRunnerType()
let views = split(_VimuxTmux("list-".t."s -F '#{".t."_active}:#{".t."_id}'"), "\n")
for view in views
if match(view, "(active)") == -1
return split(view, ":")[0]
if match(view, "1:") == -1
return split(view, ":")[1]
endif
endfor
@ -199,5 +200,6 @@ function! _VimuxTmuxProperty(property)
endfunction
function! _VimuxHasRunner(index)
return match(_VimuxTmux("list-"._VimuxRunnerType()."s -a"), a:index.":")
let t = _VimuxRunnerType()
return match(_VimuxTmux("list-".t."s -F '#{".t."_id}'"), a:index)
endfunction

Loading…
Cancel
Save