![]() |
|
Модераторы: Vitalik |
![]()
|
|
| romis |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 10.9.2006 Репутация: нет Всего: нет |
Народ, подскжаите в чем может скрываться пролема
Использую SynEdit 2.0.3 + UniHighlighter 2.0 Beta4 Создал простенькую подсветку для ASP.NET В результате получаю повторное отображение в редакторе открывающихся и закрывающихся тэгов (в случае если за соответствующим тэгом следует перенос строки) Скриншот прилагаю Кстати та же проблема при использовании связки SynEdit 2.0.3 + UniHighlighter 1.1 Та же проблема при использовании поставляемых вместе с UniHighlighter подсветок (HTML, XHTML) В стандартной подсветке HTML от SynEdit такой траблы нет То есть дело видимо не в моей подсветке и не в SynEdit Присоединённый файл ( Кол-во скачиваний: 21 )
SynBug.jpg 59,96 Kb |
|||
|
||||
| Seldon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 23.12.2005 Где: Minsk Репутация: 2 Всего: 2 |
да, совсем забыл, такая проблема была и у меня.
я решил так: TCustomSynEdit.PaintTextLines->PaintLines закомментировать следующие строки:
как я понимаю, трабла из-за того, что TokenPos не соответсвует реальным данным. вечером копну глубже Это сообщение отредактировал(а) Seldon - 10.9.2006, 23:42 --------------------
MiBEditor v2.Alpha 10 - Программерский редактор |
|||
|
||||
| Seldon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 23.12.2005 Где: Minsk Репутация: 2 Всего: 2 |
нашёл такое вот решение, не требующее правки SynEdit.pas:
SynUniHighlighter.pas->TSynUniSyn.Next
моя строка - {Seldon /} суть проблемы, как я её понимаю: SynEdit ожидает, что TokenPos после парсинга строки хайлайтером будет равен последнему пропарсенному символу. если он меньше - значит хайлайтер не смог пропарсить всю строку (хз как такое может быть) и те строки, которые я в предыдущем посте предлагал закомментировать, осуществляют отрисовку этого не пропарсенного текста в конце строки. в нашем случае текст пропарсиваецца (и соответсвенно отрисовываецца) весь, но TokenPos меньше длины строки и SynEdit отрисовывает непропарсенный (как он считает) текст, который на самом деле был пропарсен и нарисован. моё решение - костыль, имхо надо подправить сам парсинг, чтобы в конце TokenPos соответсвовал последнему пропарсенному символу. я пока не вникал в работу парсинга и сделать это не могу, поэтому будем ждать решения со стороны разработчиков --------------------
MiBEditor v2.Alpha 10 - Программерский редактор |
|||
|
||||
| romis |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 10.9.2006 Репутация: нет Всего: нет |
2 Seldon
спасибо, я уже SynEdit.pas поправил Видимо предпочтительнее править исходники самого UniHighlighter-а А еще лучше если разработчики в следующей версии компонента исправят эту багу |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |