Cuprum wrote: ↑Sat Dec 30, 2023 12:21 pm
Задумал сделать подсветку Котлина.
Можете ли дать файл подсветки для проверки?
У вас внутри кавычек подсвечена переменная. То есть получилось что кавычка не закончена. Внутри кавычек как я понимаю текст, а текст не должен быть подсвечен как будто это код. Или текст или код. Кавычка не закрыта, если так задано регулярным выражением, то будет путаница в открывающих и закрывающих кавычках. Жадность регулируется знаком "?", с ним регвыр не жадный, останавливаясь на минимальной длине совпадения.
AZJIO wrote: ↑Wed Feb 05, 2025 3:10 am
Можете ли дать файл подсветки для проверки?
К сожалению нет, я долго ковырялся с своим кодер-файлом для Котлина, сейчас глянул, там в файле какая-то билиберда . Видимо, плюнул на это дело.
Кодер файл от Java не подойдет, хотя концептуально языки близки, синтаксис у Котлина другой, похитрее.
очевидно, что \101 - это подмаска из начального регекспа. Но это не работает. Насколько понимаю, сделать подсветку типа heredoc можно только в секции "Fold:" с флагами допускающими регекспы. "<<<(\w+)$" "^\s*\101" - не работает как и \1 и $1. Это возможно в принципе?
sha
Насколько я понимаю здесь два независимых регулярных выражения, одно для начала, второе для конца. В справке есть пример показывающий что ссылки на группы работают.
AlexeyB wrote: ↑Fri Mar 25, 2022 4:56 pm3. В комментариях к синтаксическим файлам говорится, что в шаблоне конца блока можно использовать обратную ссылку \101 для доступа к значению группы 1 начала блока, \102 - группы 2 и т.д. В секции Folds это не работает:
;===========================================================================
;Flags Font Color Color Fold Fold Deli Parent Rule Rule
; style text bkgrnd start end miters ID ID file
;===========================================================================
3145728 0 #080 0 "<(\d)" "\101>" "" 0 0
sha wrote: ↑Sun Mar 02, 2025 12:37 pmкак в "Fold end" отловить подмаску из регекспа в "Fold start"? Ни \1 или $1 не ловят.
Добавлено: обратная ссылка для начала блока в конце блока при использовании флага 2097152. Обратная ссылка \101 соответствует \1 в начале блока, \102 соответствует \2 и т. д. (секции "Folds:" и "Skips:"). Исправлено: ошибка при выходе из программы с разделённым окном.
Added: backreference for fold start in fold end when 2097152 flag is used. Backreference \101 matches \1 in fold start, \102 matches \2 and so on ("Folds:" and "Skips:" sections). Fixed: error when exiting program with a split window.