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