handle line wrapping in jump mode

This commit is contained in:
Jorge Morante 2023-11-10 15:39:46 +01:00
parent 5a891fde67
commit da3cd9f267
3 changed files with 4 additions and 5 deletions

View File

@ -66,7 +66,6 @@ module Fingers
return nil if offset.nil?
`tmux copy-mode -t #{original_pane.pane_id}`
`tmux send-keys -t #{original_pane.pane_id} -X start-of-line`
`tmux send-keys -t #{original_pane.pane_id} -X top-line`
`tmux send-keys -t #{original_pane.pane_id} -N #{offset.not_nil![0]} -X cursor-down`
`tmux send-keys -t #{original_pane.pane_id} -N #{offset.not_nil![1]} -X cursor-right`

View File

@ -133,7 +133,7 @@ module Fingers::Commands
end
private getter pane_contents : Array(String) do
tmux.capture_pane(target_pane).split("\n")
tmux.capture_pane(target_pane, join: mode != "jump").split("\n")
end
private getter view : View do

View File

@ -148,15 +148,15 @@ class Tmux
Pane.from_json(output)
end
def capture_pane(pane : Pane)
def capture_pane(pane : Pane, join = true)
if pane.pane_in_mode && !pane.scroll_position.nil?
scroll_position = pane.scroll_position.not_nil!
start_line = -scroll_position.to_i
end_line = pane.pane_height.to_i - scroll_position.to_i - 1
exec("capture-pane -J -p -t '#{pane.pane_id}' -S #{start_line} -E #{end_line}").chomp
exec("capture-pane #{join ? "-J" : ""} -p -t '#{pane.pane_id}' -S #{start_line} -E #{end_line}").chomp
else
exec("capture-pane -J -p -t '#{pane.pane_id}'").chomp
exec("capture-pane #{join ? "-J" : ""} -p -t '#{pane.pane_id}'").chomp
end
end