9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/textbringer/utils.rb', line 9
def message(msg, log: true, sit_for: nil, sleep_for: nil)
str = msg.to_s
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
}
buffer.read_only = false
begin
buffer.end_of_buffer
buffer.insert(str + "\n")
if buffer.current_line > 1000
buffer.beginning_of_buffer
10.times do
buffer.forward_line
end
buffer.delete_region(buffer.point_min, buffer.point)
buffer.end_of_buffer
end
ensure
buffer.read_only = true
end
end
Window.echo_area.show(str)
if sit_for
sit_for(sit_for)
Window.echo_area.clear_message
end
if sleep_for
sleep_for(sleep_for)
Window.echo_area.clear_message
end
end
|