Javascript 摩纳哥编辑器:更新插入文本上的光标位置
我正在使用摩纳哥编辑器外的按钮(即“hello world”)向其添加一些文本,然后尝试将光标位置设置到下一行 我试着从编辑器中使用“setPosition({column:x,lineNumber:y})”函数,但它不起作用 我就是这样实施的:Javascript 摩纳哥编辑器:更新插入文本上的光标位置,javascript,typescript,monaco-editor,Javascript,Typescript,Monaco Editor,我正在使用摩纳哥编辑器外的按钮(即“hello world”)向其添加一些文本,然后尝试将光标位置设置到下一行 我试着从编辑器中使用“setPosition({column:x,lineNumber:y})”函数,但它不起作用 我就是这样实施的: insertInPosition(textToInsert:string, cursorPosition:any){ this.editorInstance.setPosition(cursorPosition); var allIns
insertInPosition(textToInsert:string, cursorPosition:any){
this.editorInstance.setPosition(cursorPosition);
var allInstructions = this.instructionSet.split("\n")
allInstructions.splice(cursorPosition.lineNumber - 1, 0, textToInsert);
allInstructions.splice(cursorPosition.lineNumber, 1);
allInstructions = allInstructions.join("\n");
this.editorInstance.setPosition(cursorPosition);
}
我希望在cursorPosition定义的行和列中看到光标,但实际上我看到光标指向第1行和第1列(在编辑器顶部)
我还尝试在onDidChangeModelContent()
方法中使用相同的apieditor.setPosition()
,但它不起作用。当我在控制台中打印编辑器.getPosition()
时,我会收到正确的位置
你知道哪里有问题吗?试试这个:
editor.executeEdits("", [{
range: {
startLineNumber: editor.getPosition().lineNumber,
startColumn: editor.getPosition().column,
endLineNumber: editor.getPosition().lineNumber,
endColumn: editor.getPosition().column
},
text: "hello world\n",
forceMoveMarkers: true
}]);
这将在给定位置插入“hello world\n”
,但不会将光标移动到该位置,至少在我的机器上是这样。