You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Однако, в случае, если через win32 надо передать более сложные символы (например эмодзи "🙂" кодовая точка U+1F642) , они передаются через суррогатные пары. То есть как две отдельных ESC-последовательности с десятичным значением точек U+D83D (high surrogate) U+DE42 (low surrogate) и . Десятичные значения 55357 и 57026 соответственно.
Таким образом, на нашей стороне, как во встроенном терминале так и на консольном бекэенде, надо как-то учесть это поведение. Так как сейчас мы не можем принять ввод эмодзи от windows терминала.
Попытка вставить вышеописанный эмодзи в far2l WT WSL выглядит так:
ESC последовательности win32-input-mode должны состоять только из 16 битных чисел, это слабо документированное ограничение для параметров CSI команд. Таким образом, в поле
Uc: the decimal value of UnicodeChar
могут попасть только 65 536 символов юникода.Оригинальная реализация в WT тут:
https://github.com/microsoft/terminal/blob/924310481aefcba509d3f7f63e17f0ebbb903a29/src/terminal/input/terminalInput.cpp#L650
Однако, в случае, если через win32 надо передать более сложные символы (например эмодзи "🙂" кодовая точка
U+1F642
) , они передаются через суррогатные пары. То есть как две отдельных ESC-последовательности с десятичным значением точекU+D83D
(high surrogate)U+DE42
(low surrogate) и . Десятичные значения 55357 и 57026 соответственно.Таким образом, на нашей стороне, как во встроенном терминале так и на консольном бекэенде, надо как-то учесть это поведение. Так как сейчас мы не можем принять ввод эмодзи от windows терминала.
Попытка вставить вышеописанный эмодзи в far2l WT WSL выглядит так:
Особенность была обнаружена в дискуссии по интеграции win32-input-mode VTE (библиотека в основе GNOME Terminal) :
https://gitlab.gnome.org/GNOME/vte/-/issues/2601#note_2286510
Исправлением займусь сам, как только до конца разберусь в проблеме.
The text was updated successfully, but these errors were encountered: