HeadlinesBriefing favicon HeadlinesBriefing.com

paveluv/e: Настраиваемый редактор Emacs-like на Chez Scheme

Hacker News •
×

Небольшой консольный редактор текста, написанный в Chez Scheme, paveluv/e дух Emacs, но не клон. В нем есть буферы, окна, кольцо удаления, incremental search и уровень Schemetop. Всё — библиотека R6RS с минимальным ядром и неimmutable API, плюс модули расширения для режимов синтаксиса, подсветки скобок, помощников редактирования и M-x. M-x оценивает Scheme против живого верхнего уровня редактора с завершением символов, подсказками параметров, историей и буфером транскрипции. Модули hot-reload: сохранение источника модуля внутри редактора перезагружает его в работающей сессии; внешние правки обнаруживаются через reload-module!. Регистрации заменяются, зависимые модули перекомпилируются, и буферы остаются на месте. Редактор разрабатывается изнутри без зависимостей, кроме Chez Scheme и терминала типа Unix. Нет шага сборки или установки — checkout работает на месте. Первый запуск компилирует библиотеки; последующие запуски занимают около 100 мс. Отчеты об отмене сообщают действия вроде 'Undo insert "hello"' или 'Undo (replace-all! "xx" "yy")'. Напечатанные символы объединяются в runs, вставка — один шаг, и команды M-x помечены как шаги. Быстрый старт: клонируйте как ~/.e или vendore внутри проекта. Каждая установка автономна, используя lib/ рядом со скриптом и скомпилированные объекты в eo/. Размер терминала определяется через ioctl или переменные окружения LINES/COLUMNS. На FreeBSD, скорректируйте shebang или запустите chez-scheme --script e. Ключевые сочетания клавиш включают C-x C-s (сохранить), C-x C-f (посетить файл), C-x C-c (выход), C-x b (смена буфера), C-x 2/3 (разделение окон), C-x o (следующее окно), и клавиши перемещения/редактирования C-b/f, C-p/n, C-a/e, C-d/Backspace.