Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Cuprum wrote:

Code: Select all

(?<!ab)(?<!cd)(текст)
С отрицательными так. С положительными в тестовой версии так:

Code: Select all

((?<=ab)|(?<=cd))(текст)

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

Post by Drugmix »

Instructor wrote:В шаблонах фиксированной длины нельзя использовать '|'.

Code: Select all

0   `(?<![({])(a)+`   `\1=(0,${AREA},0)`
А вносите, пожалуйста, такие мелкие заметки в документацию, это важная информация, а документация чересчур лаконична.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Почему то не дает сохранить измененный цвет.

У меня есть своя тема, называется Default 2. На вкладке "Общие" в настройках плагина выбираю цвет из палитры (из основных цветов), допустим, для переменной TYPE. Жму "Сохранить" рядом с названием темы, затем ОК.
Если сейчас снова вернуться в настройки плагина, то у TYPE там остается старый цвет. Причем, сам список с переменными и цветами для них оказывается прокручен к самому низу. Кэш не используется, сохранение настроек редактора установлено в ini. Версии редактора и плагина самые свежие.

Offline
Posts: 173
Joined: Mon Dec 06, 2010 9:53 am
Location: г.Харьков, Русь

Post by San_dr »

Cuprum
Вопрос: Почему неактивна кнопка ОК при переключении/редактировании Цветовой темы (Вид —>Цвет)

Ответ: При включенной подсветке редакция цветовых тем заблокирована - отключи подсветку, сними птицу в автозагрузке плагина (Настройка—>Плагины Coder::HighLight) перезагрузи Акель и меняй цветовую тему. Потом сохрани под каким-то именем.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

San_dr
Отключение подсветки не помогло.

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

Post by DV »

Cuprum wrote:Отключение подсветки не помогло.
Вот и я думаю: слишком уж суровое требование, я всегда пользовательские темы без отключения подсветки редактировал, и всё сохранялось.
Может быть, прав на запись в папку AkelPad\AkelFiles\Plugs или конкретно на файл Coder.ini нету?

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

DV
Да, на папке Plugs стоит атрибут "только для чтения", но его не удается снять. Убираю, нажимаю ОК, он снова появляется. С Сoder.ini все в порядке.

Полностью переустановил редактор, результат нулевой. Причем, когда нажимаю ОК в настройках coder-плагина у coder.ini меняется дата, но цвета в моей собственной теме сохранять все равно не хочет.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Добавлено: прозрачность списка (Coder::AutoComplete).
Исправлено: изменение цвета через диалог выбора цвета не сохранялось.
Исправлено: список не закрывался при переключении между вкладками в режиме PMDI (Coder::AutoComplete).

Added: list transparency (Coder::AutoComplete).
Fixed: color changing via color dialog not saved.
Fixed: list not close when switching between tabs in PMDI mode (Coder::AutoComplete).


Coder plugin v13.6

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Вот такой еще момент. Выбрал я другую цветовую тему. И хочу в ней изменить цвет активной строки. В "Цветах" цвет поменять у активной строки можно, но кнопка ОК не активна.
Т. е. сейчас цвет активной строки в "цветах" можно поменять у дефолтной темы или или у своей, сделанной на основе дефолтной, но не у других. Временное отключение подсветки синтаксиса тоже не помогает.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Cuprum
viewtopic.php?p=24812#p24812
Cuprum wrote:Временное отключение подсветки синтаксиса тоже не помогает.
Убедитесь, что напротив "Coder::HighLight" не стоит статус "Работает".

Диалог "Цвета" и "Coder::HighLight":
- Кнопка "ОК" диалога "Цвета" разблокируется при отключении "Coder::HighLight".
- При работающем "Coder::HighLight", кнопка "ОК" диалога "Цвета" блокируется, когда в теме Coder плагина задана хотя бы одна переменная "HighLight_...Color".
- Цвет из диалога "Цвета" берется только в случае, если в теме Coder плагина соответствующий цвет имеет значение "0".

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Instructor
Спасибо!, разобрался.

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Serge Yolkin wrote:Долгое время пытался описать регуляркой регулярки в JS. Сменил концепцию: вместо описания всего, что может быть внутри регулярки (а там много чего может быть), попробовал описать то, что снаружи. Получилось короче и работает точнее:

Code: Select all

4 (?<=[{\[(,;:=!?&\n])\s*(\/(?!\/).*?[^\\](\\\\)*\/)[gim]{0,3}\s*(?=[}\]),;:.\n])`	`\1=(3,${TYPE},0)`
Может кто-нибудь потестировать?
Выражение спотыкается на таком коде

Code: Select all

if(/([\\/])?([^\\/]*)$/.test(path))

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

Post by Serge Yolkin »

Cuprum
Ну, да. Неэкранированный прямой слэш считаем концом регэкспа. Я экранирую, даже в квадратных скобках, хоть это и не обязательно. Попробую что-нибудь сделать, только надо будет учитывать возможность наличия экранированной закрывающей скобки внутри квадратных... Ну, и т.д. - рекурсией пахнет.
Кстати, пока игрался с Вашим примером, обнаружил косячок в регулярках:

Instructor
для приведённого уважаемым Cuprum примера делаю две регулярки:

Code: Select all

4 `(\/(?!\/).*?(\[.*?\]).*?(\[.*?\]).*?[^\\](\\\\)*\/)`	`\1=(3,${TYPE},0)`
;4 `(\/(?!\/).*?((\[.*?\]).*?){2}[^\\](\\\\)*\/)`	`\1=(3,${TYPE},0)`
первая работает, вторая - нет. Это не одно и тоже?
В JS оба выражения отрабатывают.
(регулярки тестовые, практической ценности не имеют)

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

Serge Yolkin wrote:

Code: Select all

4 `(\/(?!\/).*?(\[.*?\]).*?(\[.*?\]).*?[^\\](\\\\)*\/)`	`\1=(3,${TYPE},0)`
;4 `(\/(?!\/).*?((\[.*?\]).*?){2}[^\\](\\\\)*\/)`	`\1=(3,${TYPE},0)`
первая работает, вторая - нет. Это не одно и тоже?
Это не должно быть одним и тем же, с точки зрения регулярок (в памяти глубоко засело, что их надо читать буквально, т.е. практически посимвольно).
Например, вот различающаяся часть вышеприведенного шаблона:

Code: Select all

1. (\[.*?\]).*?(\[.*?\]).*?
2. ((\[.*?\]).*?){2}
Ведь то, что находится в группе, должно иметь приоритет операции. Это можно проверить, например, вот в таких тестовых наборах:
[abc][bca]dde
[abc]def[bca]dde
[abc]def[bca]
[abc][bca]
Первый шаблон вполне работает, потому как часть выражения ".*?" (та которая вне квадратных скобок), не является частью группы, а вот второй шаблон не будет выполнен, т.к. ".*?", находящееся внутри группы захватит весь текст до конца строки и не будет выполнено условие {2}. Если, конечно, я не ошибаюсь, но это легко проверить, убрав в шаблоне то самое {2}. На истину в последней инстанции не претендую, если что. :)

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

Post by Serge Yolkin »

YuS
Э-э-э... Там квадратные скобки экранированные... Т.е. диапазонов в приведённых регулярках нет. Есть два идентичных фрагмента в первом случае, и один точ в точ такой же фрагмент во втором с квантификатором 2. И ещё раз: в JS обе регулярки отрабатывают почти одинаково - разница только в количестве запомненных фрагментов, обусловленном количеством круглых скобок, сама строка в обоих случаях захватывается.
Locked