有没有人为codemirror创建了'htmlmixed'+'Velocity'模式?或者任何人都可以建议如何实现这一目标?
答案 0 :(得分:2)
我可以使用overlay.js插件轻松实现这一点:
CodeMirror.defineMode("velocityOverlay", function(config, parserConfig) {
return CodeMirror.overlayMode(CodeMirror.getMode(config, "htmlmixed"), CodeMirror.getMode(config, "velocity"));
});
然后在编辑器中将mode选项设置为" velocityOverlay"你完成了。
然而,速度模式突出显示像<,>等字符作为速度运算符,您可能不需要它,因为它会使您的html高亮显示看起来很难看。为了解决这个问题,我更改了velocity.js中的以下代码行:
var isOperatorChar = /[+\-*&%=<>!?:\/|]/;
到
var isOperatorChar = /[+\*&%=?:|]/;
答案 1 :(得分:1)
如果您要使用特定字符串来切换模式,则可以使用mode-multiplexer获取某个位置。但看起来Velocity需要更先进的东西。所以你必须编写自己的超级模式,类似于htmlmixed模式所做的,它可以在模式之间智能切换。
答案 2 :(得分:0)
我认为你不能混合CodeMirror: Velocity mode 和CodeMirror: HTML mixed mode. 模式是以特定方式执行操作的方式。你怎么能混淆两种模式?我不认为有可能。