XBrackets plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

Кстати, на тему выделения фоном, мне очень нравится, как это в шарпдевелопе оформили: фон выделения перебивает фон подсвеченной скобки, но не перебивает ее контуры, т.е. прекрасно видно и то, и другое

Image

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Обычно при подсветке фона и наличии выделения XBrackets смешивает заданный цвет фона и цвет выделения, чтобы результирующий цвет сочетал оба цвета в равной пропорции. Но в последних версиях это отвалилось.
Пока похоже на то, что для исправления обеих ошибок потребуется как новая версия XBrackets, так и новая версия AkelPad. (Что до цвета, планирую в новой версии смешивать заданный цвет фона и цвет выделения в пропорциях 1/3 и 2/3 соответственно, чтобы цвет выделения преобладал.)

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

А опцию рамки такой тяжело приделать? Был бы ей очень рад в любом случае.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

XBrackets v.5.2
- исправлено: цвет фона подсвеченной скобки в выделении
- исправлено: не поддерживались игнорируемые стили шрифта из Coder::HighLight

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

DV
Спасибо. Теперь глюков нет (по крайней мере, у меня).

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

XBrackets v.5.3
+ обновления/исправления для цвета фона и стиля шрифта

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Есть предложение добавить внешний вызов для Quote/Unquote выделенного текста.
Например (синее - выделенное):
наш гордый Варяг
=> XBrackets:Quote("«", "»") =>
наш гордый «Варяг»
=> XBrackets:Quote("«", "»") =>
наш гордый Варяг

PS Про Insert знаю, он не умеет второго шага (умный unquote), про скрипты тоже знаю.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Есть ручная настройка autocomplete.sel_autobr = 2 .
А в скрипте, при необходимости, можно получить информацию о подсвеченной паре скобок - см. пример в XBrackets-Rus.txt .

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

DV
У нас уже была дискуссия на эту тему.
При sel_autobr=2 автоматическое quote/unquote работает только для обычных кавычек, т.е. для ", к тому же надо выделить текст вручную, вместе с кавычками. Скрипт также определяет позиции кавычек только если текст выделен.
Всё это неудобно, потому, смею предположить, используется лишь как пример для файла XBrackets-_.txt.

Идея 'умного' unquote - в отсутствии необходимости выделения (курсор установлен внутри кавычек) с автоопределением ближайших кавычек для "раскоменчивания".

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Влад дело говорит, хотя про "раскавычивание" без выделения я не думал, только про случай <кавычка><выделение><кавычка>, что не доставляет неудобств для случая одиночных слов (даблклик по слову выделяет его целиком). Но идея про отсутствие выделения мне определенно нравится. Хотя тогда "окавычивание" не будет обратимым с "раскавычиванием" (окавычить можно будет в пределах слова, а раскавычить - как угодно).

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Мне думается, что это скорее задача для скрипта. Обрамить текст можно чем угодно (например, <!--- text -->), и задача в общем случае не относится к скобкам или кавычкам, а подразумевает
1) нахождение заданного ограничителя левее каретки
2) нахождение заданного ограничителя правее каретки
3) выполнение действия
Помнится, есть какой-то мегаскрипт, занимающийся экранированием и де-экранированием символов, преобразованием HTML-выражений типа "<" в символы и наоборот, и т.д. Вот в него можно было бы добавить новый функционал обрамления текста.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Я сейчас, особенно после последних изменений, активно пользуюсь insertTag.js, для "окавычивания" его вполне достаточно.
Видимо для расковычивания придётся писать скрипт, работающий по такому алгоритму:
1. Ищем слева первый попавшийся ограничитель из перечня.
2. Ищем справа первый попавшийся ограничитель из перечня.
3. Если соответствуют друг другу, то расковычиваем.
Если нет - определяем, к какой кавычке ближе каретка, если к левой, то берём левый ограничитель за опорный, и повторно ищем вправо соответствующий. Если не нашли, то берём правый и ищем соответствующий влево.
И наоборот.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Пример в тему:
var s = "aaa \" bbb { | ccc \" } ddd";
| - каретка. Что должен делать алгоритм? ;)

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Ребята, вы всё сразу сложняете. Я предлагал указывать требуемую кавычку в параметрах, соответственно иметь разные вызовы на разные кавычки. Потому что insertTag, конечно, могуч, но он для тегов. Не знаю, можно ли его приспособить под кавычки.
Что касается
Обрамить текст можно чем угодно (например, <!--- text -->), и задача в общем случае не относится к скобкам или кавычкам
то мне кажется разумным отделять мух от котлет.
Для тегов есть insertTag
Для комментов есть toggleComments
Для односимвольных кавычек есть XBrackets.
И раз уж плаг подсвечивает кавычки (а тж разнообразные скобки и т.д.), то почему бы ему и не вставлять/удалять их?
К примеру,
текст => Ctrl-( => (текст)
текст => Ctrl-< => <текст>
и тп

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

DV
Мне кажется, что убрать {}. Т.е., видимо, нужно будет и приоритеты сюда как-то подключить...
Но для этого варианта лучше простое указание разделителя.

Fr0sT
insertTag чисто для обрамления, работает идеально.
Весь сыр-бор в unquote, для которого действительно нужен отдельный скрипт. Ну или не скрипт))
Post Reply