| View previous topic :: View next topic |
| Author |
Message |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Fri Oct 12, 2012 6:38 am Post subject: |
|
|
| VladSh, разумеется, что unquoting здесь ключевой. Простой quoting можно и через Insert("..\s..") сделать |
|
| Back to top |
|
 |
bolix
Joined: 12 Mar 2011 Posts: 8
|
Posted: Wed Oct 24, 2012 9:07 am Post subject: |
|
|
| Можно ли сделать подсветку парного символа другим цветом, если пара отсутствует? |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 724 Location: Kyiv, Ukraine
|
Posted: Wed Oct 24, 2012 11:21 am Post subject: |
|
|
bolix,
Nope. |
|
| Back to top |
|
 |
bolix
Joined: 12 Mar 2011 Posts: 8
|
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 724 Location: Kyiv, Ukraine
|
Posted: Sat Oct 27, 2012 6:12 pm Post subject: |
|
|
bolix,
И опять вынужден вас разочаровать. Такого функционала нет и не планируется.
Помимо поиска ближайшей скобки или кавычки подобное поведение может быть неоднозначным, например:
| Quote: | | "Фигурная скобка { внутри | кавычек" и вне кавычек }. |
| - каретка. Расстояние до символа '{' слева - 8 символов. Расстояние до символа '"' справа - 8 символов. Какую пару подсвечивать? Варианты равнозначны.
И даже в случае
| Quote: | | { квадратная скобка [ внутри| фигурной } и вне её ]. |
можно ли утверждать, что контекст квадратных скобок (которые ближе к каретке) более важен, чем фигурных? Непонятно. |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1432
|
Posted: Sat Oct 27, 2012 6:50 pm Post subject: |
|
|
DV
С этим как раз просто:
1) ближайший символ имеет приоритет
2) если таких символов два, слева и справа, то брать тот, что слева (ну, или настройку сделать, какой из них выбирать)
Я-то думал, проблема в производительности.
[Собственно, подобная проблема]|{уже была однажды решена}
 |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 724 Location: Kyiv, Ukraine
|
Posted: Sat Oct 27, 2012 8:27 pm Post subject: |
|
|
Infocatcher,
Проблема производительности будет вот здесь:
| Quote: | | "а вот вам открывающая квадратная скобка [ без | закрывающей далее по тексту" |
И здесь:
| Quote: | | [вы уверены, что у закрывающей фигурной |кавычки } есть парная открывающая?] |
И во всём бесконечном множестве подобных случаев.
То есть если сейчас XBrackets ищет парную скобку (читай: напрягает процессор) только когда каретка находится на позиции одной из скобок, то в рассмотренных выше случаях он будет искать парные скобки при любом передвижении каретки. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1892 Location: Vinnitsa, Ukraine
|
Posted: Sat Oct 27, 2012 10:31 pm Post subject: |
|
|
| Вставлю свои пять копеек. Ни в коем случае не намереваюсь отбирать у Виталия хлеб, но, раз он уже отсекает это хотелку, то что мешает другим написать скрипт который это будет делать(плагин позволяет)? Тем более что взялись просить и те кто в скриптах шарит достаточно что-бы сделать это. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1892 Location: Vinnitsa, Ukraine
|
Posted: Sat Oct 27, 2012 10:36 pm Post subject: |
|
|
| Quote: | | то в рассмотренных выше случаях он будет искать парные скобки при любом передвижении каретки. | Ну это явно не оптимально было бы. Можно ведь при поиске найти диапазон риска - место в тексте вокруг текущего положения каретки, при редактировании в которого нужно перепроверить наличие более подходящих кандидатов в подсвечиваемые скобки/кавычки. Всё что вне диапазона - ничего не делать. |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 724 Location: Kyiv, Ukraine
|
Posted: Sun Oct 28, 2012 3:32 pm Post subject: |
|
|
Собственно, у меня крутилась в голове эта идея: в качестве эксперимента предложить заинтересованным лицам набросать такой скрипт - ну а потом уж я, так и быть, перенёс бы предложенный код в XBrackets
По поводу возможных оптимизаций в диапазонах поиска - я немного обдумывал, как бы это можно было достичь. Особенно в таких ситуациях:
| Quote: | | 1 + 2*( 3 + 4*( 5 + 6*( 7 + 8 ) + 9 ) |+ 10*( 11 + 12 ) ) |
где любое перемещение каретки действительно меняет контекст текущих скобок.
Даже если мы, скажем, будем постоянно хранить и обновлять в памяти информацию о нескольких ближайших найденных скобках, это всё равно оставляет нас совершенно безоружными против операций типа Ctrl+V и Ctrl+X, которые могут изменить ситуацию самым неожиданным образом. Не говоря уже о том, что необходимо отслеживать каждый вводимый символ, потому что в случае скобки всю информацию о ближайших найденных скобках придётся пересмотреть... |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Sun Oct 28, 2012 6:41 pm Post subject: |
|
|
| DV wrote: | | то в рассмотренных выше случаях он будет искать парные скобки при любом передвижении каретки. | Не обязательно. Можно только по комбинации клавиш /имею ввиду выделение текста/. |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1892 Location: Vinnitsa, Ukraine
|
Posted: Sun Oct 28, 2012 7:25 pm Post subject: |
|
|
| Тогда можно скриптом обойтись преспокойно. |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 724 Location: Kyiv, Ukraine
|
Posted: Sat Feb 09, 2013 1:57 pm Post subject: |
|
|
XBrackets v.5.4:
* AkelPad 4.8.1+
+ 'highlight.br_max_lines' (для ограничения кол-ва строк, которые просматривает XBrackets в поисках парной скобки)
Ручное ограничение кол-ва строк (например, highlight.br_max_lines=50000) актуально для слабых компьютеров, чтобы не было заметных задержек при поиске далёкой парной скобки в очень большом файле. Это ограничение не касается парных скобок, обнаруженных плагином Coder в процессе подсветки, так как в этом случае XBrackets не ищет парную скобку самостоятельно, а лишь запрашивает её местонахождение у AkelPad. |
|
| Back to top |
|
 |
|