Кстати, на тему выделения фоном, мне очень нравится, как это в шарпдевелопе оформили: фон выделения перебивает фон подсвеченной скобки, но не перебивает ее контуры, т.е. прекрасно видно и то, и другое
Posted: Tue Sep 11, 2012 8:06 pm
by DV
Обычно при подсветке фона и наличии выделения XBrackets смешивает заданный цвет фона и цвет выделения, чтобы результирующий цвет сочетал оба цвета в равной пропорции. Но в последних версиях это отвалилось.
Пока похоже на то, что для исправления обеих ошибок потребуется как новая версия XBrackets, так и новая версия AkelPad. (Что до цвета, планирую в новой версии смешивать заданный цвет фона и цвет выделения в пропорциях 1/3 и 2/3 соответственно, чтобы цвет выделения преобладал.)
Posted: Tue Sep 11, 2012 8:25 pm
by F. Phoenix
А опцию рамки такой тяжело приделать? Был бы ей очень рад в любом случае.
Posted: Fri Sep 14, 2012 10:03 am
by DV
XBrackets v.5.2
- исправлено: цвет фона подсвеченной скобки в выделении
- исправлено: не поддерживались игнорируемые стили шрифта из Coder::HighLight
Posted: Fri Sep 14, 2012 7:56 pm
by Serge Yolkin
DV
Спасибо. Теперь глюков нет (по крайней мере, у меня).
Posted: Tue Sep 25, 2012 3:09 pm
by DV
XBrackets v.5.3
+ обновления/исправления для цвета фона и стиля шрифта
Posted: Wed Oct 10, 2012 10:49 am
by Fr0sT
Есть предложение добавить внешний вызов для Quote/Unquote выделенного текста.
Например (синее - выделенное):
наш гордый Варяг
=> XBrackets:Quote("«", "»") =>
наш гордый «Варяг»
=> XBrackets:Quote("«", "»") =>
наш гордый Варяг
PS Про Insert знаю, он не умеет второго шага (умный unquote), про скрипты тоже знаю.
Posted: Wed Oct 10, 2012 5:10 pm
by DV
Есть ручная настройка autocomplete.sel_autobr = 2 .
А в скрипте, при необходимости, можно получить информацию о подсвеченной паре скобок - см. пример в XBrackets-Rus.txt .
Posted: Wed Oct 10, 2012 9:26 pm
by VladSh
DV
У нас уже была дискуссия на эту тему.
При sel_autobr=2 автоматическое quote/unquote работает только для обычных кавычек, т.е. для ", к тому же надо выделить текст вручную, вместе с кавычками. Скрипт также определяет позиции кавычек только если текст выделен.
Всё это неудобно, потому, смею предположить, используется лишь как пример для файла XBrackets-_.txt.
Идея 'умного' unquote - в отсутствии необходимости выделения (курсор установлен внутри кавычек) с автоопределением ближайших кавычек для "раскоменчивания".
Posted: Thu Oct 11, 2012 6:14 am
by Fr0sT
Влад дело говорит, хотя про "раскавычивание" без выделения я не думал, только про случай <кавычка><выделение><кавычка>, что не доставляет неудобств для случая одиночных слов (даблклик по слову выделяет его целиком). Но идея про отсутствие выделения мне определенно нравится. Хотя тогда "окавычивание" не будет обратимым с "раскавычиванием" (окавычить можно будет в пределах слова, а раскавычить - как угодно).
Posted: Thu Oct 11, 2012 7:05 am
by DV
Мне думается, что это скорее задача для скрипта. Обрамить текст можно чем угодно (например, <!--- text -->), и задача в общем случае не относится к скобкам или кавычкам, а подразумевает
1) нахождение заданного ограничителя левее каретки
2) нахождение заданного ограничителя правее каретки
3) выполнение действия
Помнится, есть какой-то мегаскрипт, занимающийся экранированием и де-экранированием символов, преобразованием HTML-выражений типа "<" в символы и наоборот, и т.д. Вот в него можно было бы добавить новый функционал обрамления текста.
Posted: Thu Oct 11, 2012 8:31 am
by VladSh
Я сейчас, особенно после последних изменений, активно пользуюсь insertTag.js, для "окавычивания" его вполне достаточно.
Видимо для расковычивания придётся писать скрипт, работающий по такому алгоритму:
1. Ищем слева первый попавшийся ограничитель из перечня.
2. Ищем справа первый попавшийся ограничитель из перечня.
3. Если соответствуют друг другу, то расковычиваем.
Если нет - определяем, к какой кавычке ближе каретка, если к левой, то берём левый ограничитель за опорный, и повторно ищем вправо соответствующий. Если не нашли, то берём правый и ищем соответствующий влево.
И наоборот.
Posted: Thu Oct 11, 2012 8:50 am
by DV
Пример в тему:
var s = "aaa \" bbb { | ccc \" } ddd"; | - каретка. Что должен делать алгоритм?
Posted: Thu Oct 11, 2012 12:13 pm
by Fr0sT
Ребята, вы всё сразу сложняете. Я предлагал указывать требуемую кавычку в параметрах, соответственно иметь разные вызовы на разные кавычки. Потому что insertTag, конечно, могуч, но он для тегов. Не знаю, можно ли его приспособить под кавычки.
Что касается
Обрамить текст можно чем угодно (например, <!--- text -->), и задача в общем случае не относится к скобкам или кавычкам
то мне кажется разумным отделять мух от котлет.
Для тегов есть insertTag
Для комментов есть toggleComments
Для односимвольных кавычек есть XBrackets.
И раз уж плаг подсвечивает кавычки (а тж разнообразные скобки и т.д.), то почему бы ему и не вставлять/удалять их?
К примеру,
текст => Ctrl-( => (текст)
текст => Ctrl-< => <текст>
и тп
Posted: Thu Oct 11, 2012 8:30 pm
by VladSh
DV
Мне кажется, что убрать {}. Т.е., видимо, нужно будет и приоритеты сюда как-то подключить...
Но для этого варианта лучше простое указание разделителя.
Fr0sT
insertTag чисто для обрамления, работает идеально.
Весь сыр-бор в unquote, для которого действительно нужен отдельный скрипт. Ну или не скрипт))