aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/tui/input.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/tui/input.h')
-rw-r--r--src/nvim/tui/input.h32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/nvim/tui/input.h b/src/nvim/tui/input.h
index d33cea6383..2743a5e286 100644
--- a/src/nvim/tui/input.h
+++ b/src/nvim/tui/input.h
@@ -1,5 +1,4 @@
-#ifndef NVIM_TUI_INPUT_H
-#define NVIM_TUI_INPUT_H
+#pragma once
#include <stdbool.h>
#include <stdint.h>
@@ -10,33 +9,34 @@
#include "nvim/event/stream.h"
#include "nvim/event/time.h"
#include "nvim/rbuffer.h"
-#include "nvim/tui/input_defs.h"
+#include "nvim/tui/input_defs.h" // IWYU pragma: export
#include "nvim/tui/tui.h"
+#include "nvim/types_defs.h"
typedef enum {
- kExtkeysNone,
- kExtkeysCSIu,
- kExtkeysXterm,
-} ExtkeysType;
+ kKeyEncodingLegacy, ///< Legacy key encoding
+ kKeyEncodingKitty, ///< Kitty keyboard protocol encoding
+ kKeyEncodingXterm, ///< Xterm's modifyOtherKeys encoding (XTMODKEYS)
+} KeyEncoding;
-typedef struct term_input {
+typedef struct {
int in_fd;
// Phases: -1=all 0=disabled 1=first-chunk 2=continue 3=last-chunk
int8_t paste;
- bool waiting;
bool ttimeout;
- int8_t waiting_for_bg_response;
- int8_t waiting_for_csiu_response;
- ExtkeysType extkeys_type;
- long ttimeoutlen;
+
+ bool waiting_for_kkp_response; ///< True if we are expecting to receive a response to a query for
+ ///< Kitty keyboard protocol support
+
+ KeyEncoding key_encoding; ///< The key encoding used by the terminal emulator
+
+ OptInt ttimeoutlen;
TermKey *tk;
TermKey_Terminfo_Getstr_Hook *tk_ti_hook_fn; ///< libtermkey terminfo hook
TimeWatcher timer_handle;
Loop *loop;
Stream read_stream;
RBuffer *key_buffer;
- uv_mutex_t key_buffer_mutex;
- uv_cond_t key_buffer_cond;
TUIData *tui_data;
} TermInput;
@@ -49,5 +49,3 @@ typedef enum {
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "tui/input.h.generated.h"
#endif
-
-#endif // NVIM_TUI_INPUT_H