我为 .NET 模板引擎创建了一个新的语言定义,其中 C# 代码中的部分字符串是标记。
例子:
string templateString = @"{% for name in names %}
Hallo {{ name }}
{% endfor %}";
{% 和 %} 和 {{ 和 }} 之间的所有内容都是模板引擎的一部分,并且应该采用与字符串不同的格式。
我的语言定义如下:
\lstdefinelanguage{dotliquid}[Sharp]{C}
{morecomment=[s][\color{liquidgreen}]{\{\%}{\%\}},
morecomment=[s][\color{liquidgreen}]{\{\{}{\}\}}
}
当我有包含模板代码的普通 C# 代码(不在字符串内)时,它可以正常工作,但在上面的示例中,完整的字符串以一种方式格式化。
有什么方法可以实现这个吗?我尝试了 moredelim 和 deletestring,但没有得到想要的结果。