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.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/.rspec +1 -0
  3. data/.rubocop.yml +6 -1
  4. data/.ruby-version +1 -1
  5. data/Guardfile +26 -6
  6. data/README.md +1 -0
  7. data/Rakefile +4 -6
  8. data/_config.yml +1 -0
  9. data/amun.gemspec +6 -5
  10. data/exe/amun +1 -1
  11. data/lib/amun/application.rb +11 -5
  12. data/lib/amun/behaviours/emacs.rb +14 -122
  13. data/lib/amun/behaviours/erasing.rb +67 -0
  14. data/lib/amun/behaviours/insertion.rb +22 -0
  15. data/lib/amun/behaviours/movement.rb +83 -0
  16. data/lib/amun/buffer.rb +103 -0
  17. data/lib/amun/event_manager.rb +12 -3
  18. data/lib/amun/features/echo_event.rb +4 -1
  19. data/lib/amun/features/files.rb +26 -0
  20. data/lib/amun/helpers/colors.rb +8 -7
  21. data/lib/amun/helpers/keyboard.rb +25 -8
  22. data/lib/amun/major_modes/fundamental.rb +8 -40
  23. data/lib/amun/major_modes/irb.rb +40 -0
  24. data/lib/amun/mode_line_segments/buffer_name.rb +10 -0
  25. data/lib/amun/mode_line_segments/major_mode.rb +11 -0
  26. data/lib/amun/object.rb +21 -0
  27. data/lib/amun/primitives/rect.rb +15 -0
  28. data/lib/amun/version.rb +1 -1
  29. data/lib/amun/windows/base.rb +42 -0
  30. data/lib/amun/windows/buffer_window.rb +73 -0
  31. data/lib/amun/windows/echo_area.rb +34 -0
  32. data/lib/amun/windows/frame.rb +92 -0
  33. data/lib/amun/windows/mini_buffer_window.rb +126 -0
  34. data/lib/amun/windows/mode_line.rb +50 -0
  35. data/lib/amun/windows/text_renderer.rb +41 -0
  36. metadata +56 -31
  37. data/lib/amun/ui/buffer.rb +0 -90
  38. data/lib/amun/ui/echo_area.rb +0 -42
  39. data/lib/amun/ui/mode_line.rb +0 -44
  40. data/lib/amun/ui/mode_line_segments/buffer_name.rb +0 -16
  41. data/lib/amun/ui/mode_line_segments/major_mode.rb +0 -17
  42. data/lib/amun/ui/windows/buffer_window.rb +0 -40
  43. 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