refactor: split main_input.rs into modular handlers (1199→164 lines)
Split monolithic input handler into 5 specialized modules: - handlers/chat.rs (452 lines) - chat keyboard input - handlers/modal.rs (316 lines) - modal dialogs - handlers/chat_list.rs (142 lines) - chat list navigation - handlers/search.rs (140 lines) - search functionality - handlers/compose.rs (80 lines) - forward/reply/edit modes Changes: - main_input.rs: 1199→164 lines (removed 1035 lines, -86%) - Preserved existing handlers: clipboard, global, profile - Created clean router pattern in main_input.rs - Fixed keybinding conflict: Ctrl+I→Ctrl+U for profile - Fixed modifier handling in chat input (ignore Ctrl/Alt chars) - Updated CONTEXT.md with refactoring metrics - Updated ROADMAP.md: Phase 13 Etap 1 marked as DONE Phase 13 Etap 1: COMPLETED (100%) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
42
CONTEXT.md
42
CONTEXT.md
@@ -1,8 +1,46 @@
|
||||
# Текущий контекст проекта
|
||||
|
||||
## Статус: Фаза 9 — ЗАВЕРШЕНО + Тестирование (100%!) 🎉
|
||||
## Статус: Фаза 13 Этап 1 — ЗАВЕРШЕНО (100%!) 🎉
|
||||
|
||||
### Последние изменения (2026-02-04)
|
||||
### Последние изменения (2026-02-06)
|
||||
|
||||
**🔧 COMPLETED: Глубокий рефакторинг input/main_input.rs (Фаза 13, Этап 1)**
|
||||
- **Проблема**: `src/input/main_input.rs` содержал 1199 строк монолитного кода
|
||||
- **Решение**: Разбит на модульную структуру handlers с 6 специализированными модулями
|
||||
- **Результат**:
|
||||
- ✅ `main_input.rs`: **164 строки** (было 1199) - чистый роутер
|
||||
- ✅ Создано 5 новых handler модулей:
|
||||
- `handlers/chat.rs` - 452 строки (обработка открытого чата)
|
||||
- `handlers/modal.rs` - 316 строк (модальные окна)
|
||||
- `handlers/chat_list.rs` - 142 строки (навигация по чатам)
|
||||
- `handlers/search.rs` - 140 строк (поиск)
|
||||
- `handlers/compose.rs` - 80 строк (forward/reply/edit)
|
||||
- ✅ Сохранены существующие модули: clipboard.rs, global.rs, profile.rs
|
||||
- ✅ **Удалено 1035 строк** (86% кода) из monolithic файла
|
||||
- ✅ Улучшена модульность и читаемость кода
|
||||
- **Дополнительные изменения**:
|
||||
- 🔧 Исправлен хоткей профиля: Ctrl+I → Ctrl+U (конфликт с Tab в терминале)
|
||||
- 🔕 Уведомления отключены по умолчанию (enabled: false в config)
|
||||
- **Структура handlers/**:
|
||||
```
|
||||
src/input/handlers/
|
||||
├── mod.rs # Module exports
|
||||
├── chat.rs # Chat keyboard input (452 lines)
|
||||
├── chat_list.rs # Chat list navigation (142 lines)
|
||||
├── compose.rs # Forward/reply/edit modes (80 lines)
|
||||
├── modal.rs # Modal dialogs (316 lines)
|
||||
├── search.rs # Search functionality (140 lines)
|
||||
├── clipboard.rs # Clipboard operations (existing)
|
||||
├── global.rs # Global commands (existing)
|
||||
└── profile.rs # Profile helpers (existing)
|
||||
```
|
||||
- **Метрики успеха**:
|
||||
- До: 1199 строк в 1 файле
|
||||
- После: 164 строки в main_input.rs + 1367 строк в 9 handler файлах
|
||||
- Достигнута цель: main_input.rs < 200 строк ✅
|
||||
- **Тестирование**: Требуется ручное тестирование всех функций приложения
|
||||
|
||||
### Изменения (2026-02-04)
|
||||
|
||||
**🔔 NEW: Desktop уведомления (Notifications) — Стадия 1/3 завершена**
|
||||
- **Реализовано**:
|
||||
|
||||
Reference in New Issue
Block a user