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

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -