Javascript Ace编辑器使用标记高亮显示线的一部分
我试图使用标记部分高亮显示一条线 根据设计,可以创建一个具有4个输入的输入:Javascript Ace编辑器使用标记高亮显示线的一部分,javascript,ace-editor,Javascript,Ace Editor,我试图使用标记部分高亮显示一条线 根据设计,可以创建一个具有4个输入的输入:startLine、startColumn、endLine、endColumn 我将这样一个范围输入到addmarker方法中,但它只是高亮显示整行 我的代码: var editor = ace.edit("editor"); var Range = ace.require('ace/range').Range; editor.session.addMarker( new Range(startLine
startLine、startColumn、endLine、endColumn
我将这样一个范围输入到addmarker方法中,但它只是高亮显示整行
我的代码:
var editor = ace.edit("editor");
var Range = ace.require('ace/range').Range;
editor.session.addMarker(
new Range(startLine - 1, startPos, stopLine - 1, stopPos),
"highlightError",
"line",
true
);
我认为我的问题可能与addMarker的第三个参数有关,我只找到了表示这应该是“标记类型”,但我找不到可用的标记类型。使用“文本”而不是“行”作为第三个参数
其他支持的类型有“fullLine”和“screenLine”我曾说过,“line”的替代选项是“text”,但设置该选项并不能解决我的问题。我几乎没有突出显示的区域。经过进一步研究,我意识到由
addMarker()
创建的标记没有将其位置设置为绝对。我添加了位置:绝对
到我的highlightError类css,它修复了这个问题,现在突出显示了正确的文本。由于所选答案不够清晰,我在这个答案中添加了一个示例
您需要添加位置:绝对代码>到突出显示类
例如,我正在使用.blue
将选择设置为blue,然后我应该添加位置:绝对代码>到它
var editor=ace.edit(“编辑器”);
编辑:setTheme(“ace/theme/monokai”);
setMode(“ace/mode/javascript”);
var范围=ace要求(“ace/范围”).范围;
editor.selection.setRange(新范围(4,0,6,5));
editor.session.addMarker(新范围(0,0,1,5),“蓝色”,“文本”)代码>
#编辑器{
位置:绝对位置;
排名:0;
右:0;
底部:0;
左:0;
}
蓝先生{
位置:绝对位置;
背景颜色:蓝色;
}
王牌
功能foo(项目){
var x=项目*项目;
返回x;
}
var检验=foo(2);
控制台日志(测试)//应该是4
console.log(foo(1))//应该是1
控制台日志(foo(3))//应该是9岁