如何在 ace 编辑器中获取对一系列行的 dom 元素的引用



到目前为止,我已经找到了getLine()getAllLines()方法,但它们返回指定行的字符串内容。

let line = this.editor.session.getLine(30);
let lines = this.editor.session.doc.getAllLines()

如何请求某一行的 dom 元素?我想突出显示一组线条,但我想避免创建selectionRange因为我希望选择范围可以免费用于其他内容。

selectionRange = editor.getSelectionRange();
startLine = selectionRange.start.row;
endLine = selectionRange.end.row;
content = editor.session.getTextRange(selectionRange);

我会应用一个更改背景颜色的 css 类。不幸的是,没有<div class="ace_line_group"的id类可以为此目的劫持。我也想避免任何循环所有行的混乱正则表达式,直到找到我正在寻找的行。

嗯...幸运的是,经过更多的谷歌搜索,我找到了答案。它也与 webpack 配合得很好。

    var ace = require('brace');
    var Range = ace.acequire('ace/range').Range;
    editor.session.addMarker(
        new Range(1, 0, 15, 0), "ace_active-line", "fullLine", true
    );

但是,我仍然需要一种方法来获取该 dom 引用,以便在该区域上浮动工具提示。

最新更新