ACE 编辑器:如何检测更改了哪个块

ACE editor: how to detect which block changed

我正在寻找一种方法来检测我的更改发生在哪个块中。

我正在编写一个小型降价解析器并想要一个简单的 UI,为了保持位置和性能我只希望实时预览更新我实际更改的部分。为此,我需要知道我正在修改 ace 编辑器中的哪个部分。

当我使用 onchange 事件时,事件数据清楚地指定了我的更改发生的位置、行和位置。在我开始编写向上和向下搜索换行符的代码之前,我想问一下 API 到 return 中是否有默认方式 block 改变了。

你会得到这样的东西:

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);
});

ace中没有块的概念。 ace 更改事件给出更改的行和列,您需要跟踪解析器中的位置