2013-08-10 10 views
1

setValue은 아마 편집기의 값만 설정합니다. 어때 내가 어떤 diff을 가지고 있고 내가 원하는 것은 단지 diff를 현재 값에 추가하는 어떤 방법이다? 이 부분에 API이 있습니까?ACE 편집기에서 값을 업데이트하는 방법은 무엇입니까? javascript

+0

아마도 직접 구현해야합니다. '''getValue''' 그리고 diff를 직접 추가하십시오. 그렇다면'''setValue''' – turnt

+0

어떻게? setValueAtSomePosition과 같은 일을 할 수 있어야합니다. 나는 diff와 위치를 알기 때문에 getValue를 필요로하지 않을 것입니다. 어떤 팁? – algorithmicCoder

답변

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

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를 선택합니다."

관련 문제