From 9c1004d13b1f11e467f286c026bef74a3c084cc1 Mon Sep 17 00:00:00 2001 From: Jorge Morante Date: Wed, 27 Sep 2023 09:29:49 +0200 Subject: [PATCH] show feedback when processing input and copying result --- src/fingers/commands/start.cr | 3 ++- src/fingers/view.cr | 9 +++++++-- src/tmux.cr | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/fingers/commands/start.cr b/src/fingers/commands/start.cr index 320f026..c889488 100644 --- a/src/fingers/commands/start.cr +++ b/src/fingers/commands/start.cr @@ -136,7 +136,8 @@ module Fingers::Commands hinter: hinter, state: state, output: pane_printer, - original_pane: target_pane + original_pane: target_pane, + tmux: tmux ) end diff --git a/src/fingers/view.cr b/src/fingers/view.cr index 8323128..974095c 100644 --- a/src/fingers/view.cr +++ b/src/fingers/view.cr @@ -12,12 +12,14 @@ module Fingers @state : State @output : Printer @original_pane : Tmux::Pane + @tmux : Tmux def initialize( @hinter, @output, @original_pane, - @state + @state, + @tmux ) end @@ -51,6 +53,8 @@ module Fingers match: state.result, original_pane: original_pane ).run + + tmux.display_message("Copied: #{state.result}", 500) unless state.result.empty? end private def hide_cursor @@ -67,6 +71,7 @@ module Fingers match = hinter.lookup(state.input) handle_match(match) if match + tmux.display_message(state.input, 300) end private def process_multimode @@ -80,7 +85,7 @@ module Fingers end end - private getter :output, :hinter, :original_pane, :state + private getter :output, :hinter, :original_pane, :state, :tmux private def handle_match(match) if state.multi_mode diff --git a/src/tmux.cr b/src/tmux.cr index 215e07e..ab3f954 100644 --- a/src/tmux.cr +++ b/src/tmux.cr @@ -279,8 +279,8 @@ class Tmux socket end - def display_message(msg) - exec("display-message \"#{msg}\"") + def display_message(msg, delay = 100) + exec(Process.quote(["display-message", "-d", delay.to_s, msg])) end private def exec(cmd)