4

我正在为多种语言(Groovy、Python、Beanshell、XSLT)使用通用 Codemirror 编辑器。根据下拉菜单中选择的语言,我为编辑器设置了相应的模式。

如何为上述语言应用自动缩进?

4

1 回答 1

4

CodeMirror 模式可以为其各自的语言提供缩进,并且大多数都可以(例如python 模式)。这可以通过检查模式的源以检查是否indent(state, textAfter)已实现来验证。从文档:

如果您希望您的模式提供智能缩进(通过 indentLine方法和indentAutoandnewlineAndIndent命令,可以绑定键indent(state, textAfter)),您必须 在模式对象上定义一个方法。

应用定义 的模式indent(state, textAfter),并假设smartIndent设置为true(这是默认值)后,应该透明地提供自动缩进,您无需付出额外的努力。

如果一个模式不支持开箱即用的智能缩进,你可以自己实现它。请参阅文档中有关编写 CodeMirror 模式的部分。

于 2013-04-12T10:35:02.000 回答