#syntax-highlighting #editor #utf-8 #terminal-text #rust

app cedrh

cedrh - simple console text-editor with syntax highighting written in Rust

19 releases

0.5.1 Jan 13, 2024
0.5.0 Jan 13, 2024
0.4.7 Jan 13, 2024
0.4.1 Dec 31, 2023
0.3.9 Dec 30, 2023

#58 in Text editors

MIT/Apache

82KB
2K SLoC

Cedrh - text editor written in Rust

WARNING: Work is still in the progress

Table of contents

Overview

Cedrh (от англ Console EDitoR with syntax Highlighting) - консольный текстовый редактор с базовой подсветкой синтаксиса.

https://github.com/SergoGansta777/Cedrh/assets/98104790/a68d4e14-f323-4674-a80b-d0a3621808e4

Редактор был написан в качестве курсовой работы по теме "Разработка программного комплекса текстовый редактор с подсветкой синтаксиса". В качестве языка программирования был выбран Rust, как современный язык системного программирования, еще этот язык активно используется при написании современных консольных утилит, таких как ripgrep или bat. Освновной целью работы было познакомиться с Rust и с общими принципами разработки текстовых редакторов с консольным интерфейсом, в процессе работы и изучения материала активно вдохновлялся  Build Your Own Text Editor и Kiro

Более детальную информацию о проекте можно получить в wiki

Cedrh предоставляет следующие базовые функции:

  • Открытие существующего файла или создание нового
  • Редактирование файла (вставка, удаление, добавление новой строки и тд…)
  • Сохранение изменений
  • Базовая подсветка синтаксиса (цвета подсветки могут браться из терминала или используется стандартная цветовая схема)
  • Инкрементный поиск
  • Нативная поддержка UTF 8
  • Кроссплатформенность
  • Поддержка различных терминалов и их функций (изменение размера окна, полный экран…)

Cedrh является кроссплатформенной утилитой, которая поддерживает следующие операционные системы:

  • MacOs
  • Unix/Linux
  • Windows
  • BSD

Installation

Пожалуйста, используйте новейшую версию Rust.

Cargo install

Текстовый редактор можно установить с помощью cargo. Для этого введите команду:

cargo install cedrh

После этого Вы можете запустить редактор с помощью:

cedrh

Binary

  1. Клонируйте этот репозиторий
git clone https://github.com/SergoGansta777/Cedrh.git
  1. Установите rust
  2. Запустите следующую команду в корне репозитория:
cargo build --release
  1. Затем вы можете запустить собранное приложение:
./target/release/cedrh
  1. Затем вы можете добавить символическую ссылку для запуска приложения

Usages

Для получения вспомогательной информации используйте флаг --help

cedrh --help

Вы можете открыть на редактирование существующий файл с помощью:

cedrh file

Если вы хотите создать новый файл, запускайте редактор без аргументов или с указанием имени файла, который хотите создать

Mappings

Управление редактором оптимизировано для работы с клавиатурой, следует знакомым клавишным комбинациям по nano или micro

Operations

Mapping Description
Ctrl-q Выйти
Ctrl-s Сохранить текущий файл
Ctrl-f Инкрементный поиск
or after Ctrl-f Предыдущее совпадение
or after Ctrl-f Следущее совпадение

Navigation

Mapping Description
Передвинуть курсор вверх
Передвинуть курсор вниз
Передвинуть курсор вправо
Передвинуть курсов влево
Home Перенести курсор в начало строки
End Перенести курсор в конец строки
PageUp Перейти на первую строку
PageDown Перейти на последную строку

Additional Info about Syntax Highlighting

Cedrh - это текстовый редактор с поддержкой подсветки синтаксиса. Для подсветки cedrh использует несколько вариантов определения цветов подсветки:

  1. Использование поддерживаемого эмулятора терминала - В таком случае, согласно документации терминала cedrh спарсит конфиг, в котором перечислены цвета терминала. Таким образом cedrh поддерживает цветовой стиль среды и вкусовые предпочтения пользователя, с которыми работает. Если пользователь пожелает изменить цвета редактора, ему придется изменить настройки своего терминала
  2. Если терминал не поддерживаемый, тогда используется заранее предустановленные стандартная цветовая палитра cedrh.
  3. Возможно добавления кастомного файла, с конфигурацией цветов, если таковой указан, предпочтение будет отдаваться ему.
  4. Запуск программы с флагом -d всегда запустит со стандартной цветовой палитрой (подробнее --help)

List supported terminals

  • Kitty
  • Iterm2

Directory path of custom config

  • Linux/MacOs: "~/.config/cedrh/cedrh.conf"
  • Windows: work in progress

Example of custom config

foreground              #CDD6F4
background              #09081B
active_border_color     #B4BEFE

# The 16 terminal colors
color0 #45475A
color8 #585B70

color1 #F38BA8
color9 #F38BA8

color2  #A6E3A1
color10 #A6E3A1

color3  #F9E2AF
color11 #F9E2AF

color4  #89B4FA
color12 #89B4FA

color5  #F5C2E7
color13 #F5C2E7

color6  #94E2D5
color14 #94E2D5

color7  #BAC2DE
color15 #A6ADC8

Dependencies

~2.3–7.5MB
~57K SLoC