如何在 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 引用,以便在该区域上浮动工具提示。
到目前为止我已经找到了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 引用,以便在该区域上浮动工具提示。