mirror of
https://github.com/neovim/neovim.git
synced 2025-09-30 15:08:35 +00:00
refactor(tui): reorder functions for query and response (#28051)
- Group functions for key encoding together. - Move the handle_modereport() branch before the handle_unknown_csi() branch to match the order of the corresponding functions, but don't move handle_term_response() yet, as that will be subject to further changes (e.g. for #26744).
This commit is contained in:
@@ -442,12 +442,12 @@ static void tk_getkeys(TermInput *input, bool force)
|
|||||||
forward_modified_utf8(input, &key);
|
forward_modified_utf8(input, &key);
|
||||||
} else if (key.type == TERMKEY_TYPE_MOUSE) {
|
} else if (key.type == TERMKEY_TYPE_MOUSE) {
|
||||||
forward_mouse_event(input, &key);
|
forward_mouse_event(input, &key);
|
||||||
|
} else if (key.type == TERMKEY_TYPE_MODEREPORT) {
|
||||||
|
handle_modereport(input, &key);
|
||||||
} else if (key.type == TERMKEY_TYPE_UNKNOWN_CSI) {
|
} else if (key.type == TERMKEY_TYPE_UNKNOWN_CSI) {
|
||||||
handle_unknown_csi(input, &key);
|
handle_unknown_csi(input, &key);
|
||||||
} else if (key.type == TERMKEY_TYPE_OSC || key.type == TERMKEY_TYPE_DCS) {
|
} else if (key.type == TERMKEY_TYPE_OSC || key.type == TERMKEY_TYPE_DCS) {
|
||||||
handle_term_response(input, &key);
|
handle_term_response(input, &key);
|
||||||
} else if (key.type == TERMKEY_TYPE_MODEREPORT) {
|
|
||||||
handle_modereport(input, &key);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -189,36 +189,6 @@ void tui_start(TUIData **tui_p, int *width, int *height, char **term, bool *rgb)
|
|||||||
*rgb = tui->rgb;
|
*rgb = tui->rgb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void tui_set_key_encoding(TUIData *tui)
|
|
||||||
FUNC_ATTR_NONNULL_ALL
|
|
||||||
{
|
|
||||||
switch (tui->input.key_encoding) {
|
|
||||||
case kKeyEncodingKitty:
|
|
||||||
out(tui, S_LEN("\x1b[>1u"));
|
|
||||||
break;
|
|
||||||
case kKeyEncodingXterm:
|
|
||||||
out(tui, S_LEN("\x1b[>4;2m"));
|
|
||||||
break;
|
|
||||||
case kKeyEncodingLegacy:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void tui_reset_key_encoding(TUIData *tui)
|
|
||||||
FUNC_ATTR_NONNULL_ALL
|
|
||||||
{
|
|
||||||
switch (tui->input.key_encoding) {
|
|
||||||
case kKeyEncodingKitty:
|
|
||||||
out(tui, S_LEN("\x1b[<1u"));
|
|
||||||
break;
|
|
||||||
case kKeyEncodingXterm:
|
|
||||||
out(tui, S_LEN("\x1b[>4;0m"));
|
|
||||||
break;
|
|
||||||
case kKeyEncodingLegacy:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Request the terminal's mode (DECRQM).
|
/// Request the terminal's mode (DECRQM).
|
||||||
///
|
///
|
||||||
/// @see handle_modereport
|
/// @see handle_modereport
|
||||||
@@ -270,6 +240,36 @@ static void tui_query_kitty_keyboard(TUIData *tui)
|
|||||||
out(tui, S_LEN("\x1b[?u\x1b[c"));
|
out(tui, S_LEN("\x1b[?u\x1b[c"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tui_set_key_encoding(TUIData *tui)
|
||||||
|
FUNC_ATTR_NONNULL_ALL
|
||||||
|
{
|
||||||
|
switch (tui->input.key_encoding) {
|
||||||
|
case kKeyEncodingKitty:
|
||||||
|
out(tui, S_LEN("\x1b[>1u"));
|
||||||
|
break;
|
||||||
|
case kKeyEncodingXterm:
|
||||||
|
out(tui, S_LEN("\x1b[>4;2m"));
|
||||||
|
break;
|
||||||
|
case kKeyEncodingLegacy:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void tui_reset_key_encoding(TUIData *tui)
|
||||||
|
FUNC_ATTR_NONNULL_ALL
|
||||||
|
{
|
||||||
|
switch (tui->input.key_encoding) {
|
||||||
|
case kKeyEncodingKitty:
|
||||||
|
out(tui, S_LEN("\x1b[<1u"));
|
||||||
|
break;
|
||||||
|
case kKeyEncodingXterm:
|
||||||
|
out(tui, S_LEN("\x1b[>4;0m"));
|
||||||
|
break;
|
||||||
|
case kKeyEncodingLegacy:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Enable the alternate screen and emit other control sequences to start the TUI.
|
/// Enable the alternate screen and emit other control sequences to start the TUI.
|
||||||
///
|
///
|
||||||
/// This is also called when the TUI is resumed after being suspended. We reinitialize all state
|
/// This is also called when the TUI is resumed after being suspended. We reinitialize all state
|
||||||
|
Reference in New Issue
Block a user