Sha256: d2004ca6dc57d5c30080157743244884b1b10d127aba3ea8e27f6094ae29e6cd
Contents?: true
Size: 989 Bytes
Versions: 23
Compression:
Stored size: 989 Bytes
Contents
require 'rib/core/history' # dependency require 'rib/core/multiline' # dependency module Rib::MultilineHistory extend Rib::Plugin Shell.use(self) # --------------- Rib API --------------- def before_loop @multiline_trash = 0 super end def loop_eval input return super if MultilineHistory.disabled? super ensure # SyntaxError might mean we're multiline editing handle_multiline unless multiline?($!) end def handle_interrupt return super if MultilineHistory.disabled? if multiline_buffer.size > 1 multiline_trash @multiline_trash += 1 end super end private def handle_multiline if multiline_buffer.size > 1 # so multiline editing is considering done here # TODO: there's no history.pop(size) (multiline_buffer.size + multiline_trash).times{ history.pop } history << "\n" + multiline_buffer.join("\n") end end def multiline_trash @multiline_trash ||= 0 end end
Version data entries
23 entries across 23 versions & 1 rubygems