![]() |
|
Модераторы: Vitalik |
![]()
|
|
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Собственно возник вопрос: как бы лучше сделать возможность использования символа табуляции в определении правил подсветки?
Ведь в текстовое поле его ввести нельзя. Как вариант можно придумать для него определённую последовательность символов. Например, \t или #9. Но это мне кажется не очень гибким решением Или же можно добавить что-то вроде опции: считать пробелы, введённые в правиле, произвольной последовательностью пробелов и табуляций (и может быть даже символов конца строки, если надо). Но это решение не подходит, если надо чётко задать позицию символа табуляции в определении правила... Еще одним не очень хорошим решением есть замена обыкновенного текстового поля TEdit на многострочное TMemo, в которое уже можно вводить символы табуляции. Но для этого нужно будеть лишить пользователя возможности вводить несколько строк в это поле... А также решить сопутствующие проблемы... Есть у кого-нибудь еще какие-нибудь идеи для решения этой проблемки? |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Крокозяблик использовать, что-то типа ‡
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Интересная идея! Только наверное лучше тогда такой значок: » Хм... Вот только... А если кому-нибудь надо будет именно такие значки подсвечивать или в правилах использовать? Не универсальное решение получается |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
вряд-ли... что-то не видел я крокозябликов...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Под крокозябликом мы понимаем один из символов (входящих в стандартную кодировку Windows), которого нет на клавиатуре, так? А крокозяблики эти можно с успехом использовать не в каких-то схемах к языкам программирования, а просто для своих файлов (со своим форматом)... Кстати, если уж действительно использовать для табуляции какой-нить крокозяблик, то как его лучше вводить в наше текстовое поле? Какое-нить сочетание клавиш забронировать? |
|||
|
||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Да, или кнопку
Да -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: нет Всего: 67 |
Лучше вообще перейти на регулярные выражения. Тогда всё гораздо упростится и будет гораздо больше возможностей для подсветок.
|
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Да, наверное, оно и действительно лучше... Но тогда ведь (боюсь) будет страдать скорость... Хотя RegEx можно будет сделать опциональным... |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: нет Всего: 67 |
Я думаю скорость не на много пострадает, а может быть где-то будут и быстрее работать алгоритмы поиска RegEx'ов.
Попробуй сделать две версии: 1) как сейчас; 2) полностью переписать движок с использованием только RegExp. И сравнишь скорость работы двух версий. |
|||
|
||||
| ShadOFF |
|
|||
|
Unregistered |
Как же можно сделать чтобы подсвечивалось слово перед которым 1 или 2 знака табуляции, если я использую highlighter?
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Во первых, к дополнению предыдущего автора, вот вся дисскуссия: http://forum.sources.ru/index.php?showtopic=86369
Во-вторых, предлагаю всегда добавлять TAB к списку делимитеров, просто не представляю себе ситуацию когда TAB не будет являться делимитером. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vitalik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
Весело! Действительно на форумах не получается просто так ввести 	 Как вариант, может ввести такие символы: 	; и на форуме это отобразится как 	 (Извините за оффтопик)
На сколько мне известно - сейчас так и сделано. Вопрос лишь стоял об добавлении такой новой опции: "нужна ли вам табуляция в разделителях (они же делимитеры)"
ShadOFF, какую версию компонента SynUniHighlighter ты используешь (когда и откуда качал)? Вот я наваял маленький примерчик, показывающий, что с последней версией всё отлично работает (на старых версиях не проверял). Присоединённый файл ( Кол-во скачиваний: 14 )
TestSynUniSyn.zip |
||||||
|
|||||||
| ShadOFF |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
Качал отсюда:
http://chicago.lastplanet.com/SynEdit.zip Если не сложно, можно этот примерчик на билдер перевести, а то у меня тут возникает проблема в переводе (Unit1.dfm): '<UniHighlighter version="1.8.1">'#13#10' <Info>'#13#10' <General Name=""' + ' Extensions=""/>'#13#10' <Author Name="" Email="" Web="" Copyright=' + '"" Company="" Remark=""/>'#13#10' <Version Version="0" Revision="0"' + ' Date="0"/>'#13#10' <History>'#13#10' </History>'#13#10' <Sample>'#13#10' </' + 'Sample>'#13#10' </Info>'#13#10' <Scheme File="" Name=""/>'#13#10' <Range Name="' + 'Root" Attributes="536870911,-16777211;False:False." Style=""'#13#10' ' + ' Delimiters="!"#$%&'#39'()*+,-./:;<=>?@[\]^`{|}' + '~">'#13#10' <Rule/>'#13#10' <Keywords Name="Hello" Attributes="5368709' + '11,16776960;True:False." Style="">'#13#10' <word value="Hello"/>'#13 + #10' </Keywords>'#13#10' <Keywords Name="world" Attributes="5368709' + '11,65535;True:False." Style="">'#13#10' <word value="world"/>'#13#10' ' + ' </Keywords>'#13#10' <Range Name="Remark '16777211;False:True." Style=""'#13#10' Delimiters="!"#$' + '%&'#39'()*+,-./:;<=>?@[\]^`{|}~">'#13#10' <Rule OpenSymbol=' + '"--"/>'#13#10' </Range>'#13#10' </Range>'#13#10' <CopyRight>Rule file for Uni' + 'Highlighter Delphi component (Copyright© Fantasist(walking_in_' + '[email protected]), Vit([email protected]), Vitalik(vetal-x@mai' + 'l.ru), 2002-2004)</CopyRight>'#13#10'</UniHighlighter>'#13#10 Надо все менять? или просто список делимитеров? |
|||
|
||||
| Vitalik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Координатор проекта Сообщений: 653 Регистрация: 8.11.2004 Где: Ukraine, Kharkov Репутация: 9 Всего: 12 |
ShadOFF, как вариант, скопируй новую версию SynUniSyn отсюда: http://forum.vingrad.ru/index.php?showtopic=34021
|
|||
|
||||
| ShadOFF |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 14.3.2005 Репутация: нет Всего: нет |
Эта новая версия только для делфи, а мне бы для билдера...
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |