CodeMirror - 语言自动检测

时间:2012-01-20 15:32:54

标签: javascript jquery syntax-highlighting codemirror

我正在使用独立突出显示(不是编辑器),如下所示: http://codemirror.net/demo/runmode.html

如何在运行荧光笔时自动检测要使用的语言?

这里有一个模式自动转换演示: http://codemirror.net/demo/changemode.html

但我不知道如何调整它以使用Codemirror.runMode()。我希望使用自动检测方案突出显示整个代码块。

1 个答案:

答案 0 :(得分:4)

“changemode”演示只能区分“Scheme”编程语言和“其他所有”,参见

的实现
function looksLikeScheme(code) {
    return !/^\s*\(\s*function\b/.test(code) && /^\s*[;\(]/.test(code);
}

所以这不会自动检测其他编程语言,并且正如演示页面所说,即使是检测Scheme,它也非常粗糙。

不幸的是,从源代码片段中自动检测大量编程语言并不容易(对于小片段,不同的编程语言甚至可能使用完全相同的语法)。但是,在Detecting programming language from a snippet中建议采用合理的方法。