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

How to get reference to dom elements for a range of rows in ace editor?

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

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 class 更改背景颜色。不幸的是,<div class="ace_line_group" 没有我可以为此劫持的 id class。此外,我想避免任何混乱的正则表达式循环所有行,直到找到我正在寻找的行。

好吧...幸运的是,经过更多谷歌搜索后我找到了答案。它也很适合 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 引用,以便在该区域上浮动工具提示。