如何在ACE编辑器中更新值:javascript

时间:2013-08-10 22:13:18

标签: javascript ace-editor

setValue可能只是设置了编辑器的值。当我有一些diff和我想要的是一些只是将diff添加到当前值的方法时怎么样?这个有API吗?

2 个答案:

答案 0 :(得分:0)

您可以使用

editor.session.insert({row, column}, text)
editor.session.remove({start: {row, column}, end:  {row, column}})
editor.session.doc.replace(range, text) 

单独应用每个编辑,或者您可以获取编辑器的值来修改字符串,并使用修改后的字符串调用setSalue

请参阅https://github.com/ajaxorg/ace/blob/master/lib/ace/document.js#L522

答案 1 :(得分:0)

您可以通过获取会话然后通过获取编辑器的行和列位置插入特定位置来更新编辑器的值。

示例:

如果编辑器现在包含"请选择"

var text = "abc";
var pos = editor.selection.getCursor();
var session = editor.session;

session.insert({
row: session.getLength(), // or you can use "pos.row"
column: pos.column,
}, " " + text + " ");

编辑器现在将:"选择abc"

这将直接更新编辑器的值。