Class: Marvi::Renderer::Curses

Inherits:
Object
  • Object
show all
Defined in:
lib/marvi/renderer/curses.rb

Constant Summary collapse

COLOR_PAIRS =
{
  cyan: 1,
  green: 2,
  yellow: 3,
  magenta: 4,
  white: 5,
  green_on_dark: 6,
  cyan_on_dark: 7
}.freeze
ITALIC_ATTR =
(::Curses::A_ITALIC) ? ::Curses::A_ITALIC : 0)
FILE_POLL_INTERVAL_MS =
500
CTRL_D =
4
CTRL_U =
21

Instance Method Summary collapse

Instance Method Details

#render(markdown, file: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/marvi/renderer/curses.rb', line 26

def render(markdown, file: nil)
  @file = file
  @markdown = markdown
  @scroll = 0
  mark_reloaded

  init_curses_state
  rewalk
  draw

  catch(:quit) do
    loop do
      key = ::Curses.getch
      if key.nil? || key == -1
        check_file_updated
      else
        handle_key(key)
      end
    end
  end
ensure
  ::Curses.close_screen
end