Aml Pages: новости, советы, ответы на вопросы
Выпуск 21 от 2005-03-12
Синтаксическая подсветка
Добрый день, уважаемые подписчики. В первую очередь хочу поздравить всех представительниц
прекрасной половины подписчиков с 8 марта. Счастья вам и успехов.
9 марта в версии Aml Pages 9.0 Beta 2 (сборка 1561) новая версия синтаксической подсветки языков
программирования, о которой так много говорили большевики, наконец, была анонсирована и введена в
эксплуатацию.
Итак, как я писал в прошлых выпусках рассылки, основной задачей нового алгоритма подсветки было
существенное расширение поддерживаемых языков программирования. А также ключевым было вынесение
данных подсветки (слова, цвета, различные правила) во внешние файлы, чтобы любой неискушенный
пользователь мог отредактировать их или создать свой собственный файл. Собственно говоря,
результатом попытки решить эту задачи, и является новая подсветка. Насколько мне это удалось судить
Вам.
Алгоритм был написан значительно более обобщенно, а все данные теперь хранятся во внешних файлах.
Это файлы с расширением *.ash в папке программы. Название файла вкратце отображает его содержание.
Внутреннее устройство самих файлов просто до безобразия - на самом деле это обычные ini-файлы
Windows с предопределенными названиями секций и ключей (keys). Я думаю, что для тех, кто из вас
занимается программированием, не составит большого труда разобраться в этом формате. Хотя, конечно
же, если внутреннее устройство файлов подсветки вызовет у кого-нибудь интерес, то я напишу
подробный мануал. В перспективе возможен и выпуск специализированного редактора подобных файлов,
благо весь код создания файлов подсветки уже написан и функционирует (как Вы сами понимаете,
конечно же, я не ручками создавал львиную долю файлов, ну ленивый, ну что поделать :)
На текущий момент уже реализовано некоторое количество языков подсветки, и все они входят в состав
стандартного дистрибутива программы. На данный момент в него включены: C\C++, MFC C++ (как
некоторое подмножество, в MFC для определенных макросов используются собственные цвета), Visual
Basic, E-Mail (подсветка закомментированного текста). Как я полагаю, наверняка какие-то ключевые
слова могли быть и упущены, но со временем эти недоделки "вылижутся". На подходе также и HTML.
Также были учтены недочеты прошлых версий и выполнена некоторая целевая оптимизация. К примеру,
были ликвидированы неудобства продолжительного обработки текста при случайном выборе страницы в
дереве, или ощутимые задержки времени при быстром редактировании текста.
Как я писал, если у кого-то из вас возникнет желание добавить прочие языки в список
поддерживаемых, то милости прошу. Достаточно просто создать ash-файл, записать его в папку
программы и перестроить список языков (командой меню, или простым перезапуском Aml Pages). Я буду
признателен, если Вы пришлете подобный файл
мне. Я с радостью включу его в дистрибутив, с Вашими копирайтами и моими благодарностями.