Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Дельфи компонент для подкраски синтаксиса

Автор: Vit 30.01.2003 19:55

Результат совместной работы 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 31.01.2003 5:01

Чтож, посмотел, круто...
Кстати успешно компилируется в D7...
Я давно пользуюсь компонентами SynEdit...

Автор: mj 31.01.2003 5:14

Первый глюк.
Уж не знаю чей, но привожу пример 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 31.01.2003 16:38

Это не глюк компонента, а недоработка шаблона для расскраски PHP, просто надо добавить в Range, который описывает строки, список ключевых слов, и в него положить одно слово " - тогда оно будет распознаваться правильно. Открой програмку UniEdit и попробуй разобраться с логикой работы Highlighter - там правила описания формата достаточно мощные, чтобы описать 99% форматов, но конечно бывают особо замороченные случаи... В общем-то смысл компонента не в прилагаемых шаблонах, а в том что можно с лёгкостью изготовить свой собственный шаблон или исправить мой, так чтобы полностью отвечал твоим нуждам.

Автор: Vitalik 26.10.2005 16:39

Всем привет! 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