如何在 ACE 编辑器中突出显示某行?

Posted

技术标签:

【中文标题】如何在 ACE 编辑器中突出显示某行?【英文标题】:How to highlight a certain line in ACE editor? 【发布时间】:2015-02-16 08:54:54 【问题描述】:

我正在为我的网站使用 ACE 编辑器。我需要在编辑器中选择/突出显示某些行。但是当它是一个大代码时,ACE 编辑器会显示一些错误,例如,当它向下滚动时行号更改并且突出显示的行号与我想要突出显示的行号不同。我已经搜索并找到了这个Problem. 但实际上我无法理解它。任何人都可以举一些在ACE编辑器中突出显示一行的例子吗? 这是我当前的代码:

var aceLines = document.getElementsByClassName("ace_line");
var gutters = document.getElementsByClassName("ace_gutter-cell");
var gutLineNo = parseInt(gutters[0].innerhtml)-1;

if(count1 != 0)
        aceLines[arNum[count]-gutLineNo].style.backgroundColor = "green";
        aceLines[arNum[count1]-gutLineNo].style.backgroundColor = "black";

    else
        aceLines[arNum[count]-gutLineNo].style.backgroundColor = "green";
    

【问题讨论】:

【参考方案1】:

不要尝试直接修改编辑器 dom。 Ace 只为可见线创建 dom 节点,并且 你需要像How can I highlight multiple lines with Ace?中描述的那样使用 setMarker

首先创建一个设置背景的css类

.myMarker 
  position:absolute;
  background:rgba(100,200,100,0.5);
  z-index:20

然后添加一个标记

var Range = ace.require('ace/range').Range;
editor.session.addMarker(new Range(from, 0, to, 1), "myMarker", "fullLine");

这里的fromto 是您要突出显示的行数

【讨论】:

以上是关于如何在 ACE 编辑器中突出显示某行?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ACE 编辑器突出显示代码?

Ace Editor 选择的文本未正确突出显示

如何在文本突出显示期间保留语法突出显示

如何在 Visual Studio 中突出显示文本中出现的搜索词?

如何在 c++ 语言的 Visual Studio 代码编辑器中突出显示错误?

在 Atom 编辑器中突出显示 HTML 中的 javascript