2024-03-30

vak: (Default)
Набрёл на полезные структуры данных, которые не встретишь в учебниках.
  • Строп - хранит длинную строку в виде дерева, состоящего из небольших подстрок.
  • Буферное окно - динамический массив, позволяющий эффективную вставку и удаление элемента в некоторой области.
  • Таблица фрагментов - представление текстового документа, редактируемого в текстовом редакторе.

Редактор Руднева, а точнее RAND Editor, лежащий в его основе, построен как раз на таблице фрагментов. Был бы интересный челлендж: вытащить из тех исходников реализацию таблицы фрагментов и переписать на современный Си++ или Rust.

vak: (Default)
Помните, был такой компилятор Turbo C, а позже Turbo C++? Его приятный интерфейс был сделан на основе библиотеки Turbo Vision.



Недавно один крутой чувак перепёр Turbo Vision на современный стиль, с поддержкой юникода, Линукса, мака и прочих ништяков.

Исходники на Гитхабе: github.com/magiblot/tvision

Также в качестве примера товарищ сделал неплохой текстовый редактор. Подсветка синтаксиса, управление мышкой, все дела. Будет неплохой запасной вариант после моего любимого LE.

Исходники: github.com/magiblot/turbo