Class: LLM::Repl::Window Private

Inherits:
Object
  • Object
show all
Defined in:
lib/llm/repl/window.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

The LLM::Repl::Window class draws the curses screen for the REPL.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status, transcript, input) ⇒ LLM::Repl::Window

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:



26
27
28
29
30
# File 'lib/llm/repl/window.rb', line 26

def initialize(status, transcript, input)
  @status = status
  @transcript = transcript
  @input = input
end

Instance Attribute Details

#inputLLM::Repl::Input (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:



19
20
21
# File 'lib/llm/repl/window.rb', line 19

def input
  @input
end

#statusLLM::Repl::Status (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:



11
12
13
# File 'lib/llm/repl/window.rb', line 11

def status
  @status
end

#transcriptLLM::Repl::Transcript (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



15
16
17
# File 'lib/llm/repl/window.rb', line 15

def transcript
  @transcript
end

Instance Method Details

#getchObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:



65
66
67
# File 'lib/llm/repl/window.rb', line 65

def getch
  Curses.getch
end

#open { ... } ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Yields:



35
36
37
38
39
40
41
42
43
44
# File 'lib/llm/repl/window.rb', line 35

def open
  Curses.init_screen
  Curses.cbreak
  Curses.noecho
  Curses.stdscr.keypad(true)
  Curses.stdscr.nodelay = true
  yield
ensure
  Curses.close_screen
end

#redrawvoid

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.



48
49
50
51
52
53
54
55
# File 'lib/llm/repl/window.rb', line 48

def redraw
  Curses.curs_set(0)
  draw_status(offset: input.height + 1)
  draw_divider(offset: 5)
  draw_transcript(offset: 0)
  draw_input
  Curses.refresh
end

#rowsInteger

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Integer)


59
60
61
# File 'lib/llm/repl/window.rb', line 59

def rows
  [Curses.lines - (input.height + 4), 1].max
end

#scroll_downvoid

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.



77
78
79
# File 'lib/llm/repl/window.rb', line 77

def scroll_down
  transcript.scroll_down
end

#scroll_upvoid

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.



71
72
73
# File 'lib/llm/repl/window.rb', line 71

def scroll_up
  transcript.scroll_up(rows)
end