Помощь - Поиск - Пользователи - Календарь
Полная версия: Дельфи компонент для подкраски синтаксиса
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Vit
Результат совместной работы Fanasist'а и меня. Это компонент для Дельфи для известного пакета SynEdit (http://synedit.sourceforge.net), позволяющий на лету создавать подкраску синтаксиса по любым правилам любых форматов (создание и загрузка в run-time, хранение шаблонов на диске). В настоящее время пакет включает в себя более 300 готовых шаблонов для наиболее распространённых форматов, но каждый может создать свой собственный шаблон (можно с помошью компонента или используя прилагающуюся утилиту). Пример использования - простенький текстовый редактор с поддержкой любых расскрасок.

Загрузить можно с:
http://chicago.lastplanet.com/unihighlighter.zip

Платформа: Delphi 5/6

Для работы необходимо установить предварительно установить пакет SynEdit (http://synedit.sourceforge.net).

Компонент свободен для распространения и поставляется с исходными кодами.

Логика работы:

Для подкраски синтаксиса необходимо предусмотреть следующие правила:
1) расскраска всего кода в промежутке от одного слова до второго - например комментарии /*...*/ или строки "...."
2) расскраска ключевых слов

Это реализовано, кроме того бывают ситуации когда промежуток должен быть расскрашен по другому с другими правилами например ASP код внутри HTML или ассемблерные вставки внутри Дельфи - это тоже реализовано тем что внутри промежутка можно использовать свои правила и промежутки. Вложенность не лимитирована.


Ждём комментариев.


Всем кому интересно, я создал форум для обсуждения компонента, правда сообщения писать только на английском, там уже идёт дисскуссия с авторами проекта SynEdit:

http://www.delphist.com/forum/
mj
Чтож, посмотел, круто...
Кстати успешно компилируется в D7...
Я давно пользуюсь компонентами SynEdit...
mj
Первый глюк.
Уж не знаю чей, но привожу пример php кота, который обрабатывается некорректно
$MENUSCRIPT = "$DOCUMENT_ROOT/pages/left.php";
$PAGEVAR["new"] = "<img src="/pic/new.gif" width=30 height=17 border=0>";
$CGI = eregi("CGI", $GATEWAY_INTERFACE);
Vit
Это не глюк компонента, а недоработка шаблона для расскраски PHP, просто надо добавить в Range, который описывает строки, список ключевых слов, и в него положить одно слово " - тогда оно будет распознаваться правильно. Открой програмку UniEdit и попробуй разобраться с логикой работы Highlighter - там правила описания формата достаточно мощные, чтобы описать 99% форматов, но конечно бывают особо замороченные случаи... В общем-то смысл компонента не в прилагаемых шаблонах, а в том что можно с лёгкостью изготовить свой собственный шаблон или исправить мой, так чтобы полностью отвечал твоим нуждам.
Vitalik
Всем привет! rolleyes.gif

Собственно хочу сказать, что за эти два года многое по поводу компонента изменилось :yes:

Во-первых, всем добро пожаловать на новый сайт компонента: http://www.unihighlighter.com

Во-вторых, с тех пор были выпущены UniHighlighter версии 1.5, 1.8 и совсем недавно 2.0 alpha (обо всём этом можно прочитать на сайте) ;)

Ну и, в-третьих, наконец-то был создан русскоязычный форум по этому компоненту: http://forum.vingrad.ru/index.php?showforum=170 (он уже функционирует почти год и собрал в себе 87 тем и 692 сообщения)

Если будут возникать вопросы/предложения - пишите сюда или (что даже лучше) на официальный форум компонента :yes:

Спасибо за внимание! :D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.