I have added the backtick character to the user defined bracket pairs and it works ok. For the next line, however, the 2 backtick characters colored in red are not highlighted (those enclosing the second argument to /if):
If I change the enclosing characters for the `1` condition to single quotes ('1') or double quotes ("1"), the backticks enclosing "/Call" are highlighted:
removes the ambiguity, and the pair of ` ` can be highlighted.
(In the first case the extra ` symbol to the left was removed, so it's clear that the first remaining ` symbol is the opening of the pair ` `.
In the second case the / symbol was removed, and the sequence `C is most likely the opening of the pair ` `.)
Probably this looks complicated, but this is how it works.
To have better results that rely on full text parsing rather than guessing, you can add ` ` to the Quotes section of the corresponding .coder file. In this case XBrackets will highlight pair symbols provided by the Coder plugin.
Posted: Wed Mar 09, 2016 1:07 am
by nbsp
DV
Thank you very much for the detailed explanation.
Posted: Sat Jul 09, 2016 8:14 pm
by DV
XBrackets v.6.9
+ ничего не тянем из MSVCR = меньший размер файла
Дополнительно отмечу, что для достижения этого эффекта были обновлены файлы проектов и файлы .cmd для сборки под 2005, 2008 и 2013 Студией. Я пользуюсь вариантами Visual Studio Express, и для сборки под 2005 и 2008 дополнительно используется внешний SDK: Microsoft Platform SDK for Windows Server 2003 R2 или Microsoft SDK for Windows 7.
Posted: Wed Jul 20, 2016 7:32 pm
by DV
XBrackets v.7.0
+ теперь настройка "Пропускать экранированные скобки" учитывает расширение
файла (точно так же, как настройка "Пропускать скобки после //")
XBrackets v.7.1
* AkelPad 4.9.8+
XBrackets v.7.2
Ещё одно обновление поразительного плагина XBrackets!
Настоящий подарок для энтузиастов использования этого плагина!
Добавлена настройка 'highlight.hlt_xmode':
XBrackets-Rus.txt wrote:Эта настройка управляет тем, что использует XBrackets для поиска и
подсветки парных скобок. Позволяет отключить как запрос к AkelEdit
насчёт синтаксиса файла, так и внутренний алгоритм поиска парной
скобки. Предполагает использование в экспериментальных целях.
Значением настройки будет сумма следующих чисел, отвечающих за
поведение плагина:
1 - использовать внутренний алгоритм поиска парной скобки/кавычки;
2 - использовать AEM_HLGETHIGHLIGHT (подсветка, кавычки);
4 - использовать AEM_FINDFOLD (сворачиваемые блоки).
Posted: Thu Jul 21, 2016 6:38 pm
by Kley
DV, Instructor
Если задать цвет для скобок, скажем #FFFF00, то в цветовой теме Sunburst скобки видно прекрасно, а вот в Earth - не разглядеть.
Нельзя ли добавить пару переменных в Coder плагин для: "Цвет скобок", "Цвет фона"?
Или такая возможность уже есть (менять цвет скобок при смене темы)? Ни как не соображу. Подскажите пожалуйста.
Posted: Fri Jul 22, 2016 3:13 pm
by DV
Kley,
В XBrackets можно одновременно задать и цвет скобок, и цвет фона (чтобы на этом фоне цвет скобок был виден).
А вообще у плагина XBrackets свои настройки, а у плагина Coder - свои, и изменение цветовой темы плагином Coder не влияет на выбранный в XBrackets цвет скобок.
Posted: Sun Jul 24, 2016 10:09 am
by DV
Хотя предложенная выше идея вполне может быть реализована.
В XBrackets потребуется:
1. Изменить диалог настроек, добавив пункт "Брать цвет из Coder";
2. Добавить вычитку переменных из Coder по аналогии с плагином Lineboard, например;
3. Понять, когда именно следует перечитывать цвета из Coder.
В Coder потребуется:
1. Добавить переменные типа "XBrackets_FgColor" и "XBrackets_BkColor";
2. Придумать этим переменным подходящие цвета для каждой из тем подсветки.
Posted: Sat Jun 16, 2018 12:11 pm
by wertfds
Как добавить такие скобки?:
/*
текст
*/
Posted: Sun Jun 17, 2018 8:13 pm
by DV
wertfds,
в текущей реализации єто невозможно, поддерживается только один символ на открывающую скобку/кавычку.
Posted: Tue Jun 26, 2018 6:25 pm
by DV
XBrackets v7.3
Что нового:
Значение настройки autocomplete.sel_autobr теперь можно установить в 3 или 4, получая "закавычивание" или "заскобывание" выделенного текста а-ля Sublime Text, когда текст в кавычках остаётся выделенным, а сами кавычки - нет.
Теперь autocomplete.sel_autobr=4 - мой любимый режим, в котором "закавычивание" и "раскавычивание" работают симметрично: первая печать левой скобки/кавычки окружает выделенный текст соответствующей парой скобок/кавычек, и повторная печать левой скобки/кавычки убирает обрамляющие скобки/кавычки.
Posted: Thu Sep 20, 2018 5:29 pm
by DV
XBrackets v7.4
+ новые функции: GoToNearestBracket, SelToNearestBrackets
+ новые настройки: nearestbr.goto_flags, nearestbr.selto_flags
+ теперь повторный вызов SelToMatchingBracket и SelToNearestBrackets перемещает каретку из конца выделения в начало выделения и наоборот
Это большое обновление. Объём изменений можно оценить по функции GetNearestBracketsRange и вызываемому из неё семейству функций с префиксом "NearestBr_", каждая из которых была написана с нуля. Разработка велась в несколько итераций, и версия 7.4 - это примерно восьмая итерация.
Изначально была одна небольшая функция, которая мало что умела помимо вызовов AEM_FINDFOLD и AEM_HLGETHIGHLIGHT. Затем стал совершенствоваться собственный алгоритм поиска ближайших скобок. В него добавилось наработки "оценочного" сравнения скобок, применяемого в GetHighlightIndexes. Функция поиска ближайших скобок стала слишком большой, и начала дробиться для лучшей читаемости. Затем потребовалось внести изменения в сам алгоритм поиска, в зависимости от ситуации, и дробление изначальной функции позволило дерижировать её отдельными составляющими как угодно. Несколько раз уточнялось поведение в "краевых условиях" - непосредственно перед или сразу после кавычки. Наконец, была добавлена поддержка значений XML-тэгов вида
На всё про всё ушло более половины вечеров с начала августа до почти середины сентября.
Это в некоторой степени должно объяснить, почему я не брался за это раньше, и почему не берусь за некоторые другие вещи.
На резонный вопрос о том, не слишком ли я всё усложняю и действительно ли были необходимы все эти описанные выше вещи, есть такой же резонный ответ: да, они были необходимы. Если бы я остановился, скажем, на третьей или четвёртой итерации, тут же посыпались бы отчёты об ошибках. Если бы остановился на пятой или шестой, чуть позже появились бы отзывы о неправильном поведении в "краевых" условиях и о том, что с XML-тэгами всё совсем плохо. (На самом деле, всё и сейчас не идеально - но, по крайней мере, достигнут разумный баланс между тем, как хотелось бы сделать и как удаётся сделать.)
Хотя, конечно, отдельные знатоки гораздо лучше меня понимают, что и как нужно делать, а мои скромные оценки задачи - не более чем понты: http://akelpad.sourceforge.net/forum/vi ... &start=567
Posted: Mon Oct 08, 2018 5:40 pm
by DV
XBrackets v.7.5
* небольшие уточнения в GoToNearestBracket/SelToNearestBrackets
* 12 лет XBrackets!
Posted: Tue Jan 08, 2019 10:52 am
by VladSh
DV wrote:"закавычивание" или "заскобывание"
Правильно "заскобычивание"
Posted: Sun Oct 13, 2019 6:10 am
by AZJIO
Я тут делал делал умный захват и в итоге нашёл эту возможность в XBrackets, хотя отчасти. Тремя постами выше в общем ТЗ, то есть хоткеем расширять захват от выделенного.
Удобно было бы для HTML сделать и захват фолдинга, расширяя, а то для многих языков это не работает.
Примеры
Call("XBrackets::SelToMatchingBracket") - выделяет содержимое парных скобок ([{""}]), если курсор находится вплотную к одному из ([{""}])
Call("XBrackets::SelToNearestBrackets") - выделяет содержимое парных скобок ([{""}]), если курсор находится в любом месте между скобками
Call("XBrackets::GoToMatchingBracket") - делает прыжок к парной скобке ([{""}]), если курсор находится вплотную к одному из ([{""}])
Call("XBrackets::GoToNearestBracket") - делает прыжок к ближайшей парной скобке ([{""}]), если курсор находится в любом месте между скобками