我正在编写一个模拟简单的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] 删除。
我来说两句