input.h
Go to the documentation of this file.
1 #ifndef NVIM_TUI_INPUT_H
2 #define NVIM_TUI_INPUT_H
3 
4 #include <stdbool.h>
5 #include <termkey.h>
6 
7 #include "nvim/event/stream.h"
8 #include "nvim/event/time.h"
9 
10 typedef struct term_input {
11  int in_fd;
12  // Phases: -1=all 0=disabled 1=first-chunk 2=continue 3=last-chunk
13  int8_t paste;
14  bool waiting;
15  bool ttimeout;
18  TermKey *tk;
19 #if TERMKEY_VERSION_MAJOR > 0 || TERMKEY_VERSION_MINOR > 18
20  TermKey_Terminfo_Getstr_Hook *tk_ti_hook_fn;
21 #endif
26  uv_mutex_t key_buffer_mutex;
27  uv_cond_t key_buffer_cond;
28 } TermInput;
29 
30 #ifdef INCLUDE_GENERATED_DECLARATIONS
31 # include "tui/input.h.generated.h"
32 #endif
33 
34 #ifdef UNIT_TESTING
35 typedef enum {
36  kIncomplete = -1,
37  kNotApplicable = 0,
38  kComplete = 1,
39 } HandleState;
40 
41 HandleState ut_handle_background_color(TermInput *input);
42 #endif
43 
44 #endif // NVIM_TUI_INPUT_H
HandleState
HandleState
Definition: input.c:26
TermInput
struct term_input TermInput
term_input::ttimeoutlen
long ttimeoutlen
Definition: input.h:17
time.h
time_watcher
Definition: time.h:11
term_input::key_buffer_cond
uv_cond_t key_buffer_cond
Definition: input.h:27
kIncomplete
@ kIncomplete
Definition: input.c:27
stream
Definition: stream.h:31
input
rex input
Definition: regexp_nfa.c:4789
rbuffer
Definition: rbuffer.h:77
term_input::loop
Loop * loop
Definition: input.h:23
term_input::ttimeout
bool ttimeout
Definition: input.h:15
stream.h
term_input
Definition: input.h:10
term_input::paste
int8_t paste
Definition: input.h:13
term_input::in_fd
int in_fd
Definition: input.h:11
term_input::tk
TermKey * tk
Definition: input.h:18
term_input::key_buffer
RBuffer * key_buffer
Definition: input.h:25
term_input::timer_handle
TimeWatcher timer_handle
Definition: input.h:22
kNotApplicable
@ kNotApplicable
Definition: input.c:28
term_input::waiting_for_bg_response
int8_t waiting_for_bg_response
Definition: input.h:16
term_input::waiting
bool waiting
Definition: input.h:14
term_input::read_stream
Stream read_stream
Definition: input.h:24
kComplete
@ kComplete
Definition: input.c:29
term_input::key_buffer_mutex
uv_mutex_t key_buffer_mutex
Definition: input.h:26
loop
Definition: loop.h:16