MCPcopy
hub / github.com/charmbracelet/bubbletea / initInputReader

Method initInputReader

tty.go:56–82  ·  view source on GitHub ↗

initInputReader (re)commences reading inputs.

(cancel bool)

Source from the content-addressed store, hash-verified

54
55// initInputReader (re)commences reading inputs.
56func (p *Program) initInputReader(cancel bool) error {
57 if cancel && p.cancelReader != nil {
58 p.cancelReader.Cancel()
59 p.waitForReadLoop()
60 }
61
62 term := p.environ.Getenv("TERM")
63
64 // Initialize the input reader.
65 // This need to be done after the terminal has been initialized and set to
66 // raw mode.
67
68 var err error
69 p.cancelReader, err = uv.NewCancelReader(p.input)
70 if err != nil {
71 return fmt.Errorf("bubbletea: could not create cancelable reader: %w", err)
72 }
73
74 drv := uv.NewTerminalReader(p.cancelReader, term)
75 drv.SetLogger(p.logger)
76 p.inputScanner = drv
77 p.readLoopDone = make(chan struct{})
78
79 go p.readLoop()
80
81 return nil
82}
83
84func (p *Program) readLoop() {
85 defer close(p.readLoopDone)

Callers 2

RunMethod · 0.95
RestoreTerminalMethod · 0.95

Calls 3

waitForReadLoopMethod · 0.95
readLoopMethod · 0.95
GetenvMethod · 0.80

Tested by

no test coverage detected