Блок задач

5. Проекты

Темы
Сложность 8

Проект «Текстовый редактор (псевдографика)»

Реализовать простой текстовый редактор наподобие того, что реализован в FAR Manager. Использовать библиотеку для работы с консольной псевдографикой.

Функциональность:

  • Режим просмотра/редактирования.
  • Корректное отображение длинных строк (вариант отображения с принудительным переносом).
  • Корректное отображение символов табуляции.
  • Навигация клавишами PgUp/PgDown, стрелками влево/вправо/вверх/вниз.
  • Сохранение отредактированного файла.

В режиме просмотра:

  • Клавиши навигации перемещают всю страницу целиком.
  • Смена (например по F2) режима переноса длинных строк (не переносятся / принудительно переносятся).
  • Смена (например по F12) режима отображения табуляции (tab = 4 / 8 пробелов).

В режиме редактирования:

  • Клавиши навигации перемещают курсор, редактор автоматически перемещает страницу так чтобы курсор был всегда виден на экране.
  • Текст можно вставлять в любом месте файла.
  • Enter - перевод строки, Del - удаление символа в позиции курсора, Backspace - удаление символа перед позицией курсора.
  • Возможность сохранения файла (например по F2).

Имя файла и режим открытия передается через аргумент командной строки:

editor -e filename -- открыть/создать файл для редактирования
editor -r filename -- открыть файл для просмотра

Как вариант дальнейшего усложнения

  • поддержка таблиц кодировок (KOI-8 / CP886 / Windows-1251)
  • поиск подстроки в режиме просмотра, поиск и замена в режиме редактирования