Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > SynUniHighlighter и SynEdit > Hex числа и идентификаторы... |
Автор: Checker 25.8.2005, 17:50 |
UniH - версия 1.8 Чета не соображу - как описать выделение 16-ричных чисел. Это можно было бы легко реализовать, если бы SET-ы имели множество начальных символов и множество последующих. К примеру мнжество начальных символов ['0'..'9'], а следующих за ними ['0'..'9','A'..'F']. Как победить? И вторая загвоздка. Есть 2 списка ключевых слов. Первый - типы, второй идентификаторы. Все как в делфи. Разделитель точка. Нужно выделить сию конструкцию целиком. Черт с ней, с точкой, хотя бы оба идентификатора. А то только первый. call TDock_Goner.SelfDestruct Если при формировании списка типов добавлять те же идентификаторы с точкой, тогда проблема решается. Но это как-то криво. call TDock_Goner.SelfDestruct Подскажите, плз. |
Автор: Quadr0 26.8.2005, 19:31 |
... |
Автор: Checker 27.8.2005, 09:46 | ||||
Примеры посмотрел. Для 16-ричных чисел выделение хорошо работает, если число начинается с определенного символа, например как в делфи '$' или как в С, начиная с '0х'. Тогда все просто. В ассемблере число начинается с цифры '0..9' и может содержать '0..9','A..F'. Например 8FDE00. Для описания таких чисел (в существующих правилах Range) потребуется 10 Правил - по одному для каждой цифры 0..9. Правильно?
Не, я не про выделение по двойному щелчку, я про подсветку синтаксиса. К примеру, моему компилятору известен список классов (тот же TDock_Goner). И известны переменные и функции, принадлежащие этому классу (например SelfDestruct). В редакторе нужно подсветить другим цветом все выражение TDock_Goner.SelfDestruct, для того, чтобы подтвердить, что ошибки в написании идентификаторов нет. Для этого формирую 2 правила 'Keywords' с этими списками. Символ '.' стоит в делимитерах. Так вот первое слово выделяется, а то что после точки - нет. ![]() Может я сильно многово хочу? ![]() |
Автор: Checker 27.8.2005, 10:27 | ||
Блин, такой номер не проходит - выделяется подстрока внутри идентификаторов. Например jump L00000B18 ![]() |
Автор: Vitalik 28.8.2005, 18:35 | ||||
Признаться, я очень давно хотел добавить такую фичу ![]() Собственно новый тип правил "SymbolSet" был придуман именно для этого... Постараюсь в ближайшем времени что-нибудь придумать ![]()
А вот это очень странно. По идее всё должно работать без проблем... Пришли ка мне, пожалуйста, свою подсветку ![]() P.S. Сегодня наконец-то приехал в Харьков, но доступа к своему компу пока нет. Надеюсь, завтра поселюсь в новую комнату и распакуюсь :-) |
Автор: Checker 31.8.2005, 09:49 | ||||
Супер! Нет, правда. Очень полезная вещь.
Отправил. |
Автор: Coriolis 16.9.2005, 18:01 |
Vitalik Да, я тоже хочу сделать подсветку цифр!!! Ой. Торможу - надо создать SymbolSet всего лишь! ![]() |