Ace编辑器:无法摆脱标记

斯蒂芬·福克

我正在编写一个模拟简单的8位CPU的简单小部件。为此,我滥用Ace编辑器,如您在图像中心看到的那样,是我的“ RAM ”视图。

在此处输入图片说明

我想突出显示与程序计数器的值相对应的行,并且我正在addMarker()这样做。

但是,设置完标记后,似乎无法摆脱该标记。_marker是一个私有成员,拥有最后一个标记集的值。但是由于某些原因removeMarker(_marker)没有效果:

/**
 *
 */
setMarker: function(position) {

    //if(_marker != null) {
        window.cpuRamView.session.removeMarker(_marker);
    //}

    _marker = new window.Range(position, 0, position, _content[position].length);

    window.cpuRamView.session.addMarker(
        _marker, "programCounterLocation", "fullLine"
    );
}

我在这里做错了什么?:/

一个用户

添加标记返回一个ID,而removeMarker需要该ID,因此您可以执行以下操作

var Range = require("ace/range").Range // not the window Range!!
var _range

setMarker = function(position) {

    if(_range != null) {
        window.cpuRamView.session.removeMarker(_range.id);
    }

    _range = new Range(position, 0, position, _content[position].length);

    _range.id = window.cpuRamView.session.addMarker(
        _range, "programCounterLocation", "fullLine"
    );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章