CodeMirror: захват клавиши Enter предотвращает разрывы строк
Я использовал опцию extraKeys-CodeMirror 3.12, чтобы определить, когда пользователь начинает новую строку:
extraKeys: {
"Enter": onNewLine
}
OnNewLine () не делает ничего, кроме консоли.бревно(). Теперь Кодемиррор игнорирует этот ключ. Вы больше не можете начать новую линию. Есть ли способ подключить дополнительную функциональность к событию new-line без вмешательства внутренних компонентов CodeMirror? Я просто хочу проанализировать текст недавно закрытой строки.
2 ответа:
Добавьте разрыв строки в конце функции onNewLine. Это должно сработать
function onNewLine(e){ console.log(e); editor.replaceSelection("\n" ,"end"); }
Я обнаружил, что возвращаю CodeMirror.Пас также работает:
function onNewLine(e) { console.log("Enter key was pressed!"); return CodeMirror.Pass; }
Из документации:
Функция обработчика ключей может возвращать CodeMirror.Pass указывает на то, что он решил не обрабатывать ключ, и другим обработчикам (или поведению по умолчанию) следует дать ход.
Это, кажется, работает, даже если обработчик выполняет действие. В моем случае я использовал редактор.функция отступа для отступа текущей строки при нажатии пользователем клавиши enter.