Минималистичный текстовый редактор в терминале, написанный на Rust.
- Открытие файла (или создание нового)
- Нумерация строк в файле
- Вставка и удаление символов
- Перенос строк
- Навигация стрелками
- Навигация по словам
- Сохранение файла
- Поиск по файлу
- Переход к строке файла
- Автоматические отступы (auto-indent)
- Status bar в нижней части редактора
- Работа в raw-режиме терминала через
crossterm - Подсветка синтаксиса (цвет + атрибуты) на основе JSON-правил
| Язык | Расширение | Файл правил |
|---|---|---|
| Rust | .rs |
syntaxes/rust.json |
| Python | .py |
syntaxes/python.json |
| TOML | .toml |
syntaxes/toml.json |
Правила подсветки полностью вынесены в JSON-файлы.
Чтобы добавить новый язык или изменить цвета/ключевые слова — достаточно отредактировать соответствующий .json (перекомпиляция не нужна).
# Без аргументов — новый пустой буфер
cargo run
# Открыть существующий файл
cargo run -- path/to/file.txt| Клавиша | Действие |
|---|---|
| Ctrl + Q | Выход |
| Ctrl + S | Сохранить фaйл |
| Ctrl + F | Поиск по файлу |
| Ctrl + G | Переход к строке |
| ← → ↑ ↓ | Пермещение курсора |
| Ctrl + ← / → | Навигация по словам |
| Enter | Новая строка |
| Backspace | Удалить символ/строку |
| Любой символ | Вставка символа |
src/
├── main.rs — точка входа
├── editor.rs — логика редактора и обработка событий
├── buffer.rs — хранение текста и операции над ним
├── cursor.rs — позиция курсора и viewport
├── terminal.rs — обёртка над crossterm
└── syntax.rs — загрузка правил и подсветка синтаксиса
syntaxes/
├── rust.json
├── python.json
└── toml.json
crossterm— работа с терминаломserde+serde_json— загрузка правил подсветки синтаксиса из JSONunicode-segmentation— корректное разбиение строк на слова

