mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-08-08 17:53:08 +02:00
[LocalFiles Editor]
Update editarea to 0.8.2. Remove CSS tab. Fix jQuery path. git-svn-id: http://piwigo.org/svn/trunk@5160 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
@@ -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";
|
||||
Reference in New Issue
Block a user