Текстовый пользовательский интерфейс (TUI) для работы с файлами:
- Позволяет интерактивно вводить параметры для поиска и замены строк в файлах.
- Использует библиотеки:
Поля ввода, которые пользователь вводит через терминал:
- Путь к директории — например
src/data - Включённые расширения файлов — через запятую, например
swift,txt - Исключаемые директории или файлы — через запятую, например
private,tmp - Регулярка поиска — пример:
Constants\.c(\d+)\.rawValue - Регулярка замены — пример:
Constants.c#$1#.rawValue, где$1— первая capture-группа
Навигация и редактирование:
- Стрелки ↑↓ — перемещение между полями
- Backspace — удаление символа
- Enter — подтверждение текущего поля
- Esc — выход из TUI
enable_raw_mode()?;
let stdout = std::io::stdout();
let backend = CrosstermBackend::new(stdout);
let mut terminal = Terminal::new(backend)?;
let mut inputs = vec![String::new(); 5];
let labels = vec![
"Enter path to your directory:",
"Enter INCLUDED file extensions, comma separated:",
"Enter EXCLUDED directory names, comma separated:",
"Enter search regex:",
"Enter replace regex ($1, $2... = capture groups):",
];