Принцип работы текстового редактора

Принцип работы редакторов среднего класса и мощных редакторов похож на принцип работы систем программирования.

Примечание: Изучать принципы работы текстовых редакторов удобно на примере создания Web-страниц с помощью языка разметки, с последующим просмотром в броузере.

Текстовой редактор предоставляет пользователю текстовое окно для ввода текста и набор команд для его форматирования.

Первым этапом создания текстового документа является набор текста. После того, как текст введен можно приступать к его форматированию. Оформляя документ пользователь применяет к отдельным частям текста команды форматирования. Отрабатывая эти команды текстовой редактор меняет внешнее представление форматируемого текста и вставляет в текст документа элементы форматирования, которые, при повторным чтении документа дадут ему возможность однозначно интерпретировать их.

По окончании форматирования текста в документ вставляются и форматируются необходимые внешние объекты.

Здесь важно отметить, что существуют два различных метода вставки внешних объектов.

В первом случае текстовой редактор вставляет ссылку на внешний объект и элементы его форматирования. Соответственно, это требует постоянного наличия объекта по указанному адресу. К примеру, мы вставляем в документ картинку, находящуюся в файле image.gif. При перемещении, удалении или переименовании данного файла вместо необходимой картинки текстовой редактор выдаст диагностику ошибки или его не качественный образ (preview). Поэтому подобные действия при данном подходе недопустимы. Однако удобство данного подхода заключается в независимости внешнего объекта от текстового редактора. Мы можем обрабатывать внешний объект не запуская текстового редактора, при этом все изменения произведенные над объектом отразятся в текстовом документе. К тому же объем текстового документа становится меньше, что актуально для компьютеров с небольшим объемом оперативной памяти.

Во втором случае внешний объект полностью помещается в документ, что увеличивает его объем, но делает независимым от файла из которого взят этот объект. При данном подходе в текстовой документ записывается не ссылка на файл, а команда вставки внешнего объекта и коды данного объекта.

Таким образом, текстовой документ содержит в себе собственно текст, элементы его форматирования; ссылки на внешние объекты или команды вставки объектов и коды этих объектов; элементы форматирования вставленных объектов.

При чтении файла, содержащего текстовой документ, текстовой редактор считывает текст и элементы его форматирования, команды вставки внешних объектов и их форматирования, интерпретирует эти элементы и команды (то есть применяет к тексту и внешним объектам команды форматирования и выводит на экран (или другое внешнее устройство) отформатированные текст и внешние объекты.

Помимо средств оформления текста, текстовые редакторы часто снабжают дополнительными утилитами, облегчающими работу с документом.

К примеру: средствами поиска и замены; проверки орфографии, пунктуации; средствами работы с буфером обмена; справочной системой по программе; средствами автоматизации (написание сценариев или макросов) и т.д.

Таким образом, мощный текстовой редактор состоит из текстового окна для ввода текста, библиотеки элементов форматирования, интерпретатора этих элементов, ряда вспомогательных программ для создания и форматирования внешних объектов и набором утилит, облегчающих работу с документом.

Набор элементов форматирования сугубо индивидуален для каждого текстового редактора. То есть интерпретатор одного текстового редактора не может понять и правильно отработать элементы другого текстового редактора. Тем не менее, необходимость чтения документов, созданных в другом текстовом редакторе все же существует. Для решения этой проблемы мощные редакторы и редакторы среднего класса снабжают набором конверотов, которые переводят элементы другого текстового редактора в команды данного.

Примечание: так как простейшие текстовые редакторы не позволяют форматировать текст, это означает, что они не добавляют своих элементов то есть текстовой документ состоит только из текста. Это означает, что любой редактор (той же операционной системы) среднего класса и выше прочитает данные документы без дополнительной конвертации.