XBrackets plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Fr0sT
так вот и использовать переменную COMM в качестве "выделенного понятия "Комментарий".

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

Post by DV »

Drugmix,

1. Вопрос: как решить проблему неверной подсветки закрывающей скобки (в случае нечётного количества скобок в RegExp шаблоне).
Пока никак. XBrackets просто подсчитывает скобки от текущей позиции, и считает парной первую подходящую.

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

3. Фиче реквест: расширьте, пожалуйста, эти настройки
Могу разве что предложить добавить поле для перечисления расширений файлов, к которым это применять. Но только в том случае, если кто-то за меня руками отредактирует файл "XBrackets.rc", добавив туда этот новый элемент "Edit" и подкорректировав вертикальные смещения следующих за ним элементов. Лень мне делать это самому - а всякие редакторы ресурсов покорёжат все стили элементов.

Что Вы лично думаете об идее слияния XBrackets и Coder плагинов?
Вопрос по большей части в том, чтобы перенести часть функционала XBrackets внутрь плагина Coder. При этом XBrackets, по всей видимости, будет лишь интерфейсом для чтения и хранения своих настроек, передавая их в плагин Coder, сообщая тем самым, какие есть пары скобок и как их обрабатывать.
Таким образом, подобная миграция - это вопрос сразу к двум разработчикам.
Кроме того, сейчас XBrackets вполне работает независимо от Coder, а при миграции станет дополнительным модулем к Coder.
Если вы готовы форсировать подобную миграцию или даже участвовать в ней - let's rock.

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

Post by DV »

Добавил переменную Escaped1FileExts (названия переменных всегда были сильной стороной XBrackets :)).
Текущий дизайн таков. Если эта переменная пустая, то всё будет работать, как сейчас: символ \ обрабатывается во всех файлах. Если же она не пустая, то автоматически активируются расширения c;cc;cpp;cxx;h;hh;hpp;hxx плюс введенные в качестве значения Escaped1FileExts.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Может тогда ещё переменных:
CustomEscaping1Symbols - символы подряд
CustomEscaping1Objects - escape'ируемые (вот не знаю, обычно же это одиночные символы,. так что тут разделитель не нужен)
CustomEscaping1Exts - так же как у вас - расширения через точку с запятой
...
CustomEscaping9Symbols
CustomEscaping9Objects
CustomEscaping9Exts
?
На некоторое время для решения всяких извращенных задач должно хватить, я думаю.
Только в документации прописать с примерами, а то из того, что Вы ввели и описали постом выше я понял. что это отключает \ как символ escape во всём кроме указанных расширений.

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

Post by DV »

Lenchik,
а разве есть другие широко использующиеся экранирующие символы, кроме '\' ?
Тут я не рассматриваю экзотические варианты типа удваивающихся или утраивающихся кавычек, так как это слишком специфично плюс не является общим случаем экранирования с использованием специального экранирующего символа.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Я подумал, что проблему
Drugmix wrote:1. Вопрос: как решить проблему неверной подсветки закрывающей скобки (в случае нечётного количества скобок в RegExp шаблоне)

Code: Select all

RegExReplace(value, "i)^.*\\|\.ahk[^\w]*")
Группой из круглых скобок здесь является первая и последняя, а вместо этого подсвечиваются левая и средняя.
i) - эта скобка в шаблонах регулярных выражений используется как непарная для того, чтобы слева от неё можно было перечислять настройки для шаблона.
можно было бы решить, написав i в экранирующие символы для скобок. Потому и предложил такую заморочку.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Lenchik,
не, это не выход. Там перед скобкой может быть не только i: http://l.autohotkey.net/docs/misc/RegEx ... tm#Options
и идти они могут в любом порядке.
А вот символ кавычек экранируется как раз удвоением.

DV
Для AutoHotkey экранирующим символом по умолчанию (т.е. его можно сменить) является accent (он же backtick, он же `): http://www.autohotkey.com/docs/commands/_EscapeChar.htm
И только символ двойной кавычки экранируется собою же.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Drugmix
1. Речь шла не о наличии каких бы то ни было иных экранирующих символов кроме '\' в принципе, а о других широко использующихся. Это важно, поскольку AHK явно не относится к популярным ЯП (например по индексу TIOBE не входит в первую сотню ЯП).
2. Если в AHK экранирующий символ можно сменить, то чем не вариант сменить его на '\' ко взаимному удовлетворению сторон?
3. Удвоение кавычки используется и в VB для сокращенной записи (вместо '& Chr(34) &').

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

1. Чего уж, тогда и ahk.coder надо удалить, раз АНК не входит в топ 100 TIOBE?
Мы говорим об удобстве. Чем его больше - тем лучше. Удобство достигается гибкими настройками, которые я и прошу.
2. Не удобно воевать с дефолтным значением. Я же не только свои скрипты пишу, но и чужие редактирую - у каждого менять #EscapeChar геморно: это не просто добавил строчку и забыл, а добавил строчку и просмотрел весь код, исправляя в коде старый EscapeChar на новый. И Find&Replace All здесь не поможет.
3. Это очень ценная информация. Пожалуйста, держите нас в курсе.

p.s.: пожалуйста, не обижайтесь на мою иронию/сарказм.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Дополнение по пункту 2: наткнулся на ченджлог AHK_L v2 (находится в стадии альфы уже довольно длительное время, текущая релизная ветка - 1.1), так вот там #EscapeChar уже выбросили: пруфлинк.
Last edited by Drugmix on Fri Aug 09, 2013 6:06 pm, edited 1 time in total.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Drugmix wrote: #EndChars уже выбросили: пруфлинк.
Вы опечатались, видимо: #EscapeChar выбросили.
Теперь в AutoHotkey только ' для escaping, неизменяемый.

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Lenchik
Конечно опечатался: речь же ранее шла про #EscapeChar. Но и Вы опечатались: не ' а `.

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

Post by DV »

XBrackets v.5.6
+ исправлена перерисовка скобок при включенном ClearType
(заимствовано из плагина SpecialChar, спасибо Instructor)
* небольшие внутренние изменения + добавлен 'Escaped1FileExts' (пробно)

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

Post by DV »

XBrackets v.5.8
- исправлено: не проверялся результат AKD_GETEDITINFO (TRUE или FALSE).

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

Post by DV »

XBrackets v.5.9
* (оптимизация) уменьшено количество вызовов SPI_GETFONTSMOOTHING
Post Reply