diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-10-01 11:55:23 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-10-01 11:55:23 -0400 |
commit | 6b5acbc8c00045a7926c2f295fb03ae4b0459305 (patch) | |
tree | c2df0f30d8eade2a2211b53c5a62a0bc71496045 /home-config/zsh/zsh-autosuggestions/spec/terminal_session.rb | |
parent | package lavanda gtk theme (diff) | |
download | dotfiles-guix-6b5acbc8c00045a7926c2f295fb03ae4b0459305.tar.gz dotfiles-guix-6b5acbc8c00045a7926c2f295fb03ae4b0459305.tar.bz2 dotfiles-guix-6b5acbc8c00045a7926c2f295fb03ae4b0459305.zip |
package zsh-autosuggestions
Diffstat (limited to 'home-config/zsh/zsh-autosuggestions/spec/terminal_session.rb')
-rw-r--r-- | home-config/zsh/zsh-autosuggestions/spec/terminal_session.rb | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/home-config/zsh/zsh-autosuggestions/spec/terminal_session.rb b/home-config/zsh/zsh-autosuggestions/spec/terminal_session.rb deleted file mode 100644 index f91ee6c..0000000 --- a/home-config/zsh/zsh-autosuggestions/spec/terminal_session.rb +++ /dev/null @@ -1,99 +0,0 @@ -require 'securerandom' - -class TerminalSession - ZSH_BIN = ENV['TEST_ZSH_BIN'] || 'zsh' - - def initialize(opts = {}) - opts = { - width: 80, - height: 24, - prompt: '', - term: 'xterm-256color', - zsh_bin: ZSH_BIN - }.merge(opts) - - @opts = opts - - cmd="PS1=\"#{opts[:prompt]}\" TERM=#{opts[:term]} #{ZSH_BIN} -f" - tmux_command("new-session -d -x #{opts[:width]} -y #{opts[:height]} '#{cmd}'") - end - - def zsh_version - @zsh_version ||= Gem::Version.new(`#{ZSH_BIN} -c 'echo -n $ZSH_VERSION'`) - end - - def tmux_socket_name - @tmux_socket_name ||= SecureRandom.hex(6) - end - - def run_command(command) - send_string(command) - send_keys('enter') - - self - end - - def send_string(str) - tmux_command("send-keys -t 0 -l -- '#{str.gsub("'", "\\'")}'") - - self - end - - def send_keys(*keys) - tmux_command("send-keys -t 0 #{keys.join(' ')}") - - self - end - - def paste_string(str) - tmux_command("set-buffer -- '#{str}'") - tmux_command("paste-buffer -dpr -t 0") - - self - end - - def content(esc_seqs: false) - cmd = 'capture-pane -p -t 0' - cmd += ' -e' if esc_seqs - tmux_command(cmd).strip - end - - def clear_screen - send_keys('C-l') - - i = 0 - until content == opts[:prompt] || i > 20 do - sleep(0.1) - i = i + 1 - end - - self - end - - def destroy - tmux_command('kill-session') - end - - def cursor - tmux_command("display-message -t 0 -p '\#{cursor_x},\#{cursor_y}'"). - strip. - split(','). - map(&:to_i) - end - - def attach! - tmux_command('attach-session') - end - - private - - attr_reader :opts - - def tmux_command(cmd) - out = `tmux -u -L #{tmux_socket_name} #{cmd}` - - raise("tmux error running: '#{cmd}'") unless $?.success? - - out - end -end |