You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2013/07/11 13:55:30 UTC
[16/22] refactoring theme-mgt components,
service stub and changing service stub parent name to
stratos-service-stubs-parent
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/manage_area.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/manage_area.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/manage_area.js
new file mode 100644
index 0000000..e10c5e9
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/manage_area.js
@@ -0,0 +1,623 @@
+ EditArea.prototype.focus = function() {
+ this.textarea.focus();
+ this.textareaFocused=true;
+ };
+
+
+ EditArea.prototype.check_line_selection= function(timer_checkup){
+ var changes, infos, new_top, new_width,i;
+
+ var t1=t2=t2_1=t3=tLines=tend= new Date().getTime();
+ // l'editeur n'existe plus => on quitte
+ if(!editAreas[this.id])
+ return false;
+
+ if(!this.smooth_selection && !this.do_highlight)
+ {
+ //do nothing
+ }
+ else if(this.textareaFocused && editAreas[this.id]["displayed"]==true && this.isResizing==false)
+ {
+ infos = this.get_selection_infos();
+ changes = this.checkTextEvolution( typeof( this.last_selection['full_text'] ) == 'undefined' ? '' : this.last_selection['full_text'], infos['full_text'] );
+
+ t2= new Date().getTime();
+
+ // if selection change
+ if(this.last_selection["line_start"] != infos["line_start"] || this.last_selection["line_nb"] != infos["line_nb"] || infos["full_text"] != this.last_selection["full_text"] || this.reload_highlight || this.last_selection["selectionStart"] != infos["selectionStart"] || this.last_selection["selectionEnd"] != infos["selectionEnd"] || !timer_checkup )
+ {
+ // move and adjust text selection elements
+ new_top = this.getLinePosTop( infos["line_start"] );
+ new_width = Math.max(this.textarea.scrollWidth, this.container.clientWidth -50);
+ this.selection_field.style.top=this.selection_field_text.style.top=new_top+"px";
+ if(!this.settings['word_wrap']){
+ this.selection_field.style.width=this.selection_field_text.style.width=this.test_font_size.style.width=new_width+"px";
+ }
+
+ // usefull? => _$("cursor_pos").style.top=new_top+"px";
+
+ if(this.do_highlight==true)
+ {
+ // fill selection elements
+ var curr_text = infos["full_text"].split("\n");
+ var content = "";
+ //alert("length: "+curr_text.length+ " i: "+ Math.max(0,infos["line_start"]-1)+ " end: "+Math.min(curr_text.length, infos["line_start"]+infos["line_nb"]-1)+ " line: "+infos["line_start"]+" [0]: "+curr_text[0]+" [1]: "+curr_text[1]);
+ var start = Math.max(0,infos["line_start"]-1);
+ var end = Math.min(curr_text.length, infos["line_start"]+infos["line_nb"]-1);
+
+ //curr_text[start]= curr_text[start].substr(0,infos["curr_pos"]-1) +"¤_overline_¤"+ curr_text[start].substr(infos["curr_pos"]-1);
+ for(i=start; i< end; i++){
+ content+= curr_text[i]+"\n";
+ }
+
+ // add special chars arround selected characters
+ selLength = infos['selectionEnd'] - infos['selectionStart'];
+ content = content.substr( 0, infos["curr_pos"] - 1 ) + "\r\r" + content.substr( infos["curr_pos"] - 1, selLength ) + "\r\r" + content.substr( infos["curr_pos"] - 1 + selLength );
+ content = '<span>'+ content.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace("\r\r", '</span><strong>').replace("\r\r", '</strong><span>') +'</span>';
+
+ if( this.isIE || ( this.isOpera && this.isOpera < 9.6 ) ) {
+ this.selection_field.innerHTML= "<pre>" + content.replace(/^\r?\n/, "<br>") + "</pre>";
+ } else {
+ this.selection_field.innerHTML= content;
+ }
+ this.selection_field_text.innerHTML = this.selection_field.innerHTML;
+ t2_1 = new Date().getTime();
+ // check if we need to update the highlighted background
+ if(this.reload_highlight || (infos["full_text"] != this.last_text_to_highlight && (this.last_selection["line_start"]!=infos["line_start"] || this.show_line_colors || this.settings['word_wrap'] || this.last_selection["line_nb"]!=infos["line_nb"] || this.last_selection["nb_line"]!=infos["nb_line"]) ) )
+ {
+ this.maj_highlight(infos);
+ }
+ }
+ }
+ t3= new Date().getTime();
+
+ // manage line heights
+ if( this.settings['word_wrap'] && infos["full_text"] != this.last_selection["full_text"])
+ {
+ // refresh only 1 line if text change concern only one line and that the total line number has not changed
+ if( changes.newText.split("\n").length == 1 && this.last_selection['nb_line'] && infos['nb_line'] == this.last_selection['nb_line'] )
+ {
+ this.fixLinesHeight( infos['full_text'], changes.lineStart, changes.lineStart );
+ }
+ else
+ {
+ this.fixLinesHeight( infos['full_text'], changes.lineStart, -1 );
+ }
+ }
+
+ tLines= new Date().getTime();
+ // manage bracket finding
+ if( infos["line_start"] != this.last_selection["line_start"] || infos["curr_pos"] != this.last_selection["curr_pos"] || infos["full_text"].length!=this.last_selection["full_text"].length || this.reload_highlight || !timer_checkup )
+ {
+ // move _cursor_pos
+ var selec_char= infos["curr_line"].charAt(infos["curr_pos"]-1);
+ var no_real_move=true;
+ if(infos["line_nb"]==1 && (this.assocBracket[selec_char] || this.revertAssocBracket[selec_char]) ){
+
+ no_real_move=false;
+ //findEndBracket(infos["line_start"], infos["curr_pos"], selec_char);
+ if(this.findEndBracket(infos, selec_char) === true){
+ _$("end_bracket").style.visibility ="visible";
+ _$("cursor_pos").style.visibility ="visible";
+ _$("cursor_pos").innerHTML = selec_char;
+ _$("end_bracket").innerHTML = (this.assocBracket[selec_char] || this.revertAssocBracket[selec_char]);
+ }else{
+ _$("end_bracket").style.visibility ="hidden";
+ _$("cursor_pos").style.visibility ="hidden";
+ }
+ }else{
+ _$("cursor_pos").style.visibility ="hidden";
+ _$("end_bracket").style.visibility ="hidden";
+ }
+ //alert("move cursor");
+ this.displayToCursorPosition("cursor_pos", infos["line_start"], infos["curr_pos"]-1, infos["curr_line"], no_real_move);
+ if(infos["line_nb"]==1 && infos["line_start"]!=this.last_selection["line_start"])
+ this.scroll_to_view();
+ }
+ this.last_selection=infos;
+ }
+
+ tend= new Date().getTime();
+ //if( (tend-t1) > 7 )
+ // console.log( "tps total: "+ (tend-t1) + " tps get_infos: "+ (t2-t1)+ " tps selec: "+ (t2_1-t2)+ " tps highlight: "+ (t3-t2_1) +" tps lines: "+ (tLines-t3) +" tps cursor+lines: "+ (tend-tLines)+" \n" );
+
+
+ if(timer_checkup){
+ setTimeout("editArea.check_line_selection(true)", this.check_line_selection_timer);
+ }
+ };
+
+
+ EditArea.prototype.get_selection_infos= function(){
+ var sel={}, start, end, len, str;
+
+ this.getIESelection();
+ start = this.textarea.selectionStart;
+ end = this.textarea.selectionEnd;
+
+ if( this.last_selection["selectionStart"] == start && this.last_selection["selectionEnd"] == end && this.last_selection["full_text"] == this.textarea.value )
+ {
+ return this.last_selection;
+ }
+
+ if(this.tabulation!="\t" && this.textarea.value.indexOf("\t")!=-1)
+ { // can append only after copy/paste
+ len = this.textarea.value.length;
+ this.textarea.value = this.replace_tab(this.textarea.value);
+ start = end = start+(this.textarea.value.length-len);
+ this.area_select( start, 0 );
+ }
+
+ sel["selectionStart"] = start;
+ sel["selectionEnd"] = end;
+ sel["full_text"] = this.textarea.value;
+ sel["line_start"] = 1;
+ sel["line_nb"] = 1;
+ sel["curr_pos"] = 0;
+ sel["curr_line"] = "";
+ sel["indexOfCursor"] = 0;
+ sel["selec_direction"] = this.last_selection["selec_direction"];
+
+ //return sel;
+ var splitTab= sel["full_text"].split("\n");
+ var nbLine = Math.max(0, splitTab.length);
+ var nbChar = Math.max(0, sel["full_text"].length - (nbLine - 1)); // (remove \n caracters from the count)
+ if( sel["full_text"].indexOf("\r") != -1 )
+ nbChar = nbChar - ( nbLine - 1 ); // (remove \r caracters from the count)
+ sel["nb_line"] = nbLine;
+ sel["nb_char"] = nbChar;
+
+ if(start>0){
+ str = sel["full_text"].substr(0,start);
+ sel["curr_pos"] = start - str.lastIndexOf("\n");
+ sel["line_start"] = Math.max(1, str.split("\n").length);
+ }else{
+ sel["curr_pos"]=1;
+ }
+ if(end>start){
+ sel["line_nb"]=sel["full_text"].substring(start,end).split("\n").length;
+ }
+ sel["indexOfCursor"]=start;
+ sel["curr_line"]=splitTab[Math.max(0,sel["line_start"]-1)];
+
+ // determine in which direction the selection grow
+ if(sel["selectionStart"] == this.last_selection["selectionStart"]){
+ if(sel["selectionEnd"]>this.last_selection["selectionEnd"])
+ sel["selec_direction"]= "down";
+ else if(sel["selectionEnd"] == this.last_selection["selectionStart"])
+ sel["selec_direction"]= this.last_selection["selec_direction"];
+ }else if(sel["selectionStart"] == this.last_selection["selectionEnd"] && sel["selectionEnd"]>this.last_selection["selectionEnd"]){
+ sel["selec_direction"]= "down";
+ }else{
+ sel["selec_direction"]= "up";
+ }
+
+ _$("nbLine").innerHTML = nbLine;
+ _$("nbChar").innerHTML = nbChar;
+ _$("linePos").innerHTML = sel["line_start"];
+ _$("currPos").innerHTML = sel["curr_pos"];
+
+ return sel;
+ };
+
+ // set IE position in Firefox mode (textarea.selectionStart and textarea.selectionEnd)
+ EditArea.prototype.getIESelection= function(){
+ var selectionStart, selectionEnd, range, stored_range;
+
+ if( !this.isIE )
+ return false;
+
+ // make it work as nowrap mode (easier for range manipulation with lineHeight)
+ if( this.settings['word_wrap'] )
+ this.textarea.wrap='off';
+
+ try{
+ range = document.selection.createRange();
+ stored_range = range.duplicate();
+ stored_range.moveToElementText( this.textarea );
+ stored_range.setEndPoint( 'EndToEnd', range );
+ if( stored_range.parentElement() != this.textarea )
+ throw "invalid focus";
+
+ // the range don't take care of empty lines in the end of the selection
+ var scrollTop = this.result.scrollTop + document.body.scrollTop;
+ var relative_top= range.offsetTop - parent.calculeOffsetTop(this.textarea) + scrollTop;
+ var line_start = Math.round((relative_top / this.lineHeight) +1);
+ var line_nb = Math.round( range.boundingHeight / this.lineHeight );
+
+ selectionStart = stored_range.text.length - range.text.length;
+ selectionStart += ( line_start - this.textarea.value.substr(0, selectionStart).split("\n").length)*2; // count missing empty \r to the selection
+ selectionStart -= ( line_start - this.textarea.value.substr(0, selectionStart).split("\n").length ) * 2;
+
+ selectionEnd = selectionStart + range.text.length;
+ selectionEnd += (line_start + line_nb - 1 - this.textarea.value.substr(0, selectionEnd ).split("\n").length)*2;
+
+ this.textarea.selectionStart = selectionStart;
+ this.textarea.selectionEnd = selectionEnd;
+ }
+ catch(e){}
+
+ // restore wrap mode
+ if( this.settings['word_wrap'] )
+ this.textarea.wrap='soft';
+ };
+
+ // select the text for IE (and take care of \r caracters)
+ EditArea.prototype.setIESelection= function(){
+ var a = this.textarea, nbLineStart, nbLineEnd, range;
+
+ if( !this.isIE )
+ return false;
+
+ nbLineStart = a.value.substr(0, a.selectionStart).split("\n").length - 1;
+ nbLineEnd = a.value.substr(0, a.selectionEnd).split("\n").length - 1;
+ range = document.selection.createRange();
+ range.moveToElementText( a );
+ range.setEndPoint( 'EndToStart', range );
+
+ range.moveStart('character', a.selectionStart - nbLineStart);
+ range.moveEnd('character', a.selectionEnd - nbLineEnd - (a.selectionStart - nbLineStart) );
+ range.select();
+ };
+
+
+
+ EditArea.prototype.checkTextEvolution=function(lastText,newText){
+ // ch will contain changes datas
+ var ch={},baseStep=200, cpt=0, end, step,tStart=new Date().getTime();
+
+ end = Math.min(newText.length, lastText.length);
+ step = baseStep;
+ // find how many chars are similar at the begin of the text
+ while( cpt<end && step>=1 ){
+ if(lastText.substr(cpt, step) == newText.substr(cpt, step)){
+ cpt+= step;
+ }else{
+ step= Math.floor(step/2);
+ }
+ }
+
+ ch.posStart = cpt;
+ ch.lineStart= newText.substr(0, ch.posStart).split("\n").length -1;
+
+ cpt_last = lastText.length;
+ cpt = newText.length;
+ step = baseStep;
+ // find how many chars are similar at the end of the text
+ while( cpt>=0 && cpt_last>=0 && step>=1 ){
+ if(lastText.substr(cpt_last-step, step) == newText.substr(cpt-step, step)){
+ cpt-= step;
+ cpt_last-= step;
+ }else{
+ step= Math.floor(step/2);
+ }
+ }
+
+ ch.posNewEnd = cpt;
+ ch.posLastEnd = cpt_last;
+ if(ch.posNewEnd<=ch.posStart){
+ if(lastText.length < newText.length){
+ ch.posNewEnd= ch.posStart + newText.length - lastText.length;
+ ch.posLastEnd= ch.posStart;
+ }else{
+ ch.posLastEnd= ch.posStart + lastText.length - newText.length;
+ ch.posNewEnd= ch.posStart;
+ }
+ }
+ ch.newText = newText.substring(ch.posStart, ch.posNewEnd);
+ ch.lastText = lastText.substring(ch.posStart, ch.posLastEnd);
+
+ ch.lineNewEnd = newText.substr(0, ch.posNewEnd).split("\n").length -1;
+ ch.lineLastEnd = lastText.substr(0, ch.posLastEnd).split("\n").length -1;
+
+ ch.newTextLine = newText.split("\n").slice(ch.lineStart, ch.lineNewEnd+1).join("\n");
+ ch.lastTextLine = lastText.split("\n").slice(ch.lineStart, ch.lineLastEnd+1).join("\n");
+ //console.log( ch );
+ return ch;
+ };
+
+ EditArea.prototype.tab_selection= function(){
+ if(this.is_tabbing)
+ return;
+ this.is_tabbing=true;
+ //infos=getSelectionInfos();
+ //if( document.selection ){
+ this.getIESelection();
+ /* Insertion du code de formatage */
+ var start = this.textarea.selectionStart;
+ var end = this.textarea.selectionEnd;
+ var insText = this.textarea.value.substring(start, end);
+
+ /* Insert tabulation and ajust cursor position */
+ var pos_start=start;
+ var pos_end=end;
+ if (insText.length == 0) {
+ // if only one line selected
+ this.textarea.value = this.textarea.value.substr(0, start) + this.tabulation + this.textarea.value.substr(end);
+ pos_start = start + this.tabulation.length;
+ pos_end=pos_start;
+ } else {
+ start= Math.max(0, this.textarea.value.substr(0, start).lastIndexOf("\n")+1);
+ endText=this.textarea.value.substr(end);
+ startText=this.textarea.value.substr(0, start);
+ tmp= this.textarea.value.substring(start, end).split("\n");
+ insText= this.tabulation+tmp.join("\n"+this.tabulation);
+ this.textarea.value = startText + insText + endText;
+ pos_start = start;
+ pos_end= this.textarea.value.indexOf("\n", startText.length + insText.length);
+ if(pos_end==-1)
+ pos_end=this.textarea.value.length;
+ //pos = start + repdeb.length + insText.length + ;
+ }
+ this.textarea.selectionStart = pos_start;
+ this.textarea.selectionEnd = pos_end;
+
+ //if( document.selection ){
+ if(this.isIE)
+ {
+ this.setIESelection();
+ setTimeout("editArea.is_tabbing=false;", 100); // IE can't accept to make 2 tabulation without a little break between both
+ }
+ else
+ {
+ this.is_tabbing=false;
+ }
+
+ };
+
+ EditArea.prototype.invert_tab_selection= function(){
+ var t=this, a=this.textarea;
+ if(t.is_tabbing)
+ return;
+ t.is_tabbing=true;
+ //infos=getSelectionInfos();
+ //if( document.selection ){
+ t.getIESelection();
+
+ var start = a.selectionStart;
+ var end = a.selectionEnd;
+ var insText = a.value.substring(start, end);
+
+ /* Tab remove and cursor seleciton adjust */
+ var pos_start=start;
+ var pos_end=end;
+ if (insText.length == 0) {
+ if(a.value.substring(start-t.tabulation.length, start)==t.tabulation)
+ {
+ a.value = a.value.substr(0, start-t.tabulation.length) + a.value.substr(end);
+ pos_start = Math.max(0, start-t.tabulation.length);
+ pos_end = pos_start;
+ }
+ /*
+ a.value = a.value.substr(0, start) + t.tabulation + insText + a.value.substr(end);
+ pos_start = start + t.tabulation.length;
+ pos_end=pos_start;*/
+ } else {
+ start = a.value.substr(0, start).lastIndexOf("\n")+1;
+ endText = a.value.substr(end);
+ startText = a.value.substr(0, start);
+ tmp = a.value.substring(start, end).split("\n");
+ insText = "";
+ for(i=0; i<tmp.length; i++){
+ for(j=0; j<t.tab_nb_char; j++){
+ if(tmp[i].charAt(0)=="\t"){
+ tmp[i]=tmp[i].substr(1);
+ j=t.tab_nb_char;
+ }else if(tmp[i].charAt(0)==" ")
+ tmp[i]=tmp[i].substr(1);
+ }
+ insText+=tmp[i];
+ if(i<tmp.length-1)
+ insText+="\n";
+ }
+ //insText+="_";
+ a.value = startText + insText + endText;
+ pos_start = start;
+ pos_end = a.value.indexOf("\n", startText.length + insText.length);
+ if(pos_end==-1)
+ pos_end=a.value.length;
+ //pos = start + repdeb.length + insText.length + ;
+ }
+ a.selectionStart = pos_start;
+ a.selectionEnd = pos_end;
+
+ //if( document.selection ){
+ if(t.isIE){
+ // select the text for IE
+ t.setIESelection();
+ setTimeout("editArea.is_tabbing=false;", 100); // IE can accept to make 2 tabulation without a little break between both
+ }else
+ t.is_tabbing=false;
+ };
+
+ EditArea.prototype.press_enter= function(){
+ if(!this.smooth_selection)
+ return false;
+ this.getIESelection();
+ var scrollTop= this.result.scrollTop;
+ var scrollLeft= this.result.scrollLeft;
+ var start=this.textarea.selectionStart;
+ var end= this.textarea.selectionEnd;
+ var start_last_line= Math.max(0 , this.textarea.value.substring(0, start).lastIndexOf("\n") + 1 );
+ var begin_line= this.textarea.value.substring(start_last_line, start).replace(/^([ \t]*).*/gm, "$1");
+ var lineStart = this.textarea.value.substring(0, start).split("\n").length;
+ if(begin_line=="\n" || begin_line=="\r" || begin_line.length==0)
+ {
+ return false;
+ }
+
+ if(this.isIE || ( this.isOpera && this.isOpera < 9.6 ) ){
+ begin_line="\r\n"+ begin_line;
+ }else{
+ begin_line="\n"+ begin_line;
+ }
+ //alert(start_last_line+" strat: "+start +"\n"+this.textarea.value.substring(start_last_line, start)+"\n_"+begin_line+"_")
+ this.textarea.value= this.textarea.value.substring(0, start) + begin_line + this.textarea.value.substring(end);
+
+ this.area_select(start+ begin_line.length ,0);
+ // during this process IE scroll back to the top of the textarea
+ if(this.isIE){
+ this.result.scrollTop = scrollTop;
+ this.result.scrollLeft = scrollLeft;
+ }
+ return true;
+
+ };
+
+ EditArea.prototype.findEndBracket= function(infos, bracket){
+
+ var start=infos["indexOfCursor"];
+ var normal_order=true;
+ //curr_text=infos["full_text"].split("\n");
+ if(this.assocBracket[bracket])
+ endBracket=this.assocBracket[bracket];
+ else if(this.revertAssocBracket[bracket]){
+ endBracket=this.revertAssocBracket[bracket];
+ normal_order=false;
+ }
+ var end=-1;
+ var nbBracketOpen=0;
+
+ for(var i=start; i<infos["full_text"].length && i>=0; ){
+ if(infos["full_text"].charAt(i)==endBracket){
+ nbBracketOpen--;
+ if(nbBracketOpen<=0){
+ //i=infos["full_text"].length;
+ end=i;
+ break;
+ }
+ }else if(infos["full_text"].charAt(i)==bracket)
+ nbBracketOpen++;
+ if(normal_order)
+ i++;
+ else
+ i--;
+ }
+
+ //end=infos["full_text"].indexOf("}", start);
+ if(end==-1)
+ return false;
+ var endLastLine=infos["full_text"].substr(0, end).lastIndexOf("\n");
+ if(endLastLine==-1)
+ line=1;
+ else
+ line= infos["full_text"].substr(0, endLastLine).split("\n").length + 1;
+
+ var curPos= end - endLastLine - 1;
+ var endLineLength = infos["full_text"].substring(end).split("\n")[0].length;
+ this.displayToCursorPosition("end_bracket", line, curPos, infos["full_text"].substring(endLastLine +1, end + endLineLength));
+ return true;
+ };
+
+ EditArea.prototype.displayToCursorPosition= function(id, start_line, cur_pos, lineContent, no_real_move){
+ var elem,dest,content,posLeft=0,posTop,fixPadding,topOffset,endElem;
+
+ elem = this.test_font_size;
+ dest = _$(id);
+ content = "<span id='test_font_size_inner'>"+lineContent.substr(0, cur_pos).replace(/&/g,"&").replace(/</g,"<")+"</span><span id='endTestFont'>"+lineContent.substr(cur_pos).replace(/&/g,"&").replace(/</g,"<")+"</span>";
+ if( this.isIE || ( this.isOpera && this.isOpera < 9.6 ) ) {
+ elem.innerHTML= "<pre>" + content.replace(/^\r?\n/, "<br>") + "</pre>";
+ } else {
+ elem.innerHTML= content;
+ }
+
+
+ endElem = _$('endTestFont');
+ topOffset = endElem.offsetTop;
+ fixPadding = parseInt( this.content_highlight.style.paddingLeft.replace("px", "") );
+ posLeft = 45 + endElem.offsetLeft + ( !isNaN( fixPadding ) && topOffset > 0 ? fixPadding : 0 );
+ posTop = this.getLinePosTop( start_line ) + topOffset;// + Math.floor( ( endElem.offsetHeight - 1 ) / this.lineHeight ) * this.lineHeight;
+
+ // detect the case where the span start on a line but has no display on it
+ if( this.isIE && cur_pos > 0 && endElem.offsetLeft == 0 )
+ {
+ posTop += this.lineHeight;
+ }
+ if(no_real_move!=true){ // when the cursor is hidden no need to move him
+ dest.style.top=posTop+"px";
+ dest.style.left=posLeft+"px";
+ }
+ // usefull for smarter scroll
+ dest.cursor_top=posTop;
+ dest.cursor_left=posLeft;
+ // _$(id).style.marginLeft=posLeft+"px";
+ };
+
+ EditArea.prototype.getLinePosTop= function(start_line){
+ var elem= _$('line_'+ start_line), posTop=0;
+ if( elem )
+ posTop = elem.offsetTop;
+ else
+ posTop = this.lineHeight * (start_line-1);
+ return posTop;
+ };
+
+
+ // return the dislpayed height of a text (take word-wrap into account)
+ EditArea.prototype.getTextHeight= function(text){
+ var t=this,elem,height;
+ elem = t.test_font_size;
+ content = text.replace(/&/g,"&").replace(/</g,"<");
+ if( t.isIE || ( this.isOpera && this.isOpera < 9.6 ) ) {
+ elem.innerHTML= "<pre>" + content.replace(/^\r?\n/, "<br>") + "</pre>";
+ } else {
+ elem.innerHTML= content;
+ }
+ height = elem.offsetHeight;
+ height = Math.max( 1, Math.floor( elem.offsetHeight / this.lineHeight ) ) * this.lineHeight;
+ return height;
+ };
+
+ /**
+ * Fix line height for the given lines
+ * @param Integer linestart
+ * @param Integer lineEnd End line or -1 to cover all lines
+ */
+ EditArea.prototype.fixLinesHeight= function( textValue, lineStart,lineEnd ){
+ var aText = textValue.split("\n");
+ if( lineEnd == -1 )
+ lineEnd = aText.length-1;
+ for( var i = Math.max(0, lineStart); i <= lineEnd; i++ )
+ {
+ if( elem = _$('line_'+ ( i+1 ) ) )
+ {
+ elem.style.height= typeof( aText[i] ) != "undefined" ? this.getTextHeight( aText[i] )+"px" : this.lineHeight;
+ }
+ }
+ };
+
+ EditArea.prototype.area_select= function(start, length){
+ this.textarea.focus();
+
+ start = Math.max(0, Math.min(this.textarea.value.length, start));
+ end = Math.max(start, Math.min(this.textarea.value.length, start+length));
+
+ if(this.isIE)
+ {
+ this.textarea.selectionStart = start;
+ this.textarea.selectionEnd = end;
+ this.setIESelection();
+ }
+ else
+ {
+ // Opera bug when moving selection start and selection end
+ if(this.isOpera && this.isOpera < 9.6 )
+ {
+ this.textarea.setSelectionRange(0, 0);
+ }
+ this.textarea.setSelectionRange(start, end);
+ }
+ this.check_line_selection();
+ };
+
+
+ EditArea.prototype.area_get_selection= function(){
+ var text="";
+ if( document.selection ){
+ var range = document.selection.createRange();
+ text=range.text;
+ }else{
+ text= this.textarea.value.substring(this.textarea.selectionStart, this.textarea.selectionEnd);
+ }
+ return text;
+ };
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax.js
new file mode 100644
index 0000000..11518cc
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax.js
@@ -0,0 +1,166 @@
+ EditAreaLoader.prototype.get_regexp= function(text_array){
+ //res="( |=|\\n|\\r|\\[|\\(|µ|)(";
+ res="(\\b)(";
+ for(i=0; i<text_array.length; i++){
+ if(i>0)
+ res+="|";
+ //res+="("+ tab_text[i] +")";
+ //res+=tab_text[i].replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\{|\})/g, "\\$1");
+ res+=this.get_escaped_regexp(text_array[i]);
+ }
+ //res+=")( |\\.|:|\\{|\\(|\\)|\\[|\\]|\'|\"|\\r|\\n|\\t|$)";
+ res+=")(\\b)";
+ reg= new RegExp(res);
+
+ return res;
+ };
+
+
+ EditAreaLoader.prototype.get_escaped_regexp= function(str){
+ return str.toString().replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\}|\{|\$|\^|\|)/g, "\\$1");
+ };
+
+ EditAreaLoader.prototype.init_syntax_regexp= function(){
+ var lang_style= {};
+ for(var lang in this.load_syntax){
+ if(!this.syntax[lang]) // init the regexp if not already initialized
+ {
+ this.syntax[lang]= {};
+ this.syntax[lang]["keywords_reg_exp"]= {};
+ this.keywords_reg_exp_nb=0;
+
+ if(this.load_syntax[lang]['KEYWORDS']){
+ param="g";
+ if(this.load_syntax[lang]['KEYWORD_CASE_SENSITIVE']===false)
+ param+="i";
+ for(var i in this.load_syntax[lang]['KEYWORDS']){
+ if(typeof(this.load_syntax[lang]['KEYWORDS'][i])=="function") continue;
+ this.syntax[lang]["keywords_reg_exp"][i]= new RegExp(this.get_regexp( this.load_syntax[lang]['KEYWORDS'][i] ), param);
+ this.keywords_reg_exp_nb++;
+ }
+ }
+
+ if(this.load_syntax[lang]['OPERATORS']){
+ var str="";
+ var nb=0;
+ for(var i in this.load_syntax[lang]['OPERATORS']){
+ if(typeof(this.load_syntax[lang]['OPERATORS'][i])=="function") continue;
+ if(nb>0)
+ str+="|";
+ str+=this.get_escaped_regexp(this.load_syntax[lang]['OPERATORS'][i]);
+ nb++;
+ }
+ if(str.length>0)
+ this.syntax[lang]["operators_reg_exp"]= new RegExp("("+str+")","g");
+ }
+
+ if(this.load_syntax[lang]['DELIMITERS']){
+ var str="";
+ var nb=0;
+ for(var i in this.load_syntax[lang]['DELIMITERS']){
+ if(typeof(this.load_syntax[lang]['DELIMITERS'][i])=="function") continue;
+ if(nb>0)
+ str+="|";
+ str+=this.get_escaped_regexp(this.load_syntax[lang]['DELIMITERS'][i]);
+ nb++;
+ }
+ if(str.length>0)
+ this.syntax[lang]["delimiters_reg_exp"]= new RegExp("("+str+")","g");
+ }
+
+
+ // /(("(\\"|[^"])*"?)|('(\\'|[^'])*'?)|(//(.|\r|\t)*\n)|(/\*(.|\n|\r|\t)*\*/)|(<!--(.|\n|\r|\t)*-->))/gi
+ var syntax_trace=[];
+
+ // /("(?:[^"\\]*(\\\\)*(\\"?)?)*("|$))/g
+
+ this.syntax[lang]["quotes"]={};
+ var quote_tab= [];
+ if(this.load_syntax[lang]['QUOTEMARKS']){
+ for(var i in this.load_syntax[lang]['QUOTEMARKS']){
+ if(typeof(this.load_syntax[lang]['QUOTEMARKS'][i])=="function") continue;
+ var x=this.get_escaped_regexp(this.load_syntax[lang]['QUOTEMARKS'][i]);
+ this.syntax[lang]["quotes"][x]=x;
+ //quote_tab[quote_tab.length]="("+x+"(?:\\\\"+x+"|[^"+x+"])*("+x+"|$))";
+ //previous working : quote_tab[quote_tab.length]="("+x+"(?:[^"+x+"\\\\]*(\\\\\\\\)*(\\\\"+x+"?)?)*("+x+"|$))";
+ quote_tab[quote_tab.length]="("+ x +"(\\\\.|[^"+ x +"])*(?:"+ x +"|$))";
+
+ syntax_trace.push(x);
+ }
+ }
+
+ this.syntax[lang]["comments"]={};
+ if(this.load_syntax[lang]['COMMENT_SINGLE']){
+ for(var i in this.load_syntax[lang]['COMMENT_SINGLE']){
+ if(typeof(this.load_syntax[lang]['COMMENT_SINGLE'][i])=="function") continue;
+ var x=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_SINGLE'][i]);
+ quote_tab[quote_tab.length]="("+x+"(.|\\r|\\t)*(\\n|$))";
+ syntax_trace.push(x);
+ this.syntax[lang]["comments"][x]="\n";
+ }
+ }
+ // (/\*(.|[\r\n])*?\*/)
+ if(this.load_syntax[lang]['COMMENT_MULTI']){
+ for(var i in this.load_syntax[lang]['COMMENT_MULTI']){
+ if(typeof(this.load_syntax[lang]['COMMENT_MULTI'][i])=="function") continue;
+ var start=this.get_escaped_regexp(i);
+ var end=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_MULTI'][i]);
+ quote_tab[quote_tab.length]="("+start+"(.|\\n|\\r)*?("+end+"|$))";
+ syntax_trace.push(start);
+ syntax_trace.push(end);
+ this.syntax[lang]["comments"][i]=this.load_syntax[lang]['COMMENT_MULTI'][i];
+ }
+ }
+ if(quote_tab.length>0)
+ this.syntax[lang]["comment_or_quote_reg_exp"]= new RegExp("("+quote_tab.join("|")+")","gi");
+
+ if(syntax_trace.length>0) // /((.|\n)*?)(\\*("|'|\/\*|\*\/|\/\/|$))/g
+ this.syntax[lang]["syntax_trace_regexp"]= new RegExp("((.|\n)*?)(\\\\*("+ syntax_trace.join("|") +"|$))", "gmi");
+
+ if(this.load_syntax[lang]['SCRIPT_DELIMITERS']){
+ this.syntax[lang]["script_delimiters"]= {};
+ for(var i in this.load_syntax[lang]['SCRIPT_DELIMITERS']){
+ if(typeof(this.load_syntax[lang]['SCRIPT_DELIMITERS'][i])=="function") continue;
+ this.syntax[lang]["script_delimiters"][i]= this.load_syntax[lang]['SCRIPT_DELIMITERS'];
+ }
+ }
+
+ this.syntax[lang]["custom_regexp"]= {};
+ if(this.load_syntax[lang]['REGEXPS']){
+ for(var i in this.load_syntax[lang]['REGEXPS']){
+ if(typeof(this.load_syntax[lang]['REGEXPS'][i])=="function") continue;
+ var val= this.load_syntax[lang]['REGEXPS'][i];
+ if(!this.syntax[lang]["custom_regexp"][val['execute']])
+ this.syntax[lang]["custom_regexp"][val['execute']]= {};
+ this.syntax[lang]["custom_regexp"][val['execute']][i]={'regexp' : new RegExp(val['search'], val['modifiers'])
+ , 'class' : val['class']};
+ }
+ }
+
+ if(this.load_syntax[lang]['STYLES']){
+ lang_style[lang]= {};
+ for(var i in this.load_syntax[lang]['STYLES']){
+ if(typeof(this.load_syntax[lang]['STYLES'][i])=="function") continue;
+ if(typeof(this.load_syntax[lang]['STYLES'][i]) != "string"){
+ for(var j in this.load_syntax[lang]['STYLES'][i]){
+ lang_style[lang][j]= this.load_syntax[lang]['STYLES'][i][j];
+ }
+ }else{
+ lang_style[lang][i]= this.load_syntax[lang]['STYLES'][i];
+ }
+ }
+ }
+ // build style string
+ var style="";
+ for(var i in lang_style[lang]){
+ if(lang_style[lang][i].length>0){
+ style+= "."+ lang +" ."+ i.toLowerCase() +" span{"+lang_style[lang][i]+"}\n";
+ style+= "."+ lang +" ."+ i.toLowerCase() +"{"+lang_style[lang][i]+"}\n";
+ }
+ }
+ this.syntax[lang]["styles"]=style;
+ }
+ }
+ };
+
+ editAreaLoader.waiting_loading["reg_syntax.js"]= "loaded";
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/basic.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/basic.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/basic.js
new file mode 100644
index 0000000..93b578d
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/basic.js
@@ -0,0 +1,69 @@
+editAreaLoader.load_syntax["basic"] = {
+ 'COMMENT_SINGLE' : {1 : "'", 2 : 'rem'}
+ ,'COMMENT_MULTI' : { }
+ ,'QUOTEMARKS' : {1: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'if','then','for','wend','while',
+ 'else','elseif','select','case','end select',
+ 'until','next','step','to','end if', 'call'
+ ]
+ ,'keywords' : [
+ 'sub', 'end sub', 'function', 'end function', 'exit',
+ 'exit function', 'dim', 'redim', 'shared', 'const',
+ 'is', 'absolute', 'access', 'any', 'append', 'as',
+ 'base', 'beep', 'binary', 'bload', 'bsave', 'chain',
+ 'chdir', 'circle', 'clear', 'close', 'cls', 'color',
+ 'com', 'common', 'data', 'date', 'declare', 'def',
+ 'defdbl', 'defint', 'deflng', 'defsng', 'defstr',
+ 'double', 'draw', 'environ', 'erase', 'error', 'field',
+ 'files', 'fn', 'get', 'gosub', 'goto', 'integer', 'key',
+ 'kill', 'let', 'line', 'list', 'locate', 'lock', 'long',
+ 'lprint', 'lset', 'mkdir', 'name', 'off', 'on', 'open',
+ 'option', 'out', 'output', 'paint', 'palette', 'pcopy',
+ 'poke', 'preset', 'print', 'pset', 'put', 'random',
+ 'randomize', 'read', 'reset', 'restore', 'resume',
+ 'return', 'rmdir', 'rset', 'run', 'screen', 'seg',
+ 'shell', 'single', 'sleep', 'sound', 'static', 'stop',
+ 'strig', 'string', 'swap', 'system', 'time', 'timer',
+ 'troff', 'tron', 'type', 'unlock', 'using', 'view',
+ 'wait', 'width', 'window', 'write'
+ ]
+ ,'functions' : [
+ 'abs', 'asc', 'atn', 'cdbl', 'chr', 'cint', 'clng',
+ 'cos', 'csng', 'csrlin', 'cvd', 'cvdmbf', 'cvi', 'cvl',
+ 'cvs', 'cvsmbf', 'eof', 'erdev', 'erl', 'err', 'exp',
+ 'fileattr', 'fix', 'fre', 'freefile', 'hex', 'inkey',
+ 'inp', 'input', 'instr', 'int', 'ioctl', 'lbound',
+ 'lcase', 'left', 'len', 'loc', 'lof', 'log', 'lpos',
+ 'ltrim', 'mid', 'mkd', 'mkdmbf', 'mki', 'mkl', 'mks',
+ 'mksmbf', 'oct', 'peek', 'pen', 'play', 'pmap', 'point',
+ 'pos', 'right', 'rnd', 'rtrim', 'seek', 'sgn', 'sin',
+ 'space', 'spc', 'sqr', 'stick', 'str', 'tab', 'tan',
+ 'ubound', 'ucase', 'val', 'varptr', 'varseg'
+ ]
+ ,'operators' : [
+ 'and', 'eqv', 'imp', 'mod', 'not', 'or', 'xor'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '!', '&'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #99CC00;'
+ ,'QUOTESMARKS': 'color: #333399;'
+ ,'KEYWORDS' : {
+ 'keywords' : 'color: #3366FF;'
+ ,'functions' : 'color: #0000FF;'
+ ,'statements' : 'color: #3366FF;'
+ ,'operators' : 'color: #FF0000;'
+ }
+ ,'OPERATORS' : 'color: #FF0000;'
+ ,'DELIMITERS' : 'color: #0000FF;'
+
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/brainfuck.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/brainfuck.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/brainfuck.js
new file mode 100644
index 0000000..810c3d6
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/brainfuck.js
@@ -0,0 +1,44 @@
+editAreaLoader.load_syntax["brainfuck"] = {
+ 'COMMENT_SINGLE' : {}
+ ,'COMMENT_MULTI' : {}
+ ,'QUOTEMARKS' : {}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'OPERATORS' :[
+ '+', '-'
+ ]
+ ,'DELIMITERS' :[
+ '[', ']'
+ ]
+ ,'REGEXPS' : {
+ 'bfispis' : {
+ 'search' : '()(\\.)()'
+ ,'class' : 'bfispis'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ ,'bfupis' : {
+ 'search' : '()(\\,)()'
+ ,'class' : 'bfupis'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ ,'bfmemory' : {
+ 'search' : '()([<>])()'
+ ,'class' : 'bfmemory'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'OPERATORS' : 'color: #88AA00;'
+ ,'DELIMITERS' : 'color: #00C138;'
+ ,'REGEXPS' : {
+ 'bfispis' : 'color: #EE0000;'
+ ,'bfupis' : 'color: #4455ee;'
+ ,'bfmemory' : 'color: #DD00DD;'
+ }
+ }
+};
+
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/c.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/c.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/c.js
new file mode 100644
index 0000000..31667a0
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/c.js
@@ -0,0 +1,62 @@
+editAreaLoader.load_syntax["c"] = {
+ 'COMMENT_SINGLE' : {1 : '//'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'KEYWORDS' : {
+ 'constants' : [
+ 'NULL', 'false', 'stdin', 'stdout', 'stderr', 'true'
+ ]
+ ,'types' : [
+ 'FILE', 'auto', 'char', 'const', 'double',
+ 'extern', 'float', 'inline', 'int', 'long', 'register',
+ 'short', 'signed', 'size_t', 'static', 'struct',
+ 'time_t', 'typedef', 'union', 'unsigned', 'void',
+ 'volatile'
+ ]
+ ,'statements' : [
+ 'do', 'else', 'enum', 'for', 'goto', 'if', 'sizeof',
+ 'switch', 'while'
+ ]
+ ,'keywords' : [
+ 'break', 'case', 'continue', 'default', 'delete',
+ 'return'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '?', ':', '&'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ 'precompiler' : {
+ 'search' : '()(#[^\r\n]*)()'
+ ,'class' : 'precompiler'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+/* ,'precompilerstring' : {
+ 'search' : '(#[\t ]*include[\t ]*)([^\r\n]*)([^\r\n]*[\r\n])'
+ ,'class' : 'precompilerstring'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }*/
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'constants' : 'color: #EE0000;'
+ ,'types' : 'color: #0000EE;'
+ ,'statements' : 'color: #60CA00;'
+ ,'keywords' : 'color: #48BDDF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #0038E1;'
+ ,'REGEXPS' : {
+ 'precompiler' : 'color: #009900;'
+ ,'precompilerstring' : 'color: #994400;'
+ }
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/coldfusion.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/coldfusion.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/coldfusion.js
new file mode 100644
index 0000000..673e874
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/coldfusion.js
@@ -0,0 +1,119 @@
+editAreaLoader.load_syntax["coldfusion"] = {
+ 'COMMENT_SINGLE' : {1 : '//', 2 : '#'}
+ ,'COMMENT_MULTI' : {'<!--' : '-->'}
+ ,'COMMENT_MULTI2' : {'<!---' : '--->'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'include', 'require', 'include_once', 'require_once',
+ 'for', 'foreach', 'as', 'if', 'elseif', 'else', 'while', 'do', 'endwhile',
+ 'endif', 'switch', 'case', 'endswitch',
+ 'return', 'break', 'continue'
+ ]
+ ,'reserved' : [
+ 'AND', 'break', 'case', 'CONTAIN', 'CONTAINS', 'continue', 'default', 'do',
+ 'DOES', 'else', 'EQ', 'EQUAL', 'EQUALTO', 'EQV', 'FALSE', 'for', 'GE',
+ 'GREATER', 'GT', 'GTE', 'if', 'IMP', 'in', 'IS', 'LE', 'LESS', 'LT', 'LTE',
+ 'MOD', 'NEQ', 'NOT', 'OR', 'return', 'switch', 'THAN', 'TO', 'TRUE', 'var',
+ 'while', 'XOR'
+ ]
+ ,'functions' : [
+ 'Abs', 'ACos', 'ArrayAppend', 'ArrayAvg', 'ArrayClear', 'ArrayDeleteAt', 'ArrayInsertAt',
+ 'ArrayIsEmpty', 'ArrayLen', 'ArrayMax', 'ArrayMin', 'ArrayNew', 'ArrayPrepend', 'ArrayResize',
+ 'ArraySet', 'ArraySort', 'ArraySum', 'ArraySwap', 'ArrayToList', 'Asc', 'ASin', 'Atn', 'AuthenticatedContext',
+ 'AuthenticatedUser', 'BitAnd', 'BitMaskClear', 'BitMaskRead', 'BitMaskSet', 'BitNot', 'BitOr',
+ 'BitSHLN', 'BitSHRN', 'BitXor', 'Ceiling', 'Chr', 'CJustify', 'Compare', 'CompareNoCase', 'Cos',
+ 'CreateDate', 'CreateDateTime', 'CreateODBCDate', 'CreateODBCDateTime', 'CreateODBCTime',
+ 'CreateTime', 'CreateTimeSpan', 'DateAdd', 'DateCompare', 'DateConvert', 'DateDiff',
+ 'DateFormat', 'DatePart', 'Day', 'DayOfWeek', 'DayOfWeekAsString', 'DayOfYear', 'DaysInMonth',
+ 'DaysInYear', 'DE', 'DecimalFormat', 'DecrementValue', 'Decrypt', 'DeleteClientVariable',
+ 'DirectoryExists', 'DollarFormat', 'Duplicate', 'Encrypt', 'Evaluate', 'Exp', 'ExpandPath',
+ 'FileExists', 'Find', 'FindNoCase', 'FindOneOf', 'FirstDayOfMonth', 'Fix', 'FormatBaseN',
+ 'GetBaseTagData', 'GetBaseTagList', 'GetBaseTemplatePath', 'GetClientVariablesList',
+ 'GetCurrentTemplatePath', 'GetDirectoryFromPath', 'GetException', 'GetFileFromPath',
+ 'GetFunctionList', 'GetHttpTimeString', 'GetHttpRequestData', 'GetLocale', 'GetMetricData',
+ 'GetProfileString', 'GetTempDirectory', 'GetTempFile', 'GetTemplatePath', 'GetTickCount',
+ 'GetTimeZoneInfo', 'GetToken', 'Hash', 'Hour', 'HTMLCodeFormat', 'HTMLEditFormat', 'IIf',
+ 'IncrementValue', 'InputBaseN', 'Insert', 'Int', 'IsArray', 'IsAuthenticated', 'IsAuthorized',
+ 'IsBoolean', 'IsBinary', 'IsCustomFunction', 'IsDate', 'IsDebugMode', 'IsDefined', 'IsLeapYear',
+ 'IsNumeric', 'IsNumericDate', 'IsProtected', 'IsQuery', 'IsSimpleValue', 'IsStruct', 'IsWDDX',
+ 'JavaCast', 'JSStringFormat', 'LCase', 'Left', 'Len', 'ListAppend', 'ListChangeDelims',
+ 'ListContains', 'ListContainsNoCase', 'ListDeleteAt', 'ListFind', 'ListFindNoCase', 'ListFirst',
+ 'ListGetAt', 'ListInsertAt', 'ListLast', 'ListLen', 'ListPrepend', 'ListQualify', 'ListRest',
+ 'ListSetAt', 'ListSort', 'ListToArray', 'ListValueCount', 'ListValueCountNoCase', 'LJustify',
+ 'Log', 'Log10', 'LSCurrencyFormat', 'LSDateFormat', 'LSEuroCurrencyFormat', 'LSIsCurrency',
+ 'LSIsDate', 'LSIsNumeric', 'LSNumberFormat', 'LSParseCurrency', 'LSParseDateTime', 'LSParseNumber',
+ 'LSTimeFormat', 'LTrim', 'Max', 'Mid', 'Min', 'Minute', 'Month', 'MonthAsString', 'Now', 'NumberFormat',
+ 'ParagraphFormat', 'ParameterExists', 'ParseDateTime', 'Pi', 'PreserveSingleQuotes', 'Quarter',
+ 'QueryAddRow', 'QueryNew', 'QuerySetCell', 'QuotedValueList', 'Rand', 'Randomize', 'RandRange',
+ 'REFind', 'REFindNoCase', 'RemoveChars', 'RepeatString', 'Replace', 'ReplaceList', 'ReplaceNoCase',
+ 'REReplace', 'REReplaceNoCase', 'Reverse', 'Right', 'RJustify', 'Round', 'RTrim', 'Second', 'SetLocale',
+ 'SetProfileString', 'SetVariable', 'Sgn', 'Sin', 'SpanExcluding', 'SpanIncluding', 'Sqr', 'StripCR',
+ 'StructAppend', 'StructClear', 'StructCopy', 'StructCount', 'StructDelete', 'StructFind', 'StructFindKey',
+ 'StructFindValue', 'StructGet', 'StructInsert', 'StructIsEmpty', 'StructKeyArray', 'StructKeyExists',
+ 'StructKeyList', 'StructNew', 'StructSort', 'StructUpdate', 'Tan', 'TimeFormat', 'ToBase64', 'ToBinary',
+ 'ToString', 'Trim', 'UCase', 'URLDecode', 'URLEncodedFormat', 'Val', 'ValueList', 'Week', 'WriteOutput',
+ 'XMLFormat', 'Year', 'YesNoFormat'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '%', '!', '&&', '||'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ 'doctype' : {
+ 'search' : '()(<!DOCTYPE[^>]*>)()'
+ ,'class' : 'doctype'
+ ,'modifiers' : ''
+ ,'execute' : 'before' // before or after
+ }
+ ,'cftags' : {
+ 'search' : '(<)(/cf[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'cftags'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'cftags2' : {
+ 'search' : '(<)(cf[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'cftags2'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'tags' : {
+ 'search' : '(<)(/?[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'tags'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'attributes' : {
+ 'search' : '( |\n|\r|\t)([^ \r\n\t=]+)(=)'
+ ,'class' : 'attributes'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'color: #48BDDF;'
+ ,'functions' : 'color: #0000FF;'
+ ,'statements' : 'color: #60CA00;'
+ }
+ ,'OPERATORS' : 'color: #E775F0;'
+ ,'DELIMITERS' : ''
+ ,'REGEXPS' : {
+ 'attributes': 'color: #990033;'
+ ,'cftags': 'color: #990033;'
+ ,'cftags2': 'color: #990033;'
+ ,'tags': 'color: #000099;'
+ ,'doctype': 'color: #8DCFB5;'
+ ,'test': 'color: #00FF00;'
+ }
+ }
+};
+
+
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/cpp.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/cpp.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/cpp.js
new file mode 100644
index 0000000..74826d3
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/cpp.js
@@ -0,0 +1,65 @@
+editAreaLoader.load_syntax["cpp"] = {
+ 'COMMENT_SINGLE' : {1 : '//'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : true
+ ,'KEYWORDS' : {
+ 'constants' : [
+ 'NULL', 'false', 'std', 'stdin', 'stdout', 'stderr',
+ 'true'
+ ]
+ ,'types' : [
+ 'FILE', 'auto', 'char', 'class', 'const', 'double',
+ 'extern', 'float', 'friend', 'inline', 'int',
+ 'iterator', 'long', 'map', 'operator', 'queue',
+ 'register', 'short', 'signed', 'size_t', 'stack',
+ 'static', 'string', 'struct', 'time_t', 'typedef',
+ 'union', 'unsigned', 'vector', 'void', 'volatile'
+ ]
+ ,'statements' : [
+ 'catch', 'do', 'else', 'enum', 'for', 'goto', 'if',
+ 'sizeof', 'switch', 'this', 'throw', 'try', 'while'
+ ]
+ ,'keywords' : [
+ 'break', 'case', 'continue', 'default', 'delete',
+ 'namespace', 'new', 'private', 'protected', 'public',
+ 'return', 'using'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '?', ':', '&'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ 'precompiler' : {
+ 'search' : '()(#[^\r\n]*)()'
+ ,'class' : 'precompiler'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }
+/* ,'precompilerstring' : {
+ 'search' : '(#[\t ]*include[\t ]*)([^\r\n]*)([^\r\n]*[\r\n])'
+ ,'class' : 'precompilerstring'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before'
+ }*/
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'constants' : 'color: #EE0000;'
+ ,'types' : 'color: #0000EE;'
+ ,'statements' : 'color: #60CA00;'
+ ,'keywords' : 'color: #48BDDF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #0038E1;'
+ ,'REGEXPS' : {
+ 'precompiler' : 'color: #009900;'
+ ,'precompilerstring' : 'color: #994400;'
+ }
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/css.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/css.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/css.js
new file mode 100644
index 0000000..8dded1b
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/css.js
@@ -0,0 +1,84 @@
+editAreaLoader.load_syntax["css"] = {
+ 'COMMENT_SINGLE' : {1 : '@'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : ['"', "'"]
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'attributes' : [
+ 'aqua', 'azimuth', 'background-attachment', 'background-color',
+ 'background-image', 'background-position', 'background-repeat',
+ 'background', 'border-bottom-color', 'border-bottom-style',
+ 'border-bottom-width', 'border-left-color', 'border-left-style',
+ 'border-left-width', 'border-right', 'border-right-color',
+ 'border-right-style', 'border-right-width', 'border-top-color',
+ 'border-top-style', 'border-top-width','border-bottom', 'border-collapse',
+ 'border-left', 'border-width', 'border-color', 'border-spacing',
+ 'border-style', 'border-top', 'border', 'caption-side',
+ 'clear', 'clip', 'color', 'content', 'counter-increment', 'counter-reset',
+ 'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display',
+ 'elevation', 'empty-cells', 'float', 'font-family', 'font-size',
+ 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant',
+ 'font-weight', 'font', 'height', 'letter-spacing', 'line-height',
+ 'list-style', 'list-style-image', 'list-style-position', 'list-style-type',
+ 'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'margin',
+ 'marker-offset', 'marks', 'max-height', 'max-width', 'min-height',
+ 'min-width', 'opacity', 'orphans', 'outline', 'outline-color', 'outline-style',
+ 'outline-width', 'overflow', 'padding-bottom', 'padding-left',
+ 'padding-right', 'padding-top', 'padding', 'page', 'page-break-after',
+ 'page-break-before', 'page-break-inside', 'pause-after', 'pause-before',
+ 'pause', 'pitch', 'pitch-range', 'play-during', 'position', 'quotes',
+ 'richness', 'right', 'size', 'speak-header', 'speak-numeral', 'speak-punctuation',
+ 'speak', 'speech-rate', 'stress', 'table-layout', 'text-align', 'text-decoration',
+ 'text-indent', 'text-shadow', 'text-transform', 'top', 'unicode-bidi',
+ 'vertical-align', 'visibility', 'voice-family', 'volume', 'white-space', 'widows',
+ 'width', 'word-spacing', 'z-index', 'bottom', 'left'
+ ]
+ ,'values' : [
+ 'above', 'absolute', 'always', 'armenian', 'aural', 'auto', 'avoid',
+ 'baseline', 'behind', 'below', 'bidi-override', 'black', 'blue', 'blink', 'block', 'bold', 'bolder', 'both',
+ 'capitalize', 'center-left', 'center-right', 'center', 'circle', 'cjk-ideographic',
+ 'close-quote', 'collapse', 'condensed', 'continuous', 'crop', 'crosshair', 'cross', 'cursive',
+ 'dashed', 'decimal-leading-zero', 'decimal', 'default', 'digits', 'disc', 'dotted', 'double',
+ 'e-resize', 'embed', 'extra-condensed', 'extra-expanded', 'expanded',
+ 'fantasy', 'far-left', 'far-right', 'faster', 'fast', 'fixed', 'fuchsia',
+ 'georgian', 'gray', 'green', 'groove', 'hebrew', 'help', 'hidden', 'hide', 'higher',
+ 'high', 'hiragana-iroha', 'hiragana', 'icon', 'inherit', 'inline-table', 'inline',
+ 'inset', 'inside', 'invert', 'italic', 'justify', 'katakana-iroha', 'katakana',
+ 'landscape', 'larger', 'large', 'left-side', 'leftwards', 'level', 'lighter', 'lime', 'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek', 'lower-roman', 'lowercase', 'ltr', 'lower', 'low',
+ 'maroon', 'medium', 'message-box', 'middle', 'mix', 'monospace',
+ 'n-resize', 'narrower', 'navy', 'ne-resize', 'no-close-quote', 'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap', 'nw-resize',
+ 'oblique', 'olive', 'once', 'open-quote', 'outset', 'outside', 'overline',
+ 'pointer', 'portrait', 'purple', 'px',
+ 'red', 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb', 'ridge', 'right-side', 'rightwards',
+ 's-resize', 'sans-serif', 'scroll', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate', 'serif', 'show', 'silent', 'silver', 'slow', 'slower', 'small-caps', 'small-caption', 'smaller', 'soft', 'solid', 'spell-out', 'square',
+ 'static', 'status-bar', 'super', 'sw-resize',
+ 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row', 'table-row-group', 'teal', 'text', 'text-bottom', 'text-top', 'thick', 'thin', 'transparent',
+ 'ultra-condensed', 'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin', 'upper-roman', 'uppercase', 'url',
+ 'visible',
+ 'w-resize', 'wait', 'white', 'wider',
+ 'x-fast', 'x-high', 'x-large', 'x-loud', 'x-low', 'x-small', 'x-soft', 'xx-large', 'xx-small',
+ 'yellow', 'yes'
+ ]
+ ,'specials' : [
+ 'important'
+ ]
+ }
+ ,'OPERATORS' :[
+ ':', ';', '!', '.', '#'
+ ]
+ ,'DELIMITERS' :[
+ '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'attributes' : 'color: #48BDDF;'
+ ,'values' : 'color: #2B60FF;'
+ ,'specials' : 'color: #FF0000;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #60CA00;'
+
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/html.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/html.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/html.js
new file mode 100644
index 0000000..d508364
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/html.js
@@ -0,0 +1,50 @@
+/*
+* last update: 2006-08-24
+*/
+
+editAreaLoader.load_syntax["html"] = {
+ 'COMMENT_SINGLE' : {}
+ ,'COMMENT_MULTI' : {'<!--' : '-->'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ }
+ ,'OPERATORS' :[
+ ]
+ ,'DELIMITERS' :[
+ ]
+ ,'REGEXPS' : {
+ 'doctype' : {
+ 'search' : '()(<!DOCTYPE[^>]*>)()'
+ ,'class' : 'doctype'
+ ,'modifiers' : ''
+ ,'execute' : 'before' // before or after
+ }
+ ,'tags' : {
+ 'search' : '(<)(/?[a-z][^ \r\n\t>]*)([^>]*>)'
+ ,'class' : 'tags'
+ ,'modifiers' : 'gi'
+ ,'execute' : 'before' // before or after
+ }
+ ,'attributes' : {
+ 'search' : '( |\n|\r|\t)([^ \r\n\t=]+)(=)'
+ ,'class' : 'attributes'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ }
+ ,'OPERATORS' : 'color: #E775F0;'
+ ,'DELIMITERS' : ''
+ ,'REGEXPS' : {
+ 'attributes': 'color: #B1AC41;'
+ ,'tags': 'color: #E62253;'
+ ,'doctype': 'color: #8DCFB5;'
+ ,'test': 'color: #00FF00;'
+ }
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/java.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/java.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/java.js
new file mode 100644
index 0000000..bf48b53
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/java.js
@@ -0,0 +1,56 @@
+editAreaLoader.load_syntax["java"] = {
+'COMMENT_SINGLE': { 1: '//', 2: '@' }
+ , 'COMMENT_MULTI': { '/*': '*/' }
+ , 'QUOTEMARKS': { 1: "'", 2: '"' }
+ , 'KEYWORD_CASE_SENSITIVE': true
+ , 'KEYWORDS': {
+ 'constants': [
+ 'null', 'false', 'true'
+ ]
+ , 'types': [
+ 'String', 'int', 'short', 'long', 'char', 'double', 'byte',
+ 'float', 'static', 'void', 'private', 'boolean', 'protected',
+ 'public', 'const', 'class', 'final', 'abstract', 'volatile',
+ 'enum', 'transient', 'interface'
+ ]
+ , 'statements': [
+ 'this', 'extends', 'if', 'do', 'while', 'try', 'catch', 'finally',
+ 'throw', 'throws', 'else', 'for', 'switch', 'continue', 'implements',
+ 'break', 'case', 'default', 'goto'
+ ]
+ , 'keywords': [
+ 'new', 'return', 'import', 'native', 'super', 'package', 'assert', 'synchronized',
+ 'instanceof', 'strictfp'
+ ]
+ }
+ , 'OPERATORS': [
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '?', ':', '&'
+ ]
+ , 'DELIMITERS': [
+ '(', ')', '[', ']', '{', '}'
+ ]
+ , 'REGEXPS': {
+ 'precompiler': {
+ 'search': '()(#[^\r\n]*)()'
+ , 'class': 'precompiler'
+ , 'modifiers': 'g'
+ , 'execute': 'before'
+ }
+ }
+ , 'STYLES': {
+ 'COMMENTS': 'color: #AAAAAA;'
+ , 'QUOTESMARKS': 'color: #6381F8;'
+ , 'KEYWORDS': {
+ 'constants': 'color: #EE0000;'
+ , 'types': 'color: #0000EE;'
+ , 'statements': 'color: #60CA00;'
+ , 'keywords': 'color: #48BDDF;'
+ }
+ , 'OPERATORS': 'color: #FF00FF;'
+ , 'DELIMITERS': 'color: #0038E1;'
+ , 'REGEXPS': {
+ 'precompiler': 'color: #009900;'
+ , 'precompilerstring': 'color: #994400;'
+ }
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/js.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/js.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/js.js
new file mode 100644
index 0000000..2799b70
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/js.js
@@ -0,0 +1,93 @@
+editAreaLoader.load_syntax["js"] = {
+ 'COMMENT_SINGLE' : {1 : '//'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
+ 'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
+ 'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
+ 'while', 'write', 'with'
+ ]
+ ,'keywords' : [
+ 'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
+ 'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
+ 'protected', 'public', 'super', 'true', 'use', 'var', 'window', 'document',
+ // the list below must be sorted and checked (if it is a keywords or a function and if it is not present twice
+ 'Link ', 'outerHeight ', 'Anchor', 'FileUpload',
+ 'location', 'outerWidth', 'Select', 'Area', 'find', 'Location', 'Packages', 'self',
+ 'arguments', 'locationbar', 'pageXoffset', 'Form',
+ 'Math', 'pageYoffset', 'setTimeout', 'assign', 'Frame', 'menubar', 'parent', 'status',
+ 'blur', 'frames', 'MimeType', 'parseFloat', 'statusbar', 'Boolean', 'Function', 'moveBy',
+ 'parseInt', 'stop', 'Button', 'getClass', 'moveTo', 'Password', 'String', 'callee', 'Hidden',
+ 'name', 'personalbar', 'Submit', 'caller', 'history', 'NaN', 'Plugin', 'sun', 'captureEvents',
+ 'History', 'navigate', 'print', 'taint', 'Checkbox', 'home', 'navigator', 'prompt', 'Text',
+ 'Image', 'Navigator', 'prototype', 'Textarea', 'clearTimeout', 'Infinity',
+ 'netscape', 'Radio', 'toolbar', 'close', 'innerHeight', 'Number', 'ref', 'top', 'closed',
+ 'innerWidth', 'Object', 'RegExp', 'toString', 'confirm', 'isFinite', 'onBlur', 'releaseEvents',
+ 'unescape', 'constructor', 'isNan', 'onError', 'Reset', 'untaint', 'Date', 'java', 'onFocus',
+ 'resizeBy', 'unwatch', 'defaultStatus', 'JavaArray', 'onLoad', 'resizeTo', 'valueOf', 'document',
+ 'JavaClass', 'onUnload', 'routeEvent', 'watch', 'Document', 'JavaObject', 'open', 'scroll', 'window',
+ 'Element', 'JavaPackage', 'opener', 'scrollbars', 'Window', 'escape', 'length', 'Option', 'scrollBy'
+ ]
+ ,'functions' : [
+ // common functions for Window object
+ 'alert', 'Array', 'back', 'blur', 'clearInterval', 'close', 'confirm', 'eval ', 'focus', 'forward', 'home',
+ 'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
+ 'onresize', 'onunload', 'open', 'print', 'prompt', 'scroll', 'scrollTo', 'setInterval', 'status',
+ 'stop'
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'statements' : 'color: #60CA00;'
+ ,'keywords' : 'color: #48BDDF;'
+ ,'functions' : 'color: #2B60FF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #0038E1;'
+
+ }
+ ,'AUTO_COMPLETION' : {
+ "default": { // the name of this definition group. It's posisble to have different rules inside the same definition file
+ "REGEXP": { "before_word": "[^a-zA-Z0-9_]|^" // \\s|\\.|
+ ,"possible_words_letters": "[a-zA-Z0-9_]+"
+ ,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+ ,"prefix_separator": "\\."
+ }
+ ,"CASE_SENSITIVE": true
+ ,"MAX_TEXT_LENGTH": 100 // the maximum length of the text being analyzed before the cursor position
+ ,"KEYWORDS": {
+ '': [ // the prefix of thoses items
+ /**
+ * 0 : the keyword the user is typing
+ * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "§" beeing the equivalent to the value the typed string indicated if the previous )
+ * If empty the keyword will be displayed
+ * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)
+ */
+ ['Array', '§()', '']
+ ,['alert', '§({@})', 'alert(String message)']
+ ,['document']
+ ,['window']
+ ]
+ ,'window' : [
+ ['location']
+ ,['document']
+ ,['scrollTo', 'scrollTo({@})', 'scrollTo(Int x,Int y)']
+ ]
+ ,'location' : [
+ ['href']
+ ]
+ }
+ }
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/pas.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/pas.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/pas.js
new file mode 100644
index 0000000..7c1bc3c
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/pas.js
@@ -0,0 +1,82 @@
+editAreaLoader.load_syntax["pas"] = {
+ 'COMMENT_SINGLE' : {}
+ ,'COMMENT_MULTI' : {'{' : '}', '(*':'*)'}
+ ,'QUOTEMARKS' : {1: '"', 2: "'"}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'constants' : [
+ 'Blink', 'Black', 'Blue', 'Green', 'Cyan', 'Red',
+ 'Magenta', 'Brown', 'LightGray', 'DarkGray',
+ 'LightBlue', 'LightGreen', 'LightCyan', 'LightRed',
+ 'LightMagenta', 'Yellow', 'White', 'MaxSIntValue',
+ 'MaxUIntValue', 'maxint', 'maxLongint', 'maxSmallint',
+ 'erroraddr', 'errorcode', 'LineEnding'
+ ]
+ ,'keywords' : [
+ 'in', 'or', 'div', 'mod', 'and', 'shl', 'shr', 'xor',
+ 'pow', 'is', 'not','Absolute', 'And_then', 'Array',
+ 'Begin', 'Bindable', 'Case', 'Const', 'Do', 'Downto',
+ 'Else', 'End', 'Export', 'File', 'For', 'Function',
+ 'Goto', 'If', 'Import', 'Implementation', 'Inherited',
+ 'Inline', 'Interface', 'Label', 'Module', 'Nil',
+ 'Object', 'Of', 'Only', 'Operator', 'Or_else',
+ 'Otherwise', 'Packed', 'Procedure', 'Program',
+ 'Protected', 'Qualified', 'Record', 'Repeat',
+ 'Restricted', 'Set', 'Then', 'To', 'Type', 'Unit',
+ 'Until', 'Uses', 'Value', 'Var', 'Virtual', 'While',
+ 'With'
+ ]
+ ,'functions' : [
+ 'Abs', 'Addr', 'Append', 'Arctan', 'Assert', 'Assign',
+ 'Assigned', 'BinStr', 'Blockread', 'Blockwrite',
+ 'Break', 'Chdir', 'Chr', 'Close', 'CompareByte',
+ 'CompareChar', 'CompareDWord', 'CompareWord', 'Concat',
+ 'Continue', 'Copy', 'Cos', 'CSeg', 'Dec', 'Delete',
+ 'Dispose', 'DSeg', 'Eof', 'Eoln', 'Erase', 'Exclude',
+ 'Exit', 'Exp', 'Filepos', 'Filesize', 'FillByte',
+ 'Fillchar', 'FillDWord', 'Fillword', 'Flush', 'Frac',
+ 'Freemem', 'Getdir', 'Getmem', 'GetMemoryManager',
+ 'Halt', 'HexStr', 'Hi', 'High', 'Inc', 'Include',
+ 'IndexByte', 'IndexChar', 'IndexDWord', 'IndexWord',
+ 'Insert', 'IsMemoryManagerSet', 'Int', 'IOresult',
+ 'Length', 'Ln', 'Lo', 'LongJmp', 'Low', 'Lowercase',
+ 'Mark', 'Maxavail', 'Memavail', 'Mkdir', 'Move',
+ 'MoveChar0', 'New', 'Odd', 'OctStr', 'Ofs', 'Ord',
+ 'Paramcount', 'Paramstr', 'Pi', 'Pos', 'Power', 'Pred',
+ 'Ptr', 'Random', 'Randomize', 'Read', 'Readln',
+ 'Real2Double', 'Release', 'Rename', 'Reset', 'Rewrite',
+ 'Rmdir', 'Round', 'Runerror', 'Seek', 'SeekEof',
+ 'SeekEoln', 'Seg', 'SetMemoryManager', 'SetJmp',
+ 'SetLength', 'SetString', 'SetTextBuf', 'Sin', 'SizeOf',
+ 'Sptr', 'Sqr', 'Sqrt', 'SSeg', 'Str', 'StringOfChar',
+ 'Succ', 'Swap', 'Trunc', 'Truncate', 'Upcase', 'Val',
+ 'Write', 'WriteLn'
+ ]
+ ,'types' : [
+ 'Integer', 'Shortint', 'SmallInt', 'Longint',
+ 'Longword', 'Int64', 'Byte', 'Word', 'Cardinal',
+ 'QWord', 'Boolean', 'ByteBool', 'LongBool', 'Char',
+ 'Real', 'Single', 'Double', 'Extended', 'Comp',
+ 'String', 'ShortString', 'AnsiString', 'PChar'
+ ]
+ }
+ ,'OPERATORS' :[
+ '@', '*', '+', '-', '/', '^', ':=', '<', '=', '>'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']'
+ ]
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #6381F8;'
+ ,'KEYWORDS' : {
+ 'specials' : 'color: #EE0000;'
+ ,'constants' : 'color: #654321;'
+ ,'keywords' : 'color: #48BDDF;'
+ ,'functions' : 'color: #449922;'
+ ,'types' : 'color: #2B60FF;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #60CA00;'
+ }
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/perl.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/perl.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/perl.js
new file mode 100644
index 0000000..b63e951
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/perl.js
@@ -0,0 +1,88 @@
+/***************************************************************************
+ * (c) 2008 - file created by Christoph Pinkel, MTC Infomedia OHG.
+ *
+ * You may choose any license of the current release or any future release
+ * of editarea to use, modify and/or redistribute this file.
+ *
+ * This language specification file supports for syntax checking on
+ * a large subset of Perl 5.x.
+ * The basic common syntax of Perl is fully supported, but as for
+ * the highlighting of built-in operations, it's mainly designed
+ * to support for hightlighting Perl code in a Safe environment (compartment)
+ * as used by CoMaNet for evaluation of administrative scripts. This Safe
+ * compartment basically allows for all of Opcode's :default operations,
+ * but little others. See http://perldoc.perl.org/Opcode.html to learn
+ * more.
+ ***************************************************************************/
+
+editAreaLoader.load_syntax["perl"] = {
+
+ 'COMMENT_SINGLE' : {1 : '#'},
+ 'QUOTEMARKS' : {1: "'", 2: '"'},
+ 'KEYWORD_CASE_SENSITIVE' : true,
+ 'KEYWORDS' :
+ {
+ 'core' :
+ [ "if", "else", "elsif", "while", "for", "each", "foreach",
+ "next", "last", "goto", "exists", "delete", "undef",
+ "my", "our", "local", "use", "require", "package", "keys", "values",
+ "sub", "bless", "ref", "return" ],
+ 'functions' :
+ [
+ //from :base_core
+ "int", "hex", "oct", "abs", "substr", "vec", "study", "pos",
+ "length", "index", "rindex", "ord", "chr", "ucfirst", "lcfirst",
+ "uc", "lc", "quotemeta", "chop", "chomp", "split", "list", "splice",
+ "push", "pop", "shift", "unshift", "reverse", "and", "or", "dor",
+ "xor", "warn", "die", "prototype",
+ //from :base_mem
+ "concat", "repeat", "join", "range",
+ //none from :base_loop, as we'll see them as basic statements...
+ //from :base_orig
+ "sprintf", "crypt", "tie", "untie", "select", "localtime", "gmtime",
+ //others
+ "print", "open", "close"
+ ]
+ },
+ 'OPERATORS' :
+ [ '+', '-', '/', '*', '=', '<', '>', '!', '||', '.', '&&',
+ ' eq ', ' ne ', '=~' ],
+ 'DELIMITERS' :
+ [ '(', ')', '[', ']', '{', '}' ],
+ 'REGEXPS' :
+ {
+ 'packagedecl' : { 'search': '(package )([^ \r\n\t#;]*)()',
+ 'class' : 'scopingnames',
+ 'modifiers' : 'g', 'execute' : 'before' },
+ 'subdecl' : { 'search': '(sub )([^ \r\n\t#]*)()',
+ 'class' : 'scopingnames',
+ 'modifiers' : 'g', 'execute' : 'before' },
+ 'scalars' : { 'search': '()(\\\$[a-zA-Z0-9_:]*)()',
+ 'class' : 'vars',
+ 'modifiers' : 'g', 'execute' : 'after' },
+ 'arrays' : { 'search': '()(@[a-zA-Z0-9_:]*)()',
+ 'class' : 'vars',
+ 'modifiers' : 'g', 'execute' : 'after' },
+ 'hashs' : { 'search': '()(%[a-zA-Z0-9_:]*)()',
+ 'class' : 'vars',
+ 'modifiers' : 'g', 'execute' : 'after' },
+ },
+
+ 'STYLES' :
+ {
+ 'COMMENTS': 'color: #AAAAAA;',
+ 'QUOTESMARKS': 'color: #DC0000;',
+ 'KEYWORDS' :
+ {
+ 'core' : 'color: #8aca00;',
+ 'functions' : 'color: #2B60FF;'
+ },
+ 'OPERATORS' : 'color: #8aca00;',
+ 'DELIMITERS' : 'color: #0038E1;',
+ 'REGEXPS':
+ {
+ 'scopingnames' : 'color: #ff0000;',
+ 'vars' : 'color: #00aaaa;',
+ }
+ } //'STYLES'
+};
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f6330834/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/php.js
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/php.js b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/php.js
new file mode 100644
index 0000000..5a5cff9
--- /dev/null
+++ b/components/org.apache.stratos.theme.mgt.ui/src/main/resources/web/tenant-theme/js/editarea/edit_area/reg_syntax/php.js
@@ -0,0 +1,156 @@
+editAreaLoader.load_syntax["php"] = {
+ 'COMMENT_SINGLE' : {1 : '//', 2 : '#'}
+ ,'COMMENT_MULTI' : {'/*' : '*/'}
+ ,'QUOTEMARKS' : {1: "'", 2: '"'}
+ ,'KEYWORD_CASE_SENSITIVE' : false
+ ,'KEYWORDS' : {
+ 'statements' : [
+ 'include', 'require', 'include_once', 'require_once',
+ 'for', 'foreach', 'as', 'if', 'elseif', 'else', 'while', 'do', 'endwhile',
+ 'endif', 'switch', 'case', 'endswitch',
+ 'return', 'break', 'continue'
+ ]
+ ,'reserved' : [
+ '_GET', '_POST', '_SESSION', '_SERVER', '_FILES', '_ENV', '_COOKIE', '_REQUEST',
+ 'null', '__LINE__', '__FILE__',
+ 'false', '<?php', '?>', '<?',
+ '<script language', '</script>',
+ 'true', 'var', 'default',
+ 'function', 'class', 'new', '&new', 'this',
+ '__FUNCTION__', '__CLASS__', '__METHOD__', 'PHP_VERSION',
+ 'PHP_OS', 'DEFAULT_INCLUDE_PATH', 'PEAR_INSTALL_DIR', 'PEAR_EXTENSION_DIR',
+ 'PHP_EXTENSION_DIR', 'PHP_BINDIR', 'PHP_LIBDIR', 'PHP_DATADIR', 'PHP_SYSCONFDIR',
+ 'PHP_LOCALSTATEDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_OUTPUT_HANDLER_START', 'PHP_OUTPUT_HANDLER_CONT',
+ 'PHP_OUTPUT_HANDLER_END', 'E_ERROR', 'E_WARNING', 'E_PARSE', 'E_NOTICE',
+ 'E_CORE_ERROR', 'E_CORE_WARNING', 'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_USER_ERROR',
+ 'E_USER_WARNING', 'E_USER_NOTICE', 'E_ALL'
+
+ ]
+ ,'functions' : [
+ 'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined',
+ 'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions',
+ 'extension_loaded', 'get_extension_funcs', 'debug_backtrace',
+ 'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv',
+ 'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime',
+ 'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar',
+ 'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewi
nddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown',
+ 'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists
', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate',
+ 'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode',
+ 'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_i
nsert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat',
+ 'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_fi
eld_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from',
+ 'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport',
+ 'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die'
+
+ ]
+ }
+ ,'OPERATORS' :[
+ '+', '-', '/', '*', '=', '<', '>', '%', '!', '&&', '||'
+ ]
+ ,'DELIMITERS' :[
+ '(', ')', '[', ']', '{', '}'
+ ]
+ ,'REGEXPS' : {
+ // highlight all variables ($...)
+ 'variables' : {
+ 'search' : '()(\\$\\w+)()'
+ ,'class' : 'variables'
+ ,'modifiers' : 'g'
+ ,'execute' : 'before' // before or after
+ }
+ }
+ ,'STYLES' : {
+ 'COMMENTS': 'color: #AAAAAA;'
+ ,'QUOTESMARKS': 'color: #879EFA;'
+ ,'KEYWORDS' : {
+ 'reserved' : 'color: #48BDDF;'
+ ,'functions' : 'color: #0040FD;'
+ ,'statements' : 'color: #60CA00;'
+ }
+ ,'OPERATORS' : 'color: #FF00FF;'
+ ,'DELIMITERS' : 'color: #2B60FF;'
+ ,'REGEXPS' : {
+ 'variables' : 'color: #E0BD54;'
+ }
+ }
+ ,'AUTO_COMPLETION' : {
+ "default": { // the name of this definition group. It's posisble to have different rules inside the same definition file
+ "REGEXP": { "before_word": "[^a-zA-Z0-9_]|^" // \\s|\\.|
+ ,"possible_words_letters": "[a-zA-Z0-9_\$]+"
+ ,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+ ,"prefix_separator": "\\-\\>|\\:\\:"
+ }
+ ,"CASE_SENSITIVE": true
+ ,"MAX_TEXT_LENGTH": 100 // the maximum length of the text being analyzed before the cursor position
+ ,"KEYWORDS": {
+ '': [ // the prefix of thoses items
+ /**
+ * 0 : the keyword the user is typing
+ * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "§" beeing the equivalent to the value the typed string indicated if the previous )
+ * If empty the keyword will be displayed
+ * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)
+ */
+ ['$_POST']
+ ,['$_GET']
+ ,['$_SESSION']
+ ,['$_SERVER']
+ ,['$_FILES']
+ ,['$_ENV']
+ ,['$_COOKIE']
+ ,['$_REQUEST']
+ // magic methods
+ ,['__construct', '§( {@} )']
+ ,['__destruct', '§( {@} )']
+ ,['__sleep', '§( {@} )']
+ ,['__wakeup', '§( {@} )']
+ ,['__toString', '§( {@} )']
+ // include
+ ,['include', '§ "{@}";']
+ ,['include_once', '§ "{@}";']
+ ,['require', '§ "{@}";']
+ ,['require_once', '§ "{@}";']
+ // statements
+ ,['for', '§( {@} )']
+ ,['foreach', '§( {@} )']
+ ,['if', '§( {@} )']
+ ,['elseif', '§( {@} )']
+ ,['while', '§( {@} )']
+ ,['switch', '§( {@} )']
+ ,['break']
+ ,['case']
+ ,['continue']
+ ,['do']
+ ,['else']
+ ,['endif']
+ ,['endswitch']
+ ,['endwhile']
+ ,['return']
+ // function
+ ,['unset', '§( {@} )']
+ ]
+ }
+ }
+ ,"live": {
+
+ // class NAME: /class\W+([a-z]+)\W+/gi
+ // method: /^(public|private|protected)?\s*function\s+([a-z][a-z0-9\_]*)\s*(\([^\{]*\))/gmi
+ // static: /^(public|private|protected)?\s+static\s+(public|private|protected)?\s*function\s+([a-z][a-z0-9\_]*)\s*(\([^\{]*\))/gmi
+ // attributes: /(\$this\-\>|(?:var|public|protected|private)\W+\$)([a-z0-9\_]+)(?!\()\b/gi
+ // v1 : /(\$this\-\>|var\W+|public\W+|protected\W+|private\W+)([a-z0-9\_]+)\W*(=|;)/gi
+ // var type: /(\$(this\-\>)?[a-z0-9\_]+)\s*\=\s*new\s+([a-z0-9\_])+/gi
+
+
+ "REGEXP": { "before_word": "[^a-zA-Z0-9_]|^" // \\s|\\.|
+ ,"possible_words_letters": "[a-zA-Z0-9_\$]+"
+ ,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
+ ,"prefix_separator": "\\-\\>"
+ }
+ ,"CASE_SENSITIVE": true
+ ,"MAX_TEXT_LENGTH": 100 // the maximum length of the text being analyzed before the cursor position
+ ,"KEYWORDS": {
+ '$this': [ // the prefix of thoses items
+ ['test']
+ ]
+ }
+ }
+ }
+};