javascript - ACE EDITOR Find Text, select row and replace text -
javascript - ACE EDITOR Find Text, select row and replace text -
in ace editor want find text, select row , replace text. can find text (using own tags find them). , works, row (line) number, doing that:
editor.find('needle',{ backwards: true, wrap: true, casesensitive: true, range: null, wholeword: true, regexp: false }) editor.$search.set({ needle: /(start_#d1_savepos)/ }); var found = editor.$search.find(editor.getsession()); var range = require('ace/range').range, mine = new range(found.start.row+1, found.start.column-1, found.end.row+1, found.end.column); //find in textfile own tagname "start_#d1_savepos" var d1savepos = (editor.session.gettextrange(mine)) ; // read linenumber var rowofd1savepos = (mine+1) ; // next line number, after "start_#d1_savepos" - need , in textfile r13=0 // rewrite r13 value imputtext var newd1savepos = document.getelementbyid("highestbttxt").value; //get value inputfield d1savepos = d1savepos.replace(/r13=0/, "r13=" + newd1savepos); //replace zero-value r13 new value // set editors row
tryed create row selection with, because in "rowofd1savepos" readed linenumber stored:
editor.selection.movecursortoposition(rowofd1savepos) ;
but woll not work. f works want replace row value "d1savepos"
who can help? tryed figure out day , many searches, no results me.
update 25.10.14
this perfect working solution:
editor.find('needle',{ backwards: true, wrap: true, casesensitive: true, range: null, wholeword: true, regexp: false }) editor.$search.set({ needle: /(start_#d1_savepos)/ }); var found = editor.$search.find(editor.getsession()); var range = require('ace/range').range, row = new range(found.start.row+1, found.start.column-1, found.end.row+1, found.end.column); //find coordinates, after line "start_#d1_savepos" var d1savepos = (editor.session.gettextrange(row)) ; //read text in row // rewrite var newd1savepos = document.getelementbyid("highestbttxt").value; //get value input field d1savepos = d1savepos.replace(/r13=0/, "r13=" + newd1savepos); //re write r-parameter inputvalue // write in editor editor.selection.movecursortoposition({row: row, column: 0}) ; //mark line editor.session.replace(new range(row, 0, row, number.max_value), d1savepos); //write
movecursortoposition
takes position object row , column editor.selection.movecursortoposition({row: row, column: 0}) ;
to replace text utilize editor.session.replace(range, text)
this
var range = editor.find('needle',{ wrap: true, casesensitive: true, wholeword: true, regexp: false, preventscroll: true // not alter selection }) range.start.column = 0 range.end.column = number.max_value editor.session.replace(range, "x" + editor.session.getline(range.start.row) + "x") editor.selection.setrange(range)
note: in illustration mine + 1
string, , see why editor.selection.movecursortoposition(rowofd1savepos);
doesn't work if looked functions source browser devtools
javascript ace-editor
Comments
Post a Comment