2013-04-12 2 views
2

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

Как применить автоматическое отступы для языков выше?

ответ

2

Режимы CodeMirror могут предоставлять отступы для соответствующих языков, и большинство из них (например, python mode). Это можно проверить, проверив источник режима, чтобы проверить, было ли реализовано indent(state, textAfter). Из документов:

Если вы хотите, чтобы ваш режим, чтобы обеспечить смарт отступов (с помощью метода indentLine и indentAuto и newlineAndIndent команд, в , какие ключи могут быть bound), вы должны определить indent(state, textAfter) метод на вашем режим.

После применения режима, который определяет indent(state, textAfter), и предполагая smartIndent установлен в true (это значение по умолчанию), автоматический отступ не должен быть обеспечен прозрачным, без дополнительных усилий с вашей стороны.

Если режим не поддерживает интеллектуальный отступ из коробки, вы всегда можете реализовать его самостоятельно. См. Раздел в разделе writing CodeMirror modes в документах.

+0

Я увидел, что у python.js есть метод под названием indent (stream, state, type). Я не уверен, что эти параметры называются потоком и состоянием. Не могли бы вы рассказать мне? –

+0

, пожалуйста, снова прочитайте мой ответ. –

+0

Я читал его дважды, но не смог получить солн. Все, что я понял, это python.js содержит код для отступов. Но не уверен, как его использовать. –

Смежные вопросы