Page 79 of 99

Posted: Fri Aug 14, 2015 2:42 pm
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-файлы добавить возможности парсера...(например, как-то передовать один паттерн в другой)

Posted: Fri Aug 14, 2015 7:41 pm
by FeyFre
Cuprum
Именно, даже не пытайтесь на регулярках сделать полное покрытие. Для таких случаев нужен парсер синтаксических конструкций. То же cpp.coder далеко не идеален, при желании напишу код которым кодер подавится :)

Posted: Thu Sep 03, 2015 2:42 pm
by VladSh
Skif_off
Спасибо за это! А то тоже мучился.

Posted: Fri Sep 11, 2015 8:01 am
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

Posted: Fri Sep 11, 2015 8:08 pm
by Kley
Instructor
Instructor wrote:Добавлено: опция для дополнения с учётом регистра (de).
Кнопка "Применить" на ней не работает. :(

Posted: Fri Sep 11, 2015 8:25 pm
by Skif_off
Добавлено: тема Obsidian (Cuprum)
Не нашёл в настройках плагина.

Posted: Fri Sep 11, 2015 8:33 pm
by KDJ
Skif_off
You should update Coder plugin to new version (16.1).

Posted: Fri Sep 11, 2015 10:24 pm
by Instructor
Исправлено: галочка дополнения с учётом регистра не обновляла кнопку "Применить".

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


Coder plugin v16.2

Posted: Sat Sep 12, 2015 12:33 pm
by yozhic
Instructor
cpp-rus.coder не могли бы обновить? Так нам, юзверям, полегче разбираться будет.

Posted: Sat Sep 12, 2015 9:46 pm
by KDJ
Instructor
In js.coder please replace "$~echo" with "$~Echo" (line 409).

Posted: Sun Sep 13, 2015 11:09 am
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

Posted: Sun Sep 13, 2015 12:27 pm
by Drugmix
А ещё при прокрутке тягой за скроллбар символы в строках могут окрашиваться в два цвета:
Image

Posted: Sun Sep 13, 2015 1:33 pm
by Instructor
KDJ
Changed.

Drugmix
Тестовая

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

Posted: Sun Sep 13, 2015 6:16 pm
by yozhic
Пожалуйста, объясните (сам не смог додуматься), или подскажите что почитать или сделать, чтобы понять значения новых параметров Parent ID, Rule ID, Rule file – допустимые значения, на что влияют, как работают.