Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Wio
Offline
Posts: 76
Joined: Wed Jan 05, 2011 6:07 am

Post by Wio »

YuS wrote:(?s) точка '.' соответствует любому одиночному символу (по умолчанию).
Конечно, я знаю об этой возможности. Имелось ввиду, что модификатор DOTALL по умолчанию не задействуется в других реализациях. Почему же в AkelPad точка оказалась "всеядной"? Это ухудшает переносимость регулярных выражений и затрудняет применение готовых шаблонов, полученных из различных источников (того же JavaScript).

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

Post by Instructor »

Cuprum wrote:В версии 17.8 у меня почему-то вложенные @директивы подсвечиваются целиком, а ...
Изменено.
YuS wrote:...второе из двух правил ' "<![CDATA[" "]]>" ' уже не работает...
См. Coder 17.9.
Kley wrote:А что-то ничего не изменилось.:(
Убедитесь, что вами используется последняя тестовая версия.

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

Post by Instructor »

Исправлено: объединение правил с различным родителем (Coder::CodeFold).

Fixed: merging rules with different parent (Coder::CodeFold).


Coder plugin v17.9

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

Post by YuS »

Wio wrote:Имелось ввиду, что модификатор DOTALL по умолчанию не задействуется в других реализациях. Почему же в AkelPad точка оказалась "всеядной"?
Ну, стандарта ведь нет и кроме того:
Метасимвол . (точка) означает один любой символ, но в некоторых реализациях исключая символ новой строки.
т.е. дело привычки работы на определенном движке...

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

Post by YuS »

Instructor wrote:
YuS wrote:...второе из двух правил ' "<![CDATA[" "]]>" ' уже не работает...
См. Coder 17.9.
Спасибо! Теперь работает.

Но всё же, остался другой вопрос. Попробую развернуть его:

Code: Select all

;1052676=4+4096+1048576
1052676	0	0	0	`<handler(?=(?:\s[^<]+)?(?<!/)>)`	"</handler>"	""	0	2 
;517=1+4+512
517	    3	${ATTR}	${OP}	"<![CDATA["  "]]>"      ""      2	0
- вот такие строки работают вполне ожидаемо и подсветка атрибутов отрабатывает стандартными правилами:
Image


но как только используем подсветку из внешнего файла:

Code: Select all

;1052676=4+4096+1048576
1052676	0	0	0	`<handler(?=(?:\s[^<]+)?(?<!/)>)`	"</handler>"	""	0	2 "js.coder"
;517=1+4+512
;517	    3	${ATTR}	${OP}	"<![CDATA["  "]]>"      ""      2	0
- подсветка атрибутов ломается и наладить её не получается ни стандартными правилами, ни из внешнего файла:
Image


И ещё вопрос:
Предполагалось, что вот это правило <handler(?=(?:\s[^<]+)?(?<!/)>), из-за жадности квантификатора, должно максимально учесть вот этот момент:
Image
но, видимо, где-то я ошибаюсь - в чем моя ошибка?

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:Добавлено: поддержка вложенных .coder'ов (Coder::AutoComplete).
Шикарно! Спасибо. :roll:

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

Post by DV »

Instructor wrote:Добавлено: поддержка вложенных .coder'ов (Coder::AutoComplete).
А как это использовать? (Пример)

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

Post by YuS »

DV wrote: А как это использовать? (Пример)
При наборе текста в секции подсвеченной из внешнего файла .coder, будут работать правила AutoComplete из того самого внешнего файла...
Пример чуть выше:
Редактируем файл .xml, в котором есть секция <![CDATA[ ... ]]> с подсветкой синтаксиса по правилам js.coder и получаем именно в этой секции автодополнение из js.coder

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

Post by DV »

YuS wrote:Редактируем файл .xml, в котором есть секция <![CDATA[ ... ]]> с подсветкой синтаксиса по правилам js.coder и получаем именно в этой секции автодополнение из js.coder
Моя не понимать: что именно надо добавить в xml.coder, чтобы заработало автодополнение из js.coder?

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

Post by VladSh »

По моему, у FeyFre в SpellCheck лучше и проще механизм был - в разных файлах можно вставлять разные расширения. Сейчас функциональность Coder'а растёт, но и усложнение тоже. Ну да ладно...

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

Post by Instructor »

YuS wrote:- подсветка атрибутов ломается и наладить её не получается ни стандартными правилами, ни из внешнего файла...
Предполагалось, что вот это правило <handler(?=(?:\s[^<]+)?(?<!/)>) ...
Шаблоном "Fold start" необходимо захватить весь текст до ">", т.к. захваченный текст будет подсвечен по правилам основного coder'а.
<handler(?=(?:\s[^<]+)?(?<!/)>)

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

Post by YuS »

DV wrote: Моя не понимать: что именно надо добавить в xml.coder, чтобы заработало автодополнение из js.coder?
Как-то
Image

Instructor wrote: Шаблоном "Fold start" необходимо захватить весь текст до ">", т.к. захваченный текст будет подсвечен по правилам основного coder'а.
<handler(?=(?:\s[^<]+)?(?<!/)>)
А-а-а, вон оно почему не "стреляло-то".
Image
, спасибо. Одним ответом двух зайцев сразу... :)
А я наоборот пытался шаблон сделать не захватывающим...

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Тут назрело небольшое пожелание. В FAT32 и NTFS время хранится с разной точностью, поэтому иногда получается, что при синхронизации с флэшкой время модификации файлов переносится неточно и, соответственно, файл кэша на флэшке будет перезаписан – создается иллюзия каких-то правок, которых не было (мелочь, а внимание отвлекает – вдруг чего... скажем, правилось с сохранением даты, а размер итоговый случайно совпал).
По идее, секунда разницы погоды не делает, так что хотелось бы или игнорировать небольшую разницу, или округлять при записи времени в файл.

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

Post by Instructor »

Infocatcher
В основном так сравниваю -
Image

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

Post by Cuprum »

Instructor
Теперь на последней тестовой и кодер 17.9 получается

Image

Проверял на less-файле, он позволяет такую вложенность.
Если закомментировать строку в QuotesRE

Code: Select all

0	"([@_a-z\d\-]++)?(\.[_a-z\d\-]++)?(:[:]?[_a-z\d\-]++)?"  "\1=(0,${OP},0) \2=(0,${VAR},0) \3=(0,${AREA},0)"  -1       0
То тогда @-директивы на всех уровнях подсвечиваются одним цветом, как и хотелось бы. Но есть еще одна проблема на скриншоте - название элемента с классом подсвечиваются только на верхнем уровне. Во вложенных {} подсветка уже не работает.
Если честно, я запутался в цифрах и приоритетах в кодер-файлах. Например, если у правила указан Parent ID 0, он ищет другие правила с Rule ID 0 или сам по-себе? Может, уточнить в coder-rus.txt какие конкретно значения принимает идентификатор?
Locked