如何为CodeMirror编辑器应用自动缩进?

Par*_*g A 5 autocomplete editor codemirror

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

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

Eli*_*lka 4

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

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

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

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

  • 您好@Michael,如果您按 Ctrl+A (选择文档中的所有文本)然后按 Shift+Tab,它将重新缩进整个文档。 (2认同)