Javascript Ace编辑器使用标记高亮显示线的一部分

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

我试图使用标记部分高亮显示一条线

根据设计,可以创建一个具有4个输入的输入:
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岁