Page 20 of 27
Posted: Fri Oct 12, 2012 6:38 am
by Fr0sT
VladSh, разумеется, что unquoting здесь ключевой. Простой quoting можно и через Insert("..\s..") сделать
Posted: Wed Oct 24, 2012 9:07 am
by bolix
Можно ли сделать подсветку парного символа другим цветом, если пара отсутствует?
Posted: Wed Oct 24, 2012 11:21 am
by DV
bolix,
Nope.
Posted: Sat Oct 27, 2012 1:44 pm
by bolix
DV
Очень давно был пост
viewtopic.php?p=640#p640
И один из вариантов был:
Или подсвечивать скобки при любой позиции курсора между этими скобками? То есть:
[пример| текста]
Сейчас такое появилось?
Posted: Sat Oct 27, 2012 6:12 pm
by DV
bolix,
И опять вынужден вас разочаровать. Такого функционала нет и не планируется.
Помимо поиска ближайшей скобки или кавычки подобное поведение может быть неоднозначным, например:
"Фигурная скобка { внутри | кавычек" и вне кавычек }.
| - каретка. Расстояние до символа '{' слева - 8 символов. Расстояние до символа '"' справа - 8 символов. Какую пару подсвечивать? Варианты равнозначны.
И даже в случае
{ квадратная скобка [ внутри| фигурной } и вне её ].
можно ли утверждать, что контекст квадратных скобок (которые ближе к каретке) более важен, чем фигурных? Непонятно.
Posted: Sat Oct 27, 2012 6:50 pm
by Infocatcher
DV
С этим как раз просто:
1) ближайший символ имеет приоритет
2) если таких символов два, слева и справа, то брать тот, что слева (ну, или настройку сделать, какой из них выбирать)
Я-то думал, проблема в производительности.
[Собственно, подобная проблема
]|{уже была однажды решена}

Posted: Sat Oct 27, 2012 8:27 pm
by DV
Infocatcher,
Проблема производительности будет вот здесь:
"а вот вам открывающая квадратная скобка [ без | закрывающей далее по тексту"
И здесь:
[вы уверены, что у закрывающей фигурной |кавычки } есть парная открывающая?]
И во всём бесконечном множестве подобных случаев.
То есть если сейчас XBrackets ищет парную скобку (читай: напрягает процессор) только когда каретка находится на позиции одной из скобок, то в рассмотренных выше случаях он будет искать парные скобки при любом передвижении каретки.
Posted: Sat Oct 27, 2012 10:31 pm
by FeyFre
Вставлю свои пять копеек. Ни в коем случае не намереваюсь отбирать у Виталия хлеб, но, раз он уже отсекает это хотелку, то что мешает другим написать скрипт который это будет делать(плагин позволяет)? Тем более что взялись просить и те кто в скриптах шарит достаточно что-бы сделать это.
Posted: Sat Oct 27, 2012 10:36 pm
by FeyFre
то в рассмотренных выше случаях он будет искать парные скобки при любом передвижении каретки.
Ну это явно не оптимально было бы. Можно ведь при поиске найти диапазон риска - место в тексте вокруг текущего положения каретки, при редактировании в которого нужно перепроверить наличие более подходящих кандидатов в подсвечиваемые скобки/кавычки. Всё что вне диапазона - ничего не делать.
Posted: Sun Oct 28, 2012 3:32 pm
by DV
Собственно, у меня крутилась в голове эта идея: в качестве эксперимента предложить заинтересованным лицам набросать такой скрипт - ну а потом уж я, так и быть, перенёс бы предложенный код в XBrackets

По поводу возможных оптимизаций в диапазонах поиска - я немного обдумывал, как бы это можно было достичь. Особенно в таких ситуациях:
1 + 2*( 3 + 4*( 5 + 6*( 7 + 8 ) + 9 ) |+ 10*( 11 + 12 ) )
где любое перемещение каретки действительно меняет контекст текущих скобок.
Даже если мы, скажем, будем постоянно хранить и обновлять в памяти информацию о нескольких ближайших найденных скобках, это всё равно оставляет нас совершенно безоружными против операций типа Ctrl+V и Ctrl+X, которые могут изменить ситуацию самым неожиданным образом. Не говоря уже о том, что необходимо отслеживать каждый вводимый символ, потому что в случае скобки всю информацию о ближайших найденных скобках придётся пересмотреть...
Posted: Sun Oct 28, 2012 6:41 pm
by VladSh
DV wrote:то в рассмотренных выше случаях он будет искать парные скобки при любом передвижении каретки.
Не обязательно. Можно только по комбинации клавиш /имею ввиду выделение текста/.
Posted: Sun Oct 28, 2012 7:25 pm
by FeyFre
Тогда можно скриптом обойтись преспокойно.
Posted: Sat Feb 09, 2013 1:57 pm
by DV
XBrackets v.5.4:
* AkelPad 4.8.1+
+ 'highlight.br_max_lines' (для ограничения кол-ва строк, которые просматривает XBrackets в поисках парной скобки)
Ручное ограничение кол-ва строк (например, highlight.br_max_lines=50000) актуально для слабых компьютеров, чтобы не было заметных задержек при поиске далёкой парной скобки в очень большом файле. Это ограничение не касается парных скобок, обнаруженных плагином Coder в процессе подсветки, так как в этом случае XBrackets не ищет парную скобку самостоятельно, а лишь запрашивает её местонахождение у AkelPad.
Posted: Sun Aug 04, 2013 10:02 pm
by Drugmix
DV, здравствуйте.
1. Вопрос: как решить проблему неверной подсветки закрывающей скобки (в случае нечётного количества скобок в RegExp шаблоне)
Code: Select all
RegExReplace(value, "i)^.*\\|\.ahk[^\w]*")
Группой из круглых скобок здесь является первая и последняя, а вместо этого подсвечиваются левая и средняя.
i) - эта скобка в шаблонах регулярных выражений используется как непарная для того, чтобы слева от неё можно было перечислять
настройки для шаблона.
Я так понимаю, что для прописывания подобных правил - лучше было бы срастить Xbrackets и Coder плагины в один плагин, чтобы подобные правила можно было настраивать.
2. Баг репорт: обратите внимание на последние 2 скобки на картинке:

они криво прорисованы из-за того, что функция 'Highlight brackets' в Вашем плагине вместо перекрашивания существующих символов - на самом деле рисует новые поверх старых, но делает это без учёта курсива/жирности текста (а также, возможно, и в случае иного декорирования текста), поэтому наложение не всегда точно совпадает с текстом под наложением.
3. Фиче реквест: расширьте, пожалуйста, эти настройки:

Всё дело в том, что у каждого языка свой синтаксис и в разных языках скобки (да и другие символы) могут escape'ироваться по-разному.
По этой же причине - следует переделать 'Skip brackets after // in these files:' в нечто вроде "Skip brackets in commentaries" и полагаться на .coder файлы, т.к. именно в них, насколько я понимаю, прописываются условия и триггер-символы для перевода кода в комментарии.
DV
Что Вы лично думаете об идее слияния XBrackets и Coder плагинов? Считаете ли это возможным? Считаете ли это нужным? Есть ли у Вас желание это сделать? Если нет - то почему Вы против этого?
Posted: Mon Aug 05, 2013 6:30 am
by Fr0sT
Да слияние давно уже просится, но пока ситуация прежняя

А насчет комментариев - у Coder нету выделенного понятия "Комментарий", есть только "Блок свертки" и "Стиль подсветки COMM". А так это и для toggleComment пригодилось бы.