Sha256: 6b61d90005048db3cc8756be9358b9c05dff9bcf2ed619ad0f6235a75b0b3f57
Contents?: true
Size: 1.22 KB
Versions: 4
Compression:
Stored size: 1.22 KB
Contents
require 'curses' require_relative 'ui/color' require_relative 'ui/hunks_window' module GitCrecord module UI ACTIONS = { 'q' => :quit, 's' => :stage, 'c' => :commit, 'j' => :highlight_next, Curses::KEY_DOWN => :highlight_next, 'k' => :highlight_previous, Curses::KEY_UP => :highlight_previous, 'h' => :collapse, Curses::KEY_LEFT => :collapse, 'l' => :expand, Curses::KEY_RIGHT => :expand, 'f' => :toggle_fold, 'g' => :highlight_first, 'G' => :highlight_last, ''.ord => :highlight_next_hunk, ''.ord => :highlight_previous_hunk, ' ' => :toggle_selection, 'A' => :toggle_all_selections, '?' => :help_window, 'R' => :redraw, Curses::KEY_RESIZE => :resize }.freeze def self.run(files) Curses.init_screen.keypad = true Color.init Curses.clear Curses.noecho Curses.curs_set(0) run_loop(HunksWindow.new(Curses::Pad.new(1, 1), files)) ensure Curses.close_screen end def self.run_loop(win) loop do c = win.getch next if ACTIONS[c].nil? quit = win.send(ACTIONS[c]) break quit if quit == :quit end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
git-crecord-1.0.3 | lib/git_crecord/ui.rb |
git-crecord-1.0.2 | lib/git_crecord/ui.rb |
git-crecord-1.0.1 | lib/git_crecord/ui.rb |
git-crecord-1.0.0 | lib/git_crecord/ui.rb |