我正在使用几种语言的常见Codemirror编辑器(Groovy,Python,Beanshell,XSLT)。根据下拉列表中选择的语言,我为编辑器设置了相应的模式。
如何为上述语言应用自动缩进?
答案 0 :(得分:2)
CodeMirror模式可以为各自的语言提供缩进,大多数都是(例如python mode)。这可以通过检查模式的源来检查,以检查是否已实现indent(state, textAfter)
。来自文档:
如果您希望您的模式提供智能缩进(通过
indentLine
方法以及indentAuto
和newlineAndIndent
命令 哪些键可以是bound),您必须定义indent(state, textAfter)
模式对象上的方法。
应用定义indent(state, textAfter)
的模式后,假设smartIndent
设置为true
(这是默认值),应该透明地提供自动缩进,不需要额外的努力侧。
如果模式不支持开箱即用的智能缩进,您可以随时自行实现。请参阅文档中的writing CodeMirror modes部分。