摩纳哥编辑器:在插入的文本上更新光标位置

时间:2019-04-30 20:10:07

标签: 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);
}

我希望在cursorPosition定义的行和列中看到光标,但是实际上我看到光标指向第1行和第1列(在编辑器顶部)。

我还尝试在editor.setPosition()方法内使用相同的api onDidChangeModelContent(),但是它不起作用。当我在控制台上打印editor.getPosition()时,我会收到正确的位置。

有什么问题的想法吗?

2 个答案:

答案 0 :(得分:0)

尝试一下:

SELECT country_name as Country,
       SUM(COUNT(*)) OVER (PARTITION BY country_name) as country_cnt,
       province,
       Count(*) as province_count
FROM country_list
GROUP BY country_name, province
ORDER BY Country DESC, Province DESC;

答案 1 :(得分:0)

this.editor?.trigger('keyboard', 'type', {text: 'value'});
this.editor?.focus();
const position: any  = this.editor?.getPosition();
this.editor?.setPosition(position);