lib/textbringer/utils.rb in textbringer-0.1.4 vs lib/textbringer/utils.rb in textbringer-0.1.5

- old
+ new

@@ -1,9 +1,13 @@ # frozen_string_literal: true +require "rbconfig" + module Textbringer module Utils + module_function + def message(msg, log: true, sit_for: nil, sleep_for: nil) if log && Buffer.current.name != "*Messages*" buffer = Buffer["*Messages*"] || Buffer.new_buffer("*Messages*", undo_limit: 0).tap { |b| b[:top_of_window] = b.new_mark @@ -13,11 +17,11 @@ buffer.end_of_buffer buffer.insert(msg + "\n") if buffer.current_line > 1000 buffer.beginning_of_buffer 10.times do - buffer.next_line + buffer.forward_line end buffer.delete_region(buffer.point_min, buffer.point) buffer.end_of_buffer end ensure @@ -50,11 +54,11 @@ def received_keyboard_quit? Controller.current.received_keyboard_quit? end - def handle_exception(e) + def show_exception(e) if e.is_a?(SystemExit) raise end if Buffer.current.name != "*Backtrace*" buffer = Buffer.find_or_new("*Backtrace*", undo_limit: 0) @@ -63,12 +67,14 @@ end buffer.read_only = false begin buffer.delete_region(buffer.point_min, buffer.point_max) buffer.insert("#{e.class}: #{e}\n") - e.backtrace.each do |line| - buffer.insert(line + "\n") + if e.backtrace + e.backtrace.each do |line| + buffer.insert(line + "\n") + end end buffer.beginning_of_buffer ensure buffer.read_only = true end @@ -146,11 +152,11 @@ } file = read_from_minibuffer(prompt, completion_proc: f, default: default) File.expand_path(file) end - def complete(s, candidates) + def complete_for_minibuffer(s, candidates) xs = candidates.select { |i| i.start_with?(s) } if xs.size > 0 y, *ys = xs y.size.downto(1).lazy.map { |i| y[0, i] @@ -161,17 +167,17 @@ nil end end def read_buffer(prompt, default: (Buffer.last || Buffer.current)&.name) - f = ->(s) { complete(s, Buffer.names) } + f = ->(s) { complete_for_minibuffer(s, Buffer.names) } read_from_minibuffer(prompt, completion_proc: f, default: default) end def read_command_name(prompt) f = ->(s) { - complete(s.tr("-", "_"), Commands.list.map(&:to_s)) + complete_for_minibuffer(s.tr("-", "_"), Commands.list.map(&:to_s)) } read_from_minibuffer(prompt, completion_proc: f) end def yes_or_no?(prompt) @@ -270,8 +276,16 @@ Controller.current.overriding_map = old_overriding_map remove_hook(:pre_command_hook, hook) } add_hook(:pre_command_hook, hook) Controller.current.overriding_map = map + end + + def ruby_install_name + RbConfig::CONFIG["ruby_install_name"] + end + + def insert(s) + Buffer.current.insert(s) end end end