Sha256: 36d9aedc065f177671821c2360d770ed11a912f23523a32262fae7e367ae9758
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
module Ruco class CommandBar include Focusable attr_accessor :cursor_line, :form delegate :move, :delete, :insert, :to => :form SHORTCUTS = [ '^W Exit', '^S Save', '^F Find', '^D Delete line', '^G Go to line' ] SEARCH_PREFIX = "Find: " def initialize(options) @options = options @forms_cache = {} reset end def view if @form @form.view else available_shortcuts end end def find @form = @forms_cache[:find] ||= Form.new('Find: ', :columns => @options[:columns], :command => :find) end def move_to_line @form = Form.new('Go to Line: ', :columns => @options[:columns], :command => :move_to_line, :type => :integer) end def reset @forms_cache[:find] = nil if @form == @forms_cache[:find] @form = nil end def cursor_column if @form @form.cursor[1] else 0 end end private def available_shortcuts used_columns = 0 spacer = ' ' shortcuts_that_fit = SHORTCUTS.select do |shortcut| used_columns += shortcut.size it_fits = (used_columns <= @options[:columns]) used_columns += spacer.size it_fits end shortcuts_that_fit * spacer end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruco-0.0.5 | lib/ruco/command_bar.rb |