CodeMirror: только для чтения отдельных строк

могу ли я установить определенное количество строк (sucessive или нет) в режим только для чтения?

например: у меня есть документ, в котором я не хочу, чтобы содержимое некоторых разделов было изменено (например, в Word, где вы можете установить разделы верхнего и Нижнего колонтитулов, и вы можете их заблокировать). Кто-нибудь знает, поддерживает ли CodeMirror эту функцию?

спасибо заранее!

2 ответов


С поддержкой codemirror версии 3 для on и beforeChange был добавлен; просто поймать изменение, прежде чем это произойдет, и отмена должна сделать трюк:

// the line numbers to be "readonly"
var readOnlyLines = [0,1,2,3];

// create the CodeMirror instance
var editor = CodeMirror.fromTextArea(document.getElementById('input'));

// listen for the beforeChange event, test the changed line number, and cancel
editor.on('beforeChange',function(cm,change) {
    if ( ~readOnlyLines.indexOf(change.from.line) ) {
        change.cancel();
    }
});

появилась markText с readOnly опция, которая может отображаться более непосредственно в вашем случае использования. См.http://codemirror.net/doc/manual.html#markText