| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > SynUniHighlighter и SynEdit > Использование в правилах символа табуляции... |
| Автор: Vitalik 30.12.2004, 20:27 |
| Собственно возник вопрос: как бы лучше сделать возможность использования символа табуляции в определении правил подсветки? Ведь в текстовое поле его ввести нельзя. Как вариант можно придумать для него определённую последовательность символов. Например, \t или #9. Но это мне кажется не очень гибким решением Или же можно добавить что-то вроде опции: считать пробелы, введённые в правиле, произвольной последовательностью пробелов и табуляций (и может быть даже символов конца строки, если надо). Но это решение не подходит, если надо чётко задать позицию символа табуляции в определении правила... Еще одним не очень хорошим решением есть замена обыкновенного текстового поля TEdit на многострочное TMemo, в которое уже можно вводить символы табуляции. Но для этого нужно будеть лишить пользователя возможности вводить несколько строк в это поле... А также решить сопутствующие проблемы... Есть у кого-нибудь еще какие-нибудь идеи для решения этой проблемки? |
| Автор: Vit 5.1.2005, 17:23 |
| Крокозяблик использовать, что-то типа ‡ |
| Автор: Vitalik 6.1.2005, 12:25 | ||
Интересная идея! Только наверное лучше тогда такой значок: » Хм... Вот только... А если кому-нибудь надо будет именно такие значки подсвечивать или в правилах использовать? Не универсальное решение получается |
| Автор: Vit 6.1.2005, 13:33 |
| вряд-ли... что-то не видел я крокозябликов... |
| Автор: Vitalik 6.1.2005, 14:21 | ||
Под крокозябликом мы понимаем один из символов (входящих в стандартную кодировку Windows), которого нет на клавиатуре, так? А крокозяблики эти можно с успехом использовать не в каких-то схемах к языкам программирования, а просто для своих файлов (со своим форматом)... Кстати, если уж действительно использовать для табуляции какой-нить крокозяблик, то как его лучше вводить в наше текстовое поле? Какое-нить сочетание клавиш забронировать? |
| Автор: Vit 6.1.2005, 16:26 | ||||
Да, или кнопку
Да |
| Автор: Ciber SLasH 8.1.2005, 23:54 |
| Лучше вообще перейти на регулярные выражения. Тогда всё гораздо упростится и будет гораздо больше возможностей для подсветок. |
| Автор: Vitalik 8.1.2005, 23:58 | ||
Да, наверное, оно и действительно лучше... Но тогда ведь (боюсь) будет страдать скорость... Хотя RegEx можно будет сделать опциональным... |
| Автор: Ciber SLasH 9.1.2005, 00:03 |
| Я думаю скорость не на много пострадает, а может быть где-то будут и быстрее работать алгоритмы поиска RegEx'ов. Попробуй сделать две версии: 1) как сейчас; 2) полностью переписать движок с использованием только RegExp. И сравнишь скорость работы двух версий. |
| Автор: ShadOFF 13.3.2005, 06:24 |
| Как же можно сделать чтобы подсвечивалось слово перед которым 1 или 2 знака табуляции, если я использую highlighter? |
| Автор: Vit 13.3.2005, 07:07 |
| Во первых, к дополнению предыдущего автора, вот вся дисскуссия: http://forum.sources.ru/index.php?showtopic=86369 Во-вторых, предлагаю всегда добавлять TAB к списку делимитеров, просто не представляю себе ситуацию когда TAB не будет являться делимитером. |
| Автор: Vitalik 13.3.2005, 11:50 | ||||||
Весело! Действительно на форумах не получается просто так ввести 	 Как вариант, может ввести такие символы: 	; и на форуме это отобразится как 	 http://forum.sources.ru/smiles/Main/wink.gif (Извините за оффтопик)
На сколько мне известно - сейчас так и сделано. Вопрос лишь стоял об добавлении такой новой опции: "нужна ли вам табуляция в разделителях (они же делимитеры)"
ShadOFF, какую версию компонента SynUniHighlighter ты используешь (когда и откуда качал)? Вот я наваял маленький примерчик, показывающий, что с последней версией всё отлично работает (на старых версиях не проверял). |
| Автор: ShadOFF 15.3.2005, 02:26 |
| Качал отсюда: 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_' + 'the_sky@yahoo.com), Vit(nevzorov@yahoo.com), Vitalik(vetal-x@mai' + 'l.ru), 2002-2004)</CopyRight>'#13#10'</UniHighlighter>'#13#10 Надо все менять? или просто список делимитеров? |
| Автор: Vitalik 15.3.2005, 17:25 |
| ShadOFF, как вариант, скопируй новую версию SynUniSyn отсюда: http://forum.vingrad.ru/index.php?showtopic=34021 |
| Автор: ShadOFF 17.3.2005, 02:20 |
| Эта новая версия только для делфи, а мне бы для билдера... |
| Автор: Vitalik 17.3.2005, 21:36 |
| Оки, я создам bpk файл для билдера Хотя можешь и сам его создать |
| Автор: Vitalik 17.3.2005, 23:02 | ||
| Хм... Там небольшая проблемка возникла. Почему-то не получается указать bpk-пакету установки SynUniHighlighter'a на местоположение исходников SynEdit'a. Почему-то не видит он их и всё тут... Не находит ни SynEdit.inc, ни SynEditTypes, ни другие файлы SynEdit'a...
|