Мне нужно выделить каждый целый блок кода, который находится внутри фигурных скобок, поэтому я создал правило:
<context id="action-body" style-ref="action-body" extend-parent="true">
<start>{</start>
<end>}</end>
<include>
<context ref="builtin-vars" />
<context ref="keywords" />
</include>
</context>
Он правильно подсвечивает код, ключевые слова и переменные внутри, но, конечно, останавливается, если внутри есть еще одна закрывающая фигурная скобка. Я знаю, что регулярным выражениям нетрудно проверить уровень рекурсии, но может быть gtkSourceView
в синтаксисе есть что-то особенное для подобных случаев?
Это серьезно, потому что язык (на самом деле PegJS), для которого я делаю выделение, может содержать код JavaScript только внутри фигурных скобок, а не снаружи. И я хочу выделить их одним цветом, исключая:)
Связанный: