Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > SynUniHighlighter и SynEdit > Свежие баги и пожелания |
Автор: CyberManiac 24.10.2005, 19:16 |
С ходу нашел в альфе 2.0 следующее: 1. С трудом собирается с SynEdit 2.02b с офсайта - пришлось руками вырезать IFDEF'нутые блоки, отвечающие за схлопывание блоков. Если где-то в недрах есть соответствующий DEFINE, то есть смысл вынести его в свойства проекта - его оттуда удалить будет проще. Модифицированный компонент ставить не тянет, т.к. он не поддерживается разработчиками SynEdit со всеми вытекающими, а схлопывание блоков мне ни к чему. Если есть более прямой способ сборки, хорошо бы положить в комплект Readme.txt, как это сделать. И заодно туда же прописать, что для сборки нужны инет-компоненты. 2. Тулза для редактирования описаний синтаксиса злобно глючит: вываливает 2-3 access violation по адресу 00000000 при запуске и еще по столько же при каждом переключении на другую задачу и обратно по Alt-Tab. Скорее всего, какая-то муть затесалась в OnShow. 3. Та же тулза при попытке удалить Range сообщает об исключении, при попытке закрыть окно с исключением выдает следующее такое же и так до тех пор, пока не будет убит процесс. Последние два глюка совершенно не зависят от того, каким способом собирался редактор подсветок: вручную или запущен заранее скомпилированный из архива. 4. А нужен ли вообще VirtualTreeView? Возни с его установкой много, а пользы в сравнении со стандартным - мало. 5. Однако, примеров надо. Без них половину возможностей компонента можно вооще не увидеть и не понять. И желательно примеры в виде практических шаблонов: как подсвечивать обычные числа, как - шестнадцатиричные, как - строки ну и т.д. |
Автор: Vitalik 25.10.2005, 00:34 | ||||||||||||||||||
Ответ http://www.unihighlighter.com/index.php?showpage=install&lang=ru:
Подробнее, пожалуйста ![]()
Ну это не совсем так ![]() Разработчик CodeFolding'а (свёртывания кода) - один из разработчиков SynEdit'а. А сам CodeFolding появится в основных версиях SynEdit'а, когда станет безглючно работать ![]()
Согласен. Тут осечка вышла... Но особенности инсталляции я описал на сайте компонента: http://www.unihighlighter.com/index.php?showpage=install&lang=ru В следующей версии обязательно включим это readme.txt ![]()
Только VirtualTreeView для дизайнера ![]()
Гм... Будем разбираться... На каких подсветках проявлялся такой глюк?..
Тут я с тобой согласен ![]() У нас с Quadr0 возникло небольшое разногласие по поводу использования этого компонента в дизайнере... С одной стороны, компонент очень мощный, обеспечивает дополнительные возможности, с ним легче и удобнее работать. С другой стороны, он всё-таки нестандартный, большинство его возможностей не используется и размер exe зря увеличивается. И действительно самым большим минусов является то, что с ним приходится дополнительно возиться... Как вариант мирного решения данного разногласия - фреймовая структура дизайнера с возможностью быстрой замены небольшой составляющей дизайнера - фрейма (например, панели с TreeView на VirtualTreeView) с сохранением всей логической структуры и реализации дизайнера ![]()
Основные возможности можно почитать на сайте компонента, здесь: http://www.unihighlighter.com/index.php?showpage=synrools&lang=ru Пример подсветки включающей все описанные возможности можно найти там же или скачать напрямую: http://www.unihighlighter.com/files/highlighters/Readme.hgl И описание, и подсветка приведены для версии 1.8, но с успехом могут использоваться и для версии 2.0a. В последней разве что добавлены мультитеги. CyberManiac, большое спасибо за первый отзыв о нашей альфе! ![]() |
Автор: Paul S. 25.10.2005, 18:08 | ||
Здравствуйте. Заметил интересный глюк с обычным TSynEdit и UniHighlighter 2.0a. Имеем на форме - синэдит, хайлайтер, SynEdit.Highlighter = UniHighlighter. WordWrap = True. Жмем F9, вставляем в синэдит по ctrl+v текст (желательно войну мир или иже с ними - где куча переносов строк), или загружаем - видим глючной вордврап (переносы посреди слов и тд). Копаемся в исходниках синэдита, видим такой интересный код:
В проекте делаем все тоже самое - ресайзим форму (ака синэдит) - ворд врап в норме. Убираем у синэдита хайлайтер - запускаем, опять же проделываем все тоже самое (вставка, загрузка текста) - все ок. Вывод - глючит хайлайтер. P.S: Извиняюсь что не пошел далее, времени нету отлавливать. P.S: Сори, мой идиотский стиль транслитерации. |
Автор: Vitalik 25.10.2005, 23:20 |
Paul S., в чём именно проявляются глюки WordWrap? Какая версия SynEdit используется, какие подсветки загружаются в UniHighlighter? У меня всё работает как часы... Если не сложно выложи где-нибудь или прикрепи здесь скриншот с глюком http://forum.sources.ru/smiles/Main/wink.gif Спасибо! ![]() |
Автор: Paul S. 26.10.2005, 00:55 |
Мое почтение ![]() Файлы доступны до 2 ноября. При загрузке текста, окно не трогаем - http://webfile.ru/594813. После ресайза окна - http://webfile.ru/594815. Вроде глюк налицо, особенно бросается перенос слова "кораблях" ![]() |
Автор: CyberManiac 26.10.2005, 08:45 | ||||
Project|Options...|Directories/Conditionals, в поле "Conditional defines" можно вписать все нужные DEFINE, причем они будут видимы глобально в рамках всего проекта - так ими удобней манипулировать, чем в исходных текстах. Эта же вкладка открывается кнопкой Options после открытия .dpk-файлов при сборке компонента на основе dpk.
Он не на подсветках проявляется, он проявляется в дизайнере сразу же при запуске, когда ни одной подсветки даже не загружено. То же самое и с удалением Range'й - какую бы подсветку я ни создал, при удалении из нее хоть одного Range вываливается исключение. |
Автор: Vitalik 26.10.2005, 17:16 | ||||
Прикольная вещь! Не знал ![]() Но, наверное, в данном случае немного не подходит... Ведь добавив таким образом DEFINE в dpk-пакет мы заданим его только при установке. Т.о. если нужно будет поменять значение этой опции, то нужно будет рекомпилить пакет... Так же небольшим неудобством является то, что оно пихает эту директиву в dof-файл... Ну и, наконец, на самом деле эта опция должна юзаться и во всех демках, чтобы демки могли компилиться на разных вариантах сборки SynEdit+SynUni. В этом смысле использование одного файла с предопределёнными Define'ами получается очень удобным ;)
И действительно... Когда же этот баг успел появиться... ![]() |
Автор: CyberManiac 26.10.2005, 19:00 |
История с Access violation получила продолжение: попробовал запустить дизайнер на домашней машине с WinXP - все работало корректно. Более того, с удивлением обнаружил, что при запуске по умолчанию создается пустая подсвется с двумя элементами в TreeView (на 2000 при запуске TreeView был абсолютно пуст). Не поленился перегрузиться в Win98 - оба глюка вернулись, в TreeView - пустота, кроме того, изменился внешний вид дизайнера: исчезла градиентная закраска (в Win2000 ее тоже не было). В общем, советую протестировать дизайнер в Win2000 или 98 - все, о чем я пишу, сразу и вылезет. |
Автор: Quadr0 30.10.2005, 12:39 |
... |
Автор: Paul S. 30.10.2005, 13:55 |
А как же я? ![]() |
Автор: Quadr0 30.10.2005, 16:45 |
... |
Автор: Paul S. 30.10.2005, 23:31 | ||
Здравствуйте ![]() Уже думал об этом, что по идее должны все подсветки глючить. Ок. Взял подсветку html, присвоил - глюка не обнаружено. Придется копнуть еще глубже, по мере возможности постараюсь сообщать о результатах раскопок. С уважением ![]() |
Автор: markowww 12.11.2005, 14:21 |
Я не обнаружил во второй альфе возможность подсветки ключевых слов с учетом регистра. Помнится в 1.8 такая возможность была. |
Автор: Vitalik 14.11.2005, 15:38 |
markowww, на сколько мне известно, эта возможность осталась. "Case sensitive" у правила-диапазона (Range) задаёт режим учёта регистра для всех подправил. Возможно было бы интересно сделать возможность задания "Case sensitive" для каждого списка ключевых слов в отдельности?.. ![]() |
Автор: markowww 15.11.2005, 14:19 | ||||
Хм. Мне нужно чтобы во всем тексте слово, к примеру, BEGIN подсвечивалось, а begin - нет. С возможностью Case Sensitive для отдельного списка это легко ;) А вот с Range как такое сделать, что-то я не понимаю.
Я конечно не совсем уверен (а проверять слишком долго ![]() И извиняюсь, что в одном посте: при использовании Сopy/Paste на узлах дерева в дизайнере возникает Access Violation. |
Автор: Vitalik 15.11.2005, 22:32 | ||||
Просто у корневого "диапазона" (Root) есть такое же свойство ![]() В новой версии это называется 'Syntax Coloring'. Устанавливаешь у него 'Case sensitive' и всё будет как надо ![]()
Подробнее плиз ![]() Какая подсветка, какие узлы копируешь, куда вставляешь?.. ![]() |
Автор: markowww 16.11.2005, 12:10 | ||
Мда. Лопух. Не заметил ;) Но все таки, я думаю, логичнее будет сделать это свойство у каждого правила с наледованием от родителя по умолчанию. Мне просто в голову не пришло посмотреть в Syntax Coloring. ;) Теперь по поводу Copy/Paste: 1. Ошибка при копировании узла дерева, в поддерево, где уже существует узел с таким именем. Вываливается сразу по команде Paste. 2. Если поддерево (Range) не содержало узал с таким же именем или было пусто, то копирование завершается, но при попытке раскрыть (Expand) это поддерево, тоже вываливается Access Violation. |
Автор: Paul S. 19.11.2005, 19:23 | ||
Глюк вроде прикрыл, пришлось поправить SynEdit:
|