Я ищу способ обнаружения, в котором произошли изменения.Редактор ACE: как определить, какой блок был изменен
Я пишу небольшой парсер разметки и хочу простой пользовательский интерфейс, чтобы сохранить позиции и производительность. Мне нужен только предварительный просмотр в реальном времени, чтобы обновить часть, которую я фактически меняю. Для этого мне нужно знать, какую часть в редакторе туза я изменяю.
Когда я использую событие onchange
, данные события аккуратно определяют, где произошло мое изменение, в какой строке и позиции. Прежде чем я начну писать код, который ищет вверх и вниз для разрывов строк, я хотел спросить, есть ли способ API по умолчанию для возврата, который изменил блок.
Вы получите что-то вроде этого:
fs.readFile(__dirname + '/example.md', 'utf8', function(err, text) {
session = ace.createEditSession(text);
session.on('change', function(e, f) {
// getChangedParagraph does not exist and needs to return the
// actual block which changed.
var changedText = getChangedParagraph();
parseTheText(changedText);
});
editor.setSession(session);
});
Благодарим за ответ. Вы только пошлите изменение в парсер? Или вы можете отправить весь текст, проанализировать его и объединить ваши АСТ? Или, может быть, есть лучший способ? –