<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Ну во-первых - спасибо за линк на TSynUniSyn<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Хм... Я вроде ссылочку тебе не давал... Может ты меня с кем-то перепутал?
Я не являюсь автором этого
компонента. Я только взялся за его доработку!
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Давай так, я пока ваяю из того, что есть. Думаю особого труда подставить (заменить) класс потом труда не составит.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Да, ты прав. Если ты будешь использовать для изменения схем класс UniDesigher, то в твоем коде скорее всего ничего менять не придется (разве что класс обновить).
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Да и опыта в написании листер-плагинов у меня уже хватает.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Это точно!
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Кстати, а чего ты там меняешь?<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Расскажу всё по порядку. Как только я увидел этот компонент, то очень обрадовался, так как думал, что мои поиски закончились. Он действительно очень универсальный! И идея, и реализация там на очень высоком уровне. Но немного (читай:
много) поработав с ним и попереписывавшись с авторами, я понял, что он не до конца универсален. И договрился с авторами об моём участии в доработке этого класса. (Ниже я потом подробно перечислю моменты, которые нельзя реализовать с помощью существующей версии). Итак, я решил попробовать довести его до настоящей универсальности. То есть, сделать так, чтобы с помощью этого класса можно было сделать почти любую подсветку (всё до мелких деталей. Например, точную копию C++Builder'a или Delphi). Другой вопрос, получится ли у меня это. Также на мой взгляд обновлению подлежит и сам Desigher (улучшить интерфейс, добавить новые возможности, перевод на русский... очень много всего!). Если хочешь, могу об этом по подробнее написать? Ну и на последок, хотелось бы чтобы можно было для определённой подсветки делать несолько цветовых схем (например, как в Delphi и Builder'e: "Defaults", "Classic", "Twilight", "Ocean", "Visual Studio"). Да, чуть не забыл, еще там есть ряд багов, глюков, которые я могу перечислить ниже. Если ты или кто-нибудь другой обнаружит что-нибудь неправильное в UniHighlighter'e, то можете писать мне в этом форуме. Я попробую исправить.
Итак, несколько багов:1). Case Sensitive не правильно обрабатывает Keywords во вложенных Range'ах. Можете проверить на двух примерах:
[ ] Case Sensitive (root)
[X] Cse Sensitive (range)
и
[X] Case Sensitive (root)
[ ] Case Sensitive (range)
(Этот баг я вроде бы исправил)2). Когда делаешь начертание Italic и Underline, текст не подчеркивается, а только делается наклонным
Этот баг я пока исправить не могу3). Еще один глюк можно наблюдать в схеме "Delphi". Там попробуйте посмотреть как подсветит UniHighlighter такой участок кода:
const MySet: SymbolsSet = ['a<span style='color:red'>
','</span>b<span style='color:red'>
','</span>c<span style='color:red'>
','</span>d<span style='color:red'>
','</span>e<span style='color:red'>
','</span>f<span style='color:red'>
'];</span>
Я работаю над исправлением этого бага4). Также есть один глюк, который проявляется если:
Создать Range с не белым фоновым цветом. Этот Range не закрывается на
delimiter'e или
end of line. Открыть этот Range в редакторе и не закрывать. Затем полистать курсором вверх и вниз. Нельзя не заметить слева вертикальную полоску шириной 1 пиксель. Она в разных местах то подкрашивается то нет.
Пробую понять в чем проблема...Итак, некоторые моменты, которые нельзя реализовать с помощью текущей версии:1). Нельзя правильно сделать mulitiline directive в Cи:<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><span style='color:green'>#define FUNCT1(n) for(int i = 0; i < n; i++)
\S += i; P *= i;</span>
int main() {
...<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Уже добавил такую возможность2). Нельзя подсвечивать такой текст (подсвечивать всю строку до символа $):<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><span style='color:blue'>Это просто любой текст... $</span> а это уже другой текст...<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
3). Подсветка десятичных чисел:<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
double var = <span style='color:purple'>123.456</span>;
int num = IntToStr(<span style='color:purple'>.789</span> + sqrt(
<span style='color:purple'>4.567f</span>));<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Почти доработал4). Возможность открывать Range только если он начинается с начала строки! <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><span style='color:green'>#define STR "this is directive"</span>
Some text <span style='color:red'>#</span>this is not directive!<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
5). Правильная подсветка таких шестнадцатиричных чисел в Assembler'e (надо обратить внимание на то, что до буквы h, могут использоваться только символы: 0123456789ABCDEF, а не все подряд) <!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><span style='color:purple'>B7A123h</span> - подсвечивать
B7A
S123h - не подсвечивать!<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Если интересно, могу описать и другие желаемые нововведения, которые я хотел бы сделать! Пиши, жду!
Напоследок, я хочу сказать, что был бы очень рад с тобой тесно сотрудничать в разработке этого плагина. Потому как хочется, чтобы этот плагин для любимого файлового менеджера был
the best!
<!--coloro:black--><span style="color:black"><!--/coloro-->Добро пожаловать на сайт по SynUniHighlighter: <a href="http://www.unihighlighter.com" target="_blank"><!--coloro:blue--><span style="color:blue"><!--/coloro-->www.unihighlighter.com<!--colorc--></span><!--/colorc--></a>
Совсем недавно открылся новый проект "<a href="http://portalsnov.ru" target="_blank"><!--coloro:blue--><span style="color:blue"><!--/coloro-->Портал Снов<!--colorc--></span><!--/colorc--></a>"!
Огромная просьба поддержать его хотя бы своим присутствием. <a href="http://portalsnov.ru" target="_blank"><!--coloro:blue--><span style="color:blue"><!--/coloro-->portalsnov.ru<!--colorc--></span><!--/colorc--></a><!--colorc--></span><!--/colorc-->