如何在 Monaco 编辑器中通过编程方式找到文本位置

3

有没有办法通过原始字符串和子字符串的起始和结束索引来计算在 Monaco 编辑器中的位置?

可以使用查找匹配 API进行操作:

editor.getModel().findMatches('sub_string')

我想知道是否还有其他方法,因为可能存在多个匹配项,而API方法并不完全适合我的当前任务。
2个回答

5

FindMatches 对于在 Monaco 编辑器中以编程方式查找文本位置非常有用。

即使只有搜索字符串(没有索引),它也应该找到所有匹配项,不仅返回起始行号和列位置,还应该返回结束点。

editor.getModel().findMatches('sub_string', true, false, false, null, true);

FindMatches示例返回值

在此输入图片描述


3

有一个API方法getPositionAt(见这里)。

const position = editor.getModel().getPositionAt(index);
const { lineNumber, column } = position;

1
链接不再可用。如果您没有索引,只有一个字符串怎么办? - cs_pupil
@cs_pupil 链接已更新,谢谢! 如果您只有一个字符串,则应该能够使用字符串操作找到索引,例如 String.prototype.indexOf() - Pavlo Hryza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接