Vim类Yacc语言语法文件:嵌套大括号高亮异常问题求助
类Yacc语言Vim语法文件的嵌套大括号高亮问题
我正在为类Yacc语言编写Vim语法文件,该语言的大括号代码块中会嵌套另一种语言,且两种语言都使用大括号作为语法的一部分。简化代码示例如下:
meta lang { lang { meta lang } lang } meta lang
其中meta是外部语言的关键字,lang是内部语言的关键字,这些关键字在对方语言的语境中不应被高亮。
预期的高亮效果(大写表示高亮的关键字,小写表示不高亮):
META lang { LANG { meta LANG } LANG } META lang
但我编写的语法文件产生了错误的高亮,无法正确识别块的结束位置:
META lang { LANG { meta LANG } LANG } meta LANG
我的语法文件内容如下:
" .vim/syntax/mylang.vim sy cluster lang contains=langKeyword,langBlock sy keyword metaKeyword meta sy keyword langKeyword lang contained sy region metaBlock start="{" end="}" contains=@lang sy region langBlock start="{" end="}" contains=@lang contained hi link metaKeyword Constant hi link langKeyword Keyword
请问我哪里出错了?
内容的提问来源于stack exchange,提问作者Li-yao Xia
相关产品推荐
相关产品推荐

