Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 382
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

FeyFre, Instructor
Посмотрел, стало немного понятнее. Но не до конца :(
Я вот пытаюсь немного улучшить свою подсветку markdawn, но что-то пока не очень. (а если еще и в недавно организованный стандарт смотреть, взрыв мозга гарантирован) Для примера, немного упрощенный случай:
1. *Такой текст* должен быть выделен курсивом, причем сразу после открывающей и перед закрывающей * не должно быть пробела. Регексп такой:

Code: Select all

0	"(\*(?! )[^\*]+(?<! )\*)"	"\1=(3,${TAG},0)"
2. **Такой текст** должен быть "жирным". Для него паттерн такой

Code: Select all

0	"(\*\*(?! )[^\*]+(?<! )\*\*)"	"\1=(2,${TAG},0)"
3. **Такой текст *должен* выглядеть *как-то* так**. Вариант Instructor-a

Code: Select all

0   "(?:(?<=\*)|(?=\*))([^\*]*+)(?:(\*\*)|(\*.+?\*))"   "\1=(2,${TAG},0) \2=(2,${TAG},0) \3=(4,${TAG},0)"

Когда все три работают вместе получается так:
1) **тут *там* здесь** *где-то*
должно так:
**тут *там* здесь** *где-то*

2) ***ага***
должно так
***ага***
Мне кажется, тут дело даже в не регулярках, а в том, что на основе только одних регэкспов сложные случаи правильно в markdown не раскрасить. В программах или на сайтах, где реализована его подсветка, она сделана через программный код (javascript, Си и т.д.), то бишь через парсер. Вот как бы в сами coder-файлы добавить возможности парсера...(например, как-то передовать один паттерн в другой)

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Cuprum
Именно, даже не пытайтесь на регулярках сделать полное покрытие. Для таких случаев нужен парсер синтаксических конструкций. То же cpp.coder далеко не идеален, при желании напишу код которым кодер подавится :)

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

Post by VladSh »

Skif_off
Спасибо за это! А то тоже мучился.

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

Post by Instructor »

Добавлено: иерархия в правила синтаксических файлов.
- добавлено "Parent ID" в секцию "Delimiters:".
- добавлено "Parent ID" в секцию "Words:".
- добавлено "Parent ID", "Rule ID" в секцию "Quotes:".
- добавлено "Parent ID", "Rule ID" в секцию "QuotesRE:".
- добавлено "Parent ID", "Rule ID", "Rule file" в секцию "Folds:".
Добавлено: возможность в "Rule file" секции "Folds:" указывать .coder файл для данного блока. См. html.coder для примера.
Добавлено: возможность использовать регулярные выражения не фиксированной длины для флагов 1048576, 2097152 (секции "Folds:", "Skips:").
Добавлено: возможность скрывать последнюю строку блока.
Добавлено: опция для дополнения с учётом регистра (de).
Добавлено: тема Obsidian (Cuprum).
Добавлено: переменные Sessions_ListTextColor, Sessions_ListBkColor для Sessions плагина.
Добавлено: пункт "Перейти к правилу" в контекстное меню CodeFold списка.
Добавлено: внешний вызов с кодом 2 - перейти к правилу (Coder::CodeFold).
Добавлено: перемещены расширения из php.coder в html.coder. Удалите файл "cache", если используется "Быстрый кеш".

Added: syntax file rules hierarchy.
- added "Parent ID" in "Delimiters:" section.
- added "Parent ID" in "Words:" section.
- added "Parent ID", "Rule ID" in "Quotes:" section.
- added "Parent ID", "Rule ID" in "QuotesRE:" section.
- added "Parent ID", "Rule ID", "Rule file" in "Folds:" section.
Added: in "Rule file" of "Folds:" section possible to specify .coder file for this fold. See html.coder for example.
Added: possibility to use non-fixed regular expressions for flags 1048576, 2097152 ("Folds:", "Skips:" sections).
Added: possibility to hide last line of the fold.
Added: option for case sensitive completion (de).
Added: Obsidian theme (Cuprum).
Added: variables Sessions_ListTextColor, Sessions_ListBkColor for Sessions plugin.
Added: "Go to rule" context menu item in CodeFold list.
Added: external call with code 2 - go to rule (Coder::CodeFold).
Added: moved php.coder extensions to html.coder. Remove "cache" file, if you use "Fast cache".


Coder plugin v16.1

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor
Instructor wrote:Добавлено: опция для дополнения с учётом регистра (de).
Кнопка "Применить" на ней не работает. :(

Offline
Posts: 1162
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Добавлено: тема Obsidian (Cuprum)
Не нашёл в настройках плагина.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Skif_off
You should update Coder plugin to new version (16.1).

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

Post by Instructor »

Исправлено: галочка дополнения с учётом регистра не обновляла кнопку "Применить".

Fixed: case sensitive completion checkbox didn't update "Аpply" button.


Coder plugin v16.2

Offline
Posts: 276
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Instructor
cpp-rus.coder не могли бы обновить? Так нам, юзверям, полегче разбираться будет.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor
In js.coder please replace "$~echo" with "$~Echo" (line 409).

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

Post by Drugmix »

Instructor
напомню про баг обработки coder'ом длинных строк, которые режутся на несколько более мелких настройкой wrap lines.
Только первая под-строка окрашивается как надо, а остальные окрашиваются неверно, до тех пор пока не кликнешь по ним мышью или не выставишь каретку в них

Пример:
В coder.coder есть правило (line 89) секции Quotes:

Code: Select all

513	3	${COMM}	0	";"	""	""	""	""	0	0
Тем не менее, стиль шрифта комментариев в .coder файлах отображается как ${COMM} только если вся строка комментария умещается в одной под-строке в окне akelpad. Соответственно, для воспроизведения бага достаточно ресайзнуть окно поуже на открытом coder.coder и мы увидим
Image
вместо
Image

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

Post by Drugmix »

А ещё при прокрутке тягой за скроллбар символы в строках могут окрашиваться в два цвета:
Image

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

Post by Instructor »

KDJ
Changed.

Drugmix
Тестовая

Offline
Posts: 202
Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia

Post by Kley »

Instructor, Drugmix,
Пожалуйста, простите, что вмешиваюсь в ваш диалог.
Был сильно огорчен поведением XBrackets с новой версией AkelPad и еще больше из-за того о чем писал Drugmix выше.
Но XBrackets из PlugsPack с тестовой версией AkelPad заработал. С этой тестовой версией заработала подсветка, а
XBrackets опять рушит программу. :(

Offline
Posts: 276
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Пожалуйста, объясните (сам не смог додуматься), или подскажите что почитать или сделать, чтобы понять значения новых параметров Parent ID, Rule ID, Rule file – допустимые значения, на что влияют, как работают.
Locked