Osc*_*sgc 6 javascript typescript monaco-editor
我使用编辑器外部的按钮(即“hello world”)向摩纳哥编辑器添加一些文本,然后尝试将光标位置设置到下一行。
我尝试使用编辑器中的“setPosition({column:x, lineNumber:y})”函数,但它不起作用。
这就是我的实现方式:
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);
}
Run Code Online (Sandbox Code Playgroud)
我希望看到光标位于由cursorPosition 定义的行和列中,但实际上我看到光标指向第1 行和第1 列(在编辑器的顶部)。
我也尝试editor.setPosition()在onDidChangeModelContent()方法中使用相同的 api,但它不起作用。当我在控制台中打印时,editor.getPosition()我收到了正确的位置。
知道可能出什么问题吗?
小智 3
this.editor?.trigger('keyboard', 'type', {text: 'value'});
this.editor?.focus();
const position: any = this.editor?.getPosition();
this.editor?.setPosition(position);
Run Code Online (Sandbox Code Playgroud)