如何获取Monaco Editor中光标的绝对索引位置?
Monaco Editor 获取光标绝对索引并插入标记文本
要获取光标在文本中的绝对索引位置并插入_CURSOR_,可以借助Monaco Editor模型的getOffsetAt方法,具体操作如下:
- 通过
editor.getPosition()获取光标所在的行列位置对象 - 调用编辑器模型的
getOffsetAt方法,将行列位置转换为文本的绝对偏移索引 - 用得到的索引分割原文本,插入目标标记
完整代码示例:
let editor = /* 你的Monaco Editor实例 */; // 获取编辑器文本 let text = editor.getValue(); // 获取光标位置并转换为绝对索引 let cursorPosition = editor.getPosition(); let indexPos = editor.getModel().getOffsetAt(cursorPosition); // 在光标位置插入标记文本 text = text.substring(0, indexPos) + '_CURSOR_' + text.substring(indexPos);
说明
getOffsetAt方法会自动处理不同换行符(LF/CRLF)的差异,准确计算出光标在整个文本字符串中的绝对偏移位置,无需手动处理换行符的长度问题。
内容的提问来源于stack exchange,提问作者CMTV
相关产品推荐
相关产品推荐

