109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
# File 'lib/textbringer/utils.rb', line 109
def show_exception(e)
if e.is_a?(SystemExit) || e.is_a?(SignalException)
raise
end
if !e.is_a?(Quit) && Buffer.current&.name != "*Backtrace*"
buffer = Buffer.find_or_new("*Backtrace*", undo_limit: 0)
if !buffer.mode.is_a?(BacktraceMode)
buffer.apply_mode(BacktraceMode)
end
buffer.read_only = false
begin
buffer.delete_region(buffer.point_min, buffer.point_max)
buffer.insert("#{e.class}: #{e}\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
end
message(e.to_s.chomp)
Window.beep
end
|