为了实现拖拽素材内容可以自动添加到正在编辑的文本中,需要获取光标所在位置,加入内容后,光标要能够恢复到正确位置中
代码如下:
// manacoEditor 为 实例对象
// 1 获取光标位置
const position = manacoEditor.getPosition()
const insertText = '要插入的内容'
// 2 插入
manacoEditor.executeEdits('', [
{
range: new manaco.Range(position.lineNumber,
position.column,
position.lineNumber,
position.column),
text: insertText
}
])
// 3 设置新的光标位置
manacoEditor.setPosition(position.lineNumber, position.column + insertText.length)
// 4 聚焦
manacoEditor.focus()
如果单纯只是 使用setPosition(),是无法回显闪动的光标的,因为拖拽的时候 编辑器已经失去了焦点,所以还要加一步 focus(),保证编辑器重新聚焦。