Code: Select all
2 `^\s*(WinGet)(?:\s*,\s*|\s+)(.*)\s*(,(.*)(\s*,(.*)(\s*,(.*)(\s*,(.*)(\s*,(.*))?)?)?)?)?$` `\1=(2,${OP},0) \2=(2,${VAR},#00ff00) \4=(2,${OP},#ff0000) \6=(2,${VAR},#0000ff) \8=(2,${OP},#ff0000) \10=(2,${VAR},#00ff00) \12=(2,${OP},#0000ff)`
как видно из скриншота - у опциональных аргументов (1-ый - не опциональный, а все последующие - опциональные).
Пробовал использовать позитивные и негативные просмотры назад
(lookbehind'ы), заменяя (.*) группы на ((?<!\S).*) или на ((?<=\s).*) но не помогло.
Кстати, ещё про документацию: regexp-овая документация в AkelHelp-Eng.htm более полная чем та, что в AkelPad4-Eng.chm файле.
А ещё в Plugins-Eng.chm нет документации по Coder плагину.
А в Coder-Eng.txt много рассказывается про внешние вызовы к этому плагину, а вот как правильно создавать правила для различных секций в .coder файлах - не рассказывается.
А в существующих .coder файлах документация плоха тем, что разрозненна и не описан синтаксис правил к различным секциям.
Не только сам плагин Coder сейчас нуждается в серьёзных доработках, но и документация к нему.