Page 56 of 99
Posted: Tue Jul 29, 2014 7:32 am
by CleriC
Разобрался. Закомментировал 3 строчки (начинающиеся на 173) в секции Folds:
Code: Select all
Folds:
;=====================================
;Flags Font Color Color Fold Fold Delimiters
; style text bkgrnd start end
;=====================================
173 0 0 0 [ [ ""
173 0 0 0 "***" "***" ""
173 0 0 0 "---" "---" ""
И вот эту строчку:
Code: Select all
;--Latin alphabet--
2 0 ${VAR} 0 "ABCDEFGHIJKLMNOPQRSTUVWXYZŻĆĘółąśńźäöüßëéèàòùôçêûïâáõíãúİŞğıÆØČŽŮĚŘýňšťåľďЇіњџЈҐŵįŋĐŏÌĪăŔñőűўЄЅћљќЂ€āēģūļņķ"
Сейчас при загрузке ошибок нет. Странно, правда, что ему не понравилось.
Posted: Tue Jul 29, 2014 11:11 am
by Cuprum
Добавил еще свойств.
css.coder 1.09
Вот только что-то не нравится мне подсветка цифр. Рябит уж слишком. ) Может быть, цифры оставить без подсветки, а подсвечивать единицы измерения - px, rem, in, em, rad и т.д.? Их достаточно много, можно даже все единицы измерения вынести в отдельный блок. Но будет ли так работать?
Posted: Tue Jul 29, 2014 12:30 pm
by YuS
Cuprum wrote: Может быть, цифры оставить без подсветки, а подсвечивать единицы измерения - px, rem, in, em, rad и т.д.? Их достаточно много, можно даже все единицы измерения вынести в отдельный блок. Но будет ли так работать?
Конечно, будет. Надо здесь:
Code: Select all
"(-)?(\d{1,8})\s*(px|em|s|rem|deg)?" "\1=(0,${DEL2},0) \2=(0,${NUM},0) \3=(0,${DEL1},0)"
${NUM} - заменить либо на 0, либо подсветить чем-то более нейтральным...
Кстати, \d{1,8} - не мало для захвата цифр? Число символов брал практически "с потолка"
Posted: Tue Jul 29, 2014 1:11 pm
by Skif_off
CleriC
Между названием секции и ее содержимым (равно как и в содержимом) не должно быть пустых строк.
Если она нужна, ставится коммент - ";" в начале строки.
Posted: Tue Jul 29, 2014 8:13 pm
by Skif_off
Внезапно перестало работать правило
Code: Select all
1 "(\()(c(a|d)+r)" "\1=(0,${DEL1},0) \2=(0,${OP},0)"
и подобные. В чем может быть дело? Не помню, когда добавлял,
раньше работало.
Добавлено:
Перестало работать начиная с AkelPad 4.8.9 и Coder 13.5 (идет в дистрибутиве).
Posted: Wed Jul 30, 2014 2:34 am
by YuS
Skif_off wrote:Внезапно перестало работать правило
Code: Select all
1 "(\()(c(a|d)+r)" "\1=(0,${DEL1},0) \2=(0,${OP},0)"
и подобные. В чем может быть дело?
Образец бы тестового массива глянуть, ну там где не работает...
Posted: Wed Jul 30, 2014 3:12 am
by CleriC
Skif_off wrote:CleriC
Между названием секции и ее содержимым (равно как и в содержимом) не должно быть пустых строк.
Если она нужна, ставится коммент - ";" в начале строки.
Спасибо. Удалил пустые строки и всё стало нормально.
Posted: Wed Jul 30, 2014 3:49 am
by Skif_off
YuS wrote:Образец бы тестового массива глянуть, ну там где не работает...
Подумал - очевидно

(car и (cdr захватываются, а, например, (caar, (cadr, (caadr уже нет.
В принципе, исправить легко
Code: Select all
1 "(\()(c[ad]+r)" "\1=(0,${DEL1},0) \2=(0,${OP},0)"
Но хотелось бы понять в чем дело? Баг? Или результат исправления старого бага? Или приведение поддержки к некоей канонiчности типа POSIX или PCRE? Я не большой знаток регулярных выражений и раньше работало.
Кстати по цифрам, latex.coder кто-нибудь пользует? Не так давно вносил правки и что-то как-то раздражает подсветка цифр.
Posted: Wed Jul 30, 2014 8:25 am
by Lenchik
Skif_off wrote:latex.coder кто-нибудь пользует? Не так давно вносил правки и что-то как-то раздражает подсветка цифр.
В цветовой теме, которую я использую, не так уж сильно цифры выделяются, на мой взгляд.
Posted: Wed Jul 30, 2014 9:23 am
by YuS
Skif_off wrote:
Но хотелось бы понять в чем дело? Баг? Или результат исправления старого бага? Или приведение поддержки к некоей канонiчности типа POSIX или PCRE?
Очень похоже, что баг, не работают квантификаторы в группе с вариантами "или".
Видимо, это случилось когда правились lookbehind-ы. Но по всем канонам должны работать такие группы, ибо всё что внутри группы, просто обязано считаться единым целым и работать с квантификаторами.
Posted: Wed Jul 30, 2014 11:00 am
by DV
Дело не только в "ИЛИ", а ещё и в наличии символа после "+".
Например, такой вариант работает корректно: (\()(c(a|d)+)
А как только добавляем "r" после "+", то перестаёт срабатывать на комбинации (caar, (cadr, (cdar и т.д.: (\()(c(a|d)+r)
Posted: Wed Jul 30, 2014 11:01 am
by Infocatcher
DV wrote:Дело не только в "ИЛИ", а ещё и в наличии символа после "+".
Например, такой вариант работает корректно: (\()(c(a|d)+)
А как только добавляем "r" после "+", то перестаёт срабатывать на комбинации (caar, (cadr, (cdar и т.д.: (\()(c(a|d)+r)
Помнится, там чрезмерная жадность реализована, так что есть смысл попробовать (\()(c(a|d)+?r)
Posted: Wed Jul 30, 2014 11:27 am
by YuS
DV wrote:Дело не только в "ИЛИ", а ещё и в наличии символа после "+".
Очень даже может быть, это более точное описание возможного бага.
PS Кстати, на счет lookbehind-ов...
В теме много раз уже попадалось их обсуждение и обсуждение сопутствующего ограничения для них (фиксированное число символов).
Может быть, в данной ситуации помогла бы реализация метасимвола \K ?
Этот метасимвол отрезает всё, что было до него, естественно с проверкой шаблона, и в итоговой подстроке оказывается только то, что идет после него.
Например ищем в таком тексте:
xyzg fhj
abc def
шаблон:
.*[^abc]\K(
abc)(?= def)
В итоговой строке получим:
abc
- причем в этом случае, всё остальное окажется не захваченным. Это в регулярках coder-a было бы очень хорошим подспорьем, имхо.
Posted: Wed Jul 30, 2014 11:32 am
by YuS
Infocatcher wrote:Помнится, там чрезмерная жадность реализована, так что есть смысл попробовать (\()(c(a|d)+?r)
Так чрезмерная жадность, это уже "++" должно быть, но в любом случае (a|d)+r при любой жадности, не должно спотыкаться на символах идущих после "+", ведь они не попадают в шаблон жадной группы.
Posted: Wed Jul 30, 2014 12:49 pm
by Infocatcher
YuS
Ну так то особенности реализации.
++ не реализовано, а жадность работает как-то неклассически.
Более того, я сейчас полез проверять, так на вот таком тексте
работает только «t[a-z]+?t», а «t[a-z]+t» не находит вообще ничего (я так понимаю, оно «поедает» всю последовательность, а назад, если не найдено, не возвращается). И явно больше похоже не «t[a-z]++t».