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

时间:2017-10-23 19:32:50

标签: javascript ace-editor

到目前为止,我已找到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类。此外,我想避免任何凌乱的正则表达式循环所有行,直到找到我正在寻找的那些。

1 个答案:

答案 0 :(得分:0)

嗯......幸运的是,经过一些谷歌搜索后,我找到了答案。它也和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引用的方法,以便在该区域上浮动工具提示。