Я использую обычный редактор Codemirror для нескольких языков (Groovy, Python, Beanshell, XSLT). В зависимости от языка, выбранного в раскрывающемся списке, я устанавливаю соответствующий режим для редактора.
Как применить автоматический отступ для перечисленных выше языков?