ACE编辑器:如何检测哪个块发生了变化

时间:2016-09-10 09:16:05

标签: ace-editor

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

我正在写一个小的降价解析器并想要一个简单的用户界面,为了保持位置和性能我只希望实时预览更新我实际上正在改变的部分。为了实现这个目的,我需要知道我正在修改的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);
});

1 个答案:

答案 0 :(得分:0)

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