amun 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.rspec +1 -0
- data/.rubocop.yml +6 -1
- data/.ruby-version +1 -1
- data/Guardfile +26 -6
- data/README.md +1 -0
- data/Rakefile +4 -6
- data/_config.yml +1 -0
- data/amun.gemspec +6 -5
- data/exe/amun +1 -1
- data/lib/amun/application.rb +11 -5
- data/lib/amun/behaviours/emacs.rb +14 -122
- data/lib/amun/behaviours/erasing.rb +67 -0
- data/lib/amun/behaviours/insertion.rb +22 -0
- data/lib/amun/behaviours/movement.rb +83 -0
- data/lib/amun/buffer.rb +103 -0
- data/lib/amun/event_manager.rb +12 -3
- data/lib/amun/features/echo_event.rb +4 -1
- data/lib/amun/features/files.rb +26 -0
- data/lib/amun/helpers/colors.rb +8 -7
- data/lib/amun/helpers/keyboard.rb +25 -8
- data/lib/amun/major_modes/fundamental.rb +8 -40
- data/lib/amun/major_modes/irb.rb +40 -0
- data/lib/amun/mode_line_segments/buffer_name.rb +10 -0
- data/lib/amun/mode_line_segments/major_mode.rb +11 -0
- data/lib/amun/object.rb +21 -0
- data/lib/amun/primitives/rect.rb +15 -0
- data/lib/amun/version.rb +1 -1
- data/lib/amun/windows/base.rb +42 -0
- data/lib/amun/windows/buffer_window.rb +73 -0
- data/lib/amun/windows/echo_area.rb +34 -0
- data/lib/amun/windows/frame.rb +92 -0
- data/lib/amun/windows/mini_buffer_window.rb +126 -0
- data/lib/amun/windows/mode_line.rb +50 -0
- data/lib/amun/windows/text_renderer.rb +41 -0
- metadata +56 -31
- data/lib/amun/ui/buffer.rb +0 -90
- data/lib/amun/ui/echo_area.rb +0 -42
- data/lib/amun/ui/mode_line.rb +0 -44
- data/lib/amun/ui/mode_line_segments/buffer_name.rb +0 -16
- data/lib/amun/ui/mode_line_segments/major_mode.rb +0 -17
- data/lib/amun/ui/windows/buffer_window.rb +0 -40
- data/lib/amun/ui/windows/frame.rb +0 -75
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
require 'curses'
|
|
2
|
-
require 'amun/event_manager'
|
|
3
|
-
require 'amun/ui/windows/buffer_window'
|
|
4
|
-
require 'amun/ui/echo_area'
|
|
5
|
-
|
|
6
|
-
module Amun
|
|
7
|
-
module UI
|
|
8
|
-
module Windows
|
|
9
|
-
# a Frame fills all the space in terminal
|
|
10
|
-
# renders an echo area and an object that
|
|
11
|
-
# respond to #render and #trigger, like buffer,
|
|
12
|
-
# or another window or so
|
|
13
|
-
class Frame
|
|
14
|
-
attr_writer :screen, :echo_area, :window
|
|
15
|
-
|
|
16
|
-
def window
|
|
17
|
-
@window ||= BufferWindow.new
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def echo_area
|
|
21
|
-
@echo_area ||= EchoArea.new
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def trigger(event)
|
|
25
|
-
EventManager.join(event, echo_area, window, EventManager)
|
|
26
|
-
rescue StandardError => e
|
|
27
|
-
handle_exception(e)
|
|
28
|
-
ensure
|
|
29
|
-
render
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def render
|
|
33
|
-
render_content
|
|
34
|
-
render_echo_area
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
def screen
|
|
40
|
-
@screen ||= Curses.stdscr
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def content_window
|
|
44
|
-
@content_window ||= screen.subwin(screen.maxy - 1, screen.maxx, 0, 0)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def echo_window
|
|
48
|
-
@echo_window ||= screen.subwin(1, screen.maxx, screen.maxy - 1, 0)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def render_content
|
|
52
|
-
begin
|
|
53
|
-
window.render(content_window)
|
|
54
|
-
rescue StandardError => e
|
|
55
|
-
handle_exception(e)
|
|
56
|
-
end
|
|
57
|
-
content_window.refresh
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def render_echo_area
|
|
61
|
-
begin
|
|
62
|
-
echo_area.render(echo_window)
|
|
63
|
-
rescue StandardError => e
|
|
64
|
-
handle_exception(e)
|
|
65
|
-
end
|
|
66
|
-
echo_window.refresh
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def handle_exception(e)
|
|
70
|
-
Buffer.messages.text << "#{e.message} (#{e.backtrace.first})\n"
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|