Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

editor-rs

Минималистичный текстовый редактор в терминале, написанный на Rust.

App Screenshot

App Gif

Возможности

  • Открытие файла (или создание нового)
  • Нумерация строк в файле
  • Вставка и удаление символов
  • Перенос строк
  • Навигация стрелками
  • Навигация по словам
  • Сохранение файла
  • Поиск по файлу
  • Переход к строке файла
  • Автоматические отступы (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 — загрузка правил подсветки синтаксиса из JSON
  • unicode-segmentation — корректное разбиение строк на слова

About

Минималистичный текстовый редактор в терминале, написанный на Rust.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages