Вложенный arbtt если тогда еще в categoryor.cfg
Я новичок в этом, так что терпите меня, но я пытаюсь создать правило, которое разделяет мое время на вкладках Firefox, используя arbtt v0.7 в categoryorize.cfg:
-- Firefox
current window ($program == "Navigator") ==>
if $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ then tag Email:$2-$1 else
if $title =~ /^(.*) - Calendar - Mozilla Firefox$/ then tag Calendar:$1 else
if $title =~ /^(.*) - Mozilla Firefox$/ then tag Firefox:$1 else
tag Firefox,
Но я получаю:
Ошибка синтаксического анализатора: "/home/rich/.arbtt/categorize.cfg" (строка 29, столбец 3): неожиданное "i" ожидает "else"
Я также попробовал другой подход с большим успехом:
current window ( $program == "Navigator" && $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ )
==> tag Email:$2-$1,
current window ( $program == "Navigator" && $title =~ /^(.*) - Calendar - Mozilla Firefox$/ )
==> tag Calendar:$1,
current window ( $program == "Navigator" && $title =~ /^((?!.*\b(Calendar|Mail)\b)) - Mozilla Firefox$/ )
==> tag Firefox:$1,
Но последнее предложение не возвращает никаких результатов; первые два пункта делают.
Ура, Рич
1 ответ
Похоже, ошибка в arbtt
; Я согласен, что ваш код выглядит правильно.
Но в любом случае, было бы более идиоматичным использовать ;
оператор, что означает "Попробуйте первое, а если он не присваивает тег, попробуйте второе":
current window ($program == "Navigator") ==>
{ $title =~ /^(.*) - (.*@.*) - .* Mail - Mozilla Firefox$/ ==> tag Email:$2-$1;;
$title =~ /^(.*) - Calendar - Mozilla Firefox$/ ==> tag Calendar:$1;
$title =~ /^(.*) - Mozilla Firefox$/ ==> tag Firefox:$1;
tag Firefox },
(The ;;
из-за другой ошибки в синтаксическом анализаторе - думаю, эта часть еще не использовалась.)
Во второй попытке просто возникает проблема с регулярным выражением: /^(?!.*\b(Calendar|Mail)\b)(.*) - Mozilla Firefox$/
- (?!...)
шаблон с нулевой шириной