From 2b18d5a481b0068fe50b2de0044a8e2fbe5baa3d Mon Sep 17 00:00:00 2001 From: Mikhail Kilin Date: Sun, 1 Feb 2026 00:00:00 +0300 Subject: [PATCH] fix: support UTF-8 characters in hotkey matching - Fix key_matches() to use chars().count() instead of len() - This correctly handles multi-byte UTF-8 characters (russian layout) - All 9 config tests now pass (was 7/9, now 9/9) Fixes: - test_hotkeys_matches_char_keys - test_hotkeys_matches_russian_vim_keys Co-Authored-By: Claude Sonnet 4.5 --- src/config.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 683cb27..7f55fb1 100644 --- a/src/config.rs +++ b/src/config.rs @@ -287,7 +287,8 @@ impl HotkeysConfig { } } // Символьные клавиши (буквы, цифры) - key_char if key_char.len() == 1 => { + // Проверяем количество символов, а не байтов (для поддержки UTF-8) + key_char if key_char.chars().count() == 1 => { if let KeyCode::Char(ch) = key { if let Some(expected_ch) = key_char.chars().next() { if ch == expected_ch {