editarea-rails 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.txt +22 -0
- data/README.md +31 -0
- data/lib/editarea-rails.rb +8 -0
- data/lib/editarea-rails/version.rb +5 -0
- data/vendor/assets/images/autocompletion.gif +0 -0
- data/vendor/assets/images/close.gif +0 -0
- data/vendor/assets/images/fullscreen.gif +0 -0
- data/vendor/assets/images/go_to_line.gif +0 -0
- data/vendor/assets/images/help.gif +0 -0
- data/vendor/assets/images/highlight.gif +0 -0
- data/vendor/assets/images/load.gif +0 -0
- data/vendor/assets/images/move.gif +0 -0
- data/vendor/assets/images/newdocument.gif +0 -0
- data/vendor/assets/images/opacity.png +0 -0
- data/vendor/assets/images/plugins/charmap/charmap.gif +0 -0
- data/vendor/assets/images/plugins/test/css/test.css +3 -0
- data/vendor/assets/images/plugins/test/images/Thumbs.db +0 -0
- data/vendor/assets/images/plugins/test/images/test.gif +0 -0
- data/vendor/assets/images/plugins/test/langs/bg.js +10 -0
- data/vendor/assets/images/plugins/test/langs/cs.js +4 -0
- data/vendor/assets/images/plugins/test/langs/de.js +4 -0
- data/vendor/assets/images/plugins/test/langs/dk.js +4 -0
- data/vendor/assets/images/plugins/test/langs/en.js +4 -0
- data/vendor/assets/images/plugins/test/langs/eo.js +4 -0
- data/vendor/assets/images/plugins/test/langs/es.js +4 -0
- data/vendor/assets/images/plugins/test/langs/fr.js +4 -0
- data/vendor/assets/images/plugins/test/langs/hr.js +4 -0
- data/vendor/assets/images/plugins/test/langs/it.js +4 -0
- data/vendor/assets/images/plugins/test/langs/ja.js +4 -0
- data/vendor/assets/images/plugins/test/langs/mk.js +4 -0
- data/vendor/assets/images/plugins/test/langs/nl.js +4 -0
- data/vendor/assets/images/plugins/test/langs/pl.js +4 -0
- data/vendor/assets/images/plugins/test/langs/pt.js +4 -0
- data/vendor/assets/images/plugins/test/langs/ru.js +4 -0
- data/vendor/assets/images/plugins/test/langs/sk.js +4 -0
- data/vendor/assets/images/plugins/test/langs/zh.js +4 -0
- data/vendor/assets/images/plugins/test/test.js +110 -0
- data/vendor/assets/images/plugins/test/test2.js +1 -0
- data/vendor/assets/images/processing.gif +0 -0
- data/vendor/assets/images/redo.gif +0 -0
- data/vendor/assets/images/reset_highlight.gif +0 -0
- data/vendor/assets/images/save.gif +0 -0
- data/vendor/assets/images/search.gif +0 -0
- data/vendor/assets/images/smooth_selection.gif +0 -0
- data/vendor/assets/images/spacer.gif +0 -0
- data/vendor/assets/images/statusbar_resize.gif +0 -0
- data/vendor/assets/images/undo.gif +0 -0
- data/vendor/assets/images/word_wrap.gif +0 -0
- data/vendor/assets/javascripts/autocompletion.js +491 -0
- data/vendor/assets/javascripts/edit_area.js +527 -0
- data/vendor/assets/javascripts/edit_area_full.js +38 -0
- data/vendor/assets/javascripts/edit_area_functions.js +1202 -0
- data/vendor/assets/javascripts/edit_area_loader.js +1081 -0
- data/vendor/assets/javascripts/elements_functions.js +336 -0
- data/vendor/assets/javascripts/highlight.js +407 -0
- data/vendor/assets/javascripts/keyboard.js +145 -0
- data/vendor/assets/javascripts/langs/bg.js +54 -0
- data/vendor/assets/javascripts/langs/cs.js +48 -0
- data/vendor/assets/javascripts/langs/de.js +48 -0
- data/vendor/assets/javascripts/langs/dk.js +48 -0
- data/vendor/assets/javascripts/langs/en.js +48 -0
- data/vendor/assets/javascripts/langs/eo.js +48 -0
- data/vendor/assets/javascripts/langs/es.js +48 -0
- data/vendor/assets/javascripts/langs/fi.js +48 -0
- data/vendor/assets/javascripts/langs/fr.js +48 -0
- data/vendor/assets/javascripts/langs/hr.js +48 -0
- data/vendor/assets/javascripts/langs/it.js +48 -0
- data/vendor/assets/javascripts/langs/ja.js +48 -0
- data/vendor/assets/javascripts/langs/mk.js +48 -0
- data/vendor/assets/javascripts/langs/nl.js +48 -0
- data/vendor/assets/javascripts/langs/pl.js +48 -0
- data/vendor/assets/javascripts/langs/pt.js +48 -0
- data/vendor/assets/javascripts/langs/ru.js +48 -0
- data/vendor/assets/javascripts/langs/sk.js +48 -0
- data/vendor/assets/javascripts/langs/zh.js +48 -0
- data/vendor/assets/javascripts/manage_area.js +623 -0
- data/vendor/assets/javascripts/plugins/charmap/charmap.js +90 -0
- data/vendor/assets/javascripts/plugins/charmap/jscripts/map.js +373 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/bg.js +12 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/cs.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/de.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/dk.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/en.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/eo.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/es.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/fr.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/hr.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/it.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/ja.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/mk.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/nl.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/pl.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/pt.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/ru.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/sk.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/langs/zh.js +6 -0
- data/vendor/assets/javascripts/plugins/charmap/popup.html +24 -0
- data/vendor/assets/javascripts/plugins/test/langs/bg.js +10 -0
- data/vendor/assets/javascripts/plugins/test/langs/cs.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/de.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/dk.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/en.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/eo.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/es.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/fr.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/hr.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/it.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/ja.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/mk.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/nl.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/pl.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/pt.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/ru.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/sk.js +4 -0
- data/vendor/assets/javascripts/plugins/test/langs/zh.js +4 -0
- data/vendor/assets/javascripts/plugins/test/test.js +110 -0
- data/vendor/assets/javascripts/plugins/test/test2.js +1 -0
- data/vendor/assets/javascripts/reg_syntax.js +166 -0
- data/vendor/assets/javascripts/reg_syntax/basic.js +70 -0
- data/vendor/assets/javascripts/reg_syntax/brainfuck.js +45 -0
- data/vendor/assets/javascripts/reg_syntax/c.js +63 -0
- data/vendor/assets/javascripts/reg_syntax/coldfusion.js +120 -0
- data/vendor/assets/javascripts/reg_syntax/cpp.js +66 -0
- data/vendor/assets/javascripts/reg_syntax/css.js +85 -0
- data/vendor/assets/javascripts/reg_syntax/html.js +51 -0
- data/vendor/assets/javascripts/reg_syntax/java.js +57 -0
- data/vendor/assets/javascripts/reg_syntax/js.js +94 -0
- data/vendor/assets/javascripts/reg_syntax/pas.js +83 -0
- data/vendor/assets/javascripts/reg_syntax/perl.js +88 -0
- data/vendor/assets/javascripts/reg_syntax/php.js +157 -0
- data/vendor/assets/javascripts/reg_syntax/python.js +145 -0
- data/vendor/assets/javascripts/reg_syntax/robotstxt.js +25 -0
- data/vendor/assets/javascripts/reg_syntax/ruby.js +68 -0
- data/vendor/assets/javascripts/reg_syntax/sql.js +56 -0
- data/vendor/assets/javascripts/reg_syntax/tsql.js +88 -0
- data/vendor/assets/javascripts/reg_syntax/vb.js +53 -0
- data/vendor/assets/javascripts/reg_syntax/xml.js +57 -0
- data/vendor/assets/javascripts/regexp.js +139 -0
- data/vendor/assets/javascripts/resize_area.js +73 -0
- data/vendor/assets/javascripts/search_replace.js +174 -0
- data/vendor/assets/stylesheets/edit_area.css +530 -0
- data/vendor/assets/stylesheets/plugins/charmap/css/charmap.css +64 -0
- data/vendor/assets/stylesheets/plugins/test/css/test.css +3 -0
- metadata +210 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
/*
|
2
|
+
* Bulgarian translation
|
3
|
+
* Author: Valentin Hristov
|
4
|
+
* Company: SOFTKIT Bulgarian
|
5
|
+
* Site: http://www.softkit-bg.com
|
6
|
+
*/
|
7
|
+
editArea.add_lang("bg",{
|
8
|
+
charmap_but: "Виртуална клавиатура",
|
9
|
+
charmap_title: "Виртуална клавиатура",
|
10
|
+
charmap_choose_block: "избери езиков блок",
|
11
|
+
charmap_insert:"постави този символ"
|
12
|
+
});
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
|
4
|
+
<head>
|
5
|
+
<title>{$charmap_title}</title>
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<link rel="stylesheet" type="text/css" href="css/charmap.css" />
|
8
|
+
<script language="Javascript" type="text/javascript" src="jscripts/map.js">
|
9
|
+
</script>
|
10
|
+
</head>
|
11
|
+
<body onload='map_load()'>
|
12
|
+
<div id='preview_code' class='preview'></div>
|
13
|
+
<div id='preview_char' class='preview'></div>
|
14
|
+
<h1>{$charmap_title}:</h1>
|
15
|
+
<select id='select_range' onchange='renderCharMapHTML()' title='{$charmap_choose_block}'>
|
16
|
+
</select>
|
17
|
+
<div id='char_list'>
|
18
|
+
|
19
|
+
</div>
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
</body>
|
24
|
+
</html>
|
@@ -0,0 +1,110 @@
|
|
1
|
+
/**
|
2
|
+
* Plugin designed for test prupose. It add a button (that manage an alert) and a select (that allow to insert tags) in the toolbar.
|
3
|
+
* This plugin also disable the "f" key in the editarea, and load a CSS and a JS file
|
4
|
+
*/
|
5
|
+
var EditArea_test= {
|
6
|
+
/**
|
7
|
+
* Get called once this file is loaded (editArea still not initialized)
|
8
|
+
*
|
9
|
+
* @return nothing
|
10
|
+
*/
|
11
|
+
init: function(){
|
12
|
+
// alert("test init: "+ this._someInternalFunction(2, 3));
|
13
|
+
editArea.load_css(this.baseURL+"css/test.css");
|
14
|
+
editArea.load_script(this.baseURL+"test2.js");
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Returns the HTML code for a specific control string or false if this plugin doesn't have that control.
|
18
|
+
* A control can be a button, select list or any other HTML item to present in the EditArea user interface.
|
19
|
+
* Language variables such as {$lang_somekey} will also be replaced with contents from
|
20
|
+
* the language packs.
|
21
|
+
*
|
22
|
+
* @param {string} ctrl_name: the name of the control to add
|
23
|
+
* @return HTML code for a specific control or false.
|
24
|
+
* @type string or boolean
|
25
|
+
*/
|
26
|
+
,get_control_html: function(ctrl_name){
|
27
|
+
switch(ctrl_name){
|
28
|
+
case "test_but":
|
29
|
+
// Control id, button img, command
|
30
|
+
return parent.editAreaLoader.get_button_html('test_but', 'test.gif', 'test_cmd', false, this.baseURL);
|
31
|
+
case "test_select":
|
32
|
+
html= "<select id='test_select' onchange='javascript:editArea.execCommand(\"test_select_change\")' fileSpecific='no'>"
|
33
|
+
+" <option value='-1'>{$test_select}</option>"
|
34
|
+
+" <option value='h1'>h1</option>"
|
35
|
+
+" <option value='h2'>h2</option>"
|
36
|
+
+" <option value='h3'>h3</option>"
|
37
|
+
+" <option value='h4'>h4</option>"
|
38
|
+
+" <option value='h5'>h5</option>"
|
39
|
+
+" <option value='h6'>h6</option>"
|
40
|
+
+" </select>";
|
41
|
+
return html;
|
42
|
+
}
|
43
|
+
return false;
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* Get called once EditArea is fully loaded and initialised
|
47
|
+
*
|
48
|
+
* @return nothing
|
49
|
+
*/
|
50
|
+
,onload: function(){
|
51
|
+
alert("test load");
|
52
|
+
}
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Is called each time the user touch a keyboard key.
|
56
|
+
*
|
57
|
+
* @param (event) e: the keydown event
|
58
|
+
* @return true - pass to next handler in chain, false - stop chain execution
|
59
|
+
* @type boolean
|
60
|
+
*/
|
61
|
+
,onkeydown: function(e){
|
62
|
+
var str= String.fromCharCode(e.keyCode);
|
63
|
+
// desactivate the "f" character
|
64
|
+
if(str.toLowerCase()=="f"){
|
65
|
+
return true;
|
66
|
+
}
|
67
|
+
return false;
|
68
|
+
}
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Executes a specific command, this function handles plugin commands.
|
72
|
+
*
|
73
|
+
* @param {string} cmd: the name of the command being executed
|
74
|
+
* @param {unknown} param: the parameter of the command
|
75
|
+
* @return true - pass to next handler in chain, false - stop chain execution
|
76
|
+
* @type boolean
|
77
|
+
*/
|
78
|
+
,execCommand: function(cmd, param){
|
79
|
+
// Handle commands
|
80
|
+
switch(cmd){
|
81
|
+
case "test_select_change":
|
82
|
+
var val= document.getElementById("test_select").value;
|
83
|
+
if(val!=-1)
|
84
|
+
parent.editAreaLoader.insertTags(editArea.id, "<"+val+">", "</"+val+">");
|
85
|
+
document.getElementById("test_select").options[0].selected=true;
|
86
|
+
return false;
|
87
|
+
case "test_cmd":
|
88
|
+
alert("user clicked on test_cmd");
|
89
|
+
return false;
|
90
|
+
}
|
91
|
+
// Pass to next handler in chain
|
92
|
+
return true;
|
93
|
+
}
|
94
|
+
|
95
|
+
/**
|
96
|
+
* This is just an internal plugin method, prefix all internal methods with a _ character.
|
97
|
+
* The prefix is needed so they doesn't collide with future EditArea callback functions.
|
98
|
+
*
|
99
|
+
* @param {string} a Some arg1.
|
100
|
+
* @param {string} b Some arg2.
|
101
|
+
* @return Some return.
|
102
|
+
* @type unknown
|
103
|
+
*/
|
104
|
+
,_someInternalFunction : function(a, b) {
|
105
|
+
return a+b;
|
106
|
+
}
|
107
|
+
};
|
108
|
+
|
109
|
+
// Adds the plugin class to the list of available EditArea plugins
|
110
|
+
editArea.add_plugin("test", EditArea_test);
|
@@ -0,0 +1 @@
|
|
1
|
+
alert("test2.js is loaded from test plugin");
|
@@ -0,0 +1,166 @@
|
|
1
|
+
EditAreaLoader.prototype.get_regexp= function(text_array){
|
2
|
+
//res="( |=|\\n|\\r|\\[|\\(|µ|)(";
|
3
|
+
res="(\\b)(";
|
4
|
+
for(i=0; i<text_array.length; i++){
|
5
|
+
if(i>0)
|
6
|
+
res+="|";
|
7
|
+
//res+="("+ tab_text[i] +")";
|
8
|
+
//res+=tab_text[i].replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\{|\})/g, "\\$1");
|
9
|
+
res+=this.get_escaped_regexp(text_array[i]);
|
10
|
+
}
|
11
|
+
//res+=")( |\\.|:|\\{|\\(|\\)|\\[|\\]|\'|\"|\\r|\\n|\\t|$)";
|
12
|
+
res+=")(\\b)";
|
13
|
+
reg= new RegExp(res);
|
14
|
+
|
15
|
+
return res;
|
16
|
+
};
|
17
|
+
|
18
|
+
|
19
|
+
EditAreaLoader.prototype.get_escaped_regexp= function(str){
|
20
|
+
return str.toString().replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\}|\{|\$|\^|\|)/g, "\\$1");
|
21
|
+
};
|
22
|
+
|
23
|
+
EditAreaLoader.prototype.init_syntax_regexp= function(){
|
24
|
+
var lang_style= {};
|
25
|
+
for(var lang in this.load_syntax){
|
26
|
+
if(!this.syntax[lang]) // init the regexp if not already initialized
|
27
|
+
{
|
28
|
+
this.syntax[lang]= {};
|
29
|
+
this.syntax[lang]["keywords_reg_exp"]= {};
|
30
|
+
this.keywords_reg_exp_nb=0;
|
31
|
+
|
32
|
+
if(this.load_syntax[lang]['KEYWORDS']){
|
33
|
+
param="g";
|
34
|
+
if(this.load_syntax[lang]['KEYWORD_CASE_SENSITIVE']===false)
|
35
|
+
param+="i";
|
36
|
+
for(var i in this.load_syntax[lang]['KEYWORDS']){
|
37
|
+
if(typeof(this.load_syntax[lang]['KEYWORDS'][i])=="function") continue;
|
38
|
+
this.syntax[lang]["keywords_reg_exp"][i]= new RegExp(this.get_regexp( this.load_syntax[lang]['KEYWORDS'][i] ), param);
|
39
|
+
this.keywords_reg_exp_nb++;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
if(this.load_syntax[lang]['OPERATORS']){
|
44
|
+
var str="";
|
45
|
+
var nb=0;
|
46
|
+
for(var i in this.load_syntax[lang]['OPERATORS']){
|
47
|
+
if(typeof(this.load_syntax[lang]['OPERATORS'][i])=="function") continue;
|
48
|
+
if(nb>0)
|
49
|
+
str+="|";
|
50
|
+
str+=this.get_escaped_regexp(this.load_syntax[lang]['OPERATORS'][i]);
|
51
|
+
nb++;
|
52
|
+
}
|
53
|
+
if(str.length>0)
|
54
|
+
this.syntax[lang]["operators_reg_exp"]= new RegExp("("+str+")","g");
|
55
|
+
}
|
56
|
+
|
57
|
+
if(this.load_syntax[lang]['DELIMITERS']){
|
58
|
+
var str="";
|
59
|
+
var nb=0;
|
60
|
+
for(var i in this.load_syntax[lang]['DELIMITERS']){
|
61
|
+
if(typeof(this.load_syntax[lang]['DELIMITERS'][i])=="function") continue;
|
62
|
+
if(nb>0)
|
63
|
+
str+="|";
|
64
|
+
str+=this.get_escaped_regexp(this.load_syntax[lang]['DELIMITERS'][i]);
|
65
|
+
nb++;
|
66
|
+
}
|
67
|
+
if(str.length>0)
|
68
|
+
this.syntax[lang]["delimiters_reg_exp"]= new RegExp("("+str+")","g");
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
// /(("(\\"|[^"])*"?)|('(\\'|[^'])*'?)|(//(.|\r|\t)*\n)|(/\*(.|\n|\r|\t)*\*/)|(<!--(.|\n|\r|\t)*-->))/gi
|
73
|
+
var syntax_trace=[];
|
74
|
+
|
75
|
+
// /("(?:[^"\\]*(\\\\)*(\\"?)?)*("|$))/g
|
76
|
+
|
77
|
+
this.syntax[lang]["quotes"]={};
|
78
|
+
var quote_tab= [];
|
79
|
+
if(this.load_syntax[lang]['QUOTEMARKS']){
|
80
|
+
for(var i in this.load_syntax[lang]['QUOTEMARKS']){
|
81
|
+
if(typeof(this.load_syntax[lang]['QUOTEMARKS'][i])=="function") continue;
|
82
|
+
var x=this.get_escaped_regexp(this.load_syntax[lang]['QUOTEMARKS'][i]);
|
83
|
+
this.syntax[lang]["quotes"][x]=x;
|
84
|
+
//quote_tab[quote_tab.length]="("+x+"(?:\\\\"+x+"|[^"+x+"])*("+x+"|$))";
|
85
|
+
//previous working : quote_tab[quote_tab.length]="("+x+"(?:[^"+x+"\\\\]*(\\\\\\\\)*(\\\\"+x+"?)?)*("+x+"|$))";
|
86
|
+
quote_tab[quote_tab.length]="("+ x +"(\\\\.|[^"+ x +"])*(?:"+ x +"|$))";
|
87
|
+
|
88
|
+
syntax_trace.push(x);
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
this.syntax[lang]["comments"]={};
|
93
|
+
if(this.load_syntax[lang]['COMMENT_SINGLE']){
|
94
|
+
for(var i in this.load_syntax[lang]['COMMENT_SINGLE']){
|
95
|
+
if(typeof(this.load_syntax[lang]['COMMENT_SINGLE'][i])=="function") continue;
|
96
|
+
var x=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_SINGLE'][i]);
|
97
|
+
quote_tab[quote_tab.length]="("+x+"(.|\\r|\\t)*(\\n|$))";
|
98
|
+
syntax_trace.push(x);
|
99
|
+
this.syntax[lang]["comments"][x]="\n";
|
100
|
+
}
|
101
|
+
}
|
102
|
+
// (/\*(.|[\r\n])*?\*/)
|
103
|
+
if(this.load_syntax[lang]['COMMENT_MULTI']){
|
104
|
+
for(var i in this.load_syntax[lang]['COMMENT_MULTI']){
|
105
|
+
if(typeof(this.load_syntax[lang]['COMMENT_MULTI'][i])=="function") continue;
|
106
|
+
var start=this.get_escaped_regexp(i);
|
107
|
+
var end=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_MULTI'][i]);
|
108
|
+
quote_tab[quote_tab.length]="("+start+"(.|\\n|\\r)*?("+end+"|$))";
|
109
|
+
syntax_trace.push(start);
|
110
|
+
syntax_trace.push(end);
|
111
|
+
this.syntax[lang]["comments"][i]=this.load_syntax[lang]['COMMENT_MULTI'][i];
|
112
|
+
}
|
113
|
+
}
|
114
|
+
if(quote_tab.length>0)
|
115
|
+
this.syntax[lang]["comment_or_quote_reg_exp"]= new RegExp("("+quote_tab.join("|")+")","gi");
|
116
|
+
|
117
|
+
if(syntax_trace.length>0) // /((.|\n)*?)(\\*("|'|\/\*|\*\/|\/\/|$))/g
|
118
|
+
this.syntax[lang]["syntax_trace_regexp"]= new RegExp("((.|\n)*?)(\\\\*("+ syntax_trace.join("|") +"|$))", "gmi");
|
119
|
+
|
120
|
+
if(this.load_syntax[lang]['SCRIPT_DELIMITERS']){
|
121
|
+
this.syntax[lang]["script_delimiters"]= {};
|
122
|
+
for(var i in this.load_syntax[lang]['SCRIPT_DELIMITERS']){
|
123
|
+
if(typeof(this.load_syntax[lang]['SCRIPT_DELIMITERS'][i])=="function") continue;
|
124
|
+
this.syntax[lang]["script_delimiters"][i]= this.load_syntax[lang]['SCRIPT_DELIMITERS'];
|
125
|
+
}
|
126
|
+
}
|
127
|
+
|
128
|
+
this.syntax[lang]["custom_regexp"]= {};
|
129
|
+
if(this.load_syntax[lang]['REGEXPS']){
|
130
|
+
for(var i in this.load_syntax[lang]['REGEXPS']){
|
131
|
+
if(typeof(this.load_syntax[lang]['REGEXPS'][i])=="function") continue;
|
132
|
+
var val= this.load_syntax[lang]['REGEXPS'][i];
|
133
|
+
if(!this.syntax[lang]["custom_regexp"][val['execute']])
|
134
|
+
this.syntax[lang]["custom_regexp"][val['execute']]= {};
|
135
|
+
this.syntax[lang]["custom_regexp"][val['execute']][i]={'regexp' : new RegExp(val['search'], val['modifiers'])
|
136
|
+
, 'class' : val['class']};
|
137
|
+
}
|
138
|
+
}
|
139
|
+
|
140
|
+
if(this.load_syntax[lang]['STYLES']){
|
141
|
+
lang_style[lang]= {};
|
142
|
+
for(var i in this.load_syntax[lang]['STYLES']){
|
143
|
+
if(typeof(this.load_syntax[lang]['STYLES'][i])=="function") continue;
|
144
|
+
if(typeof(this.load_syntax[lang]['STYLES'][i]) != "string"){
|
145
|
+
for(var j in this.load_syntax[lang]['STYLES'][i]){
|
146
|
+
lang_style[lang][j]= this.load_syntax[lang]['STYLES'][i][j];
|
147
|
+
}
|
148
|
+
}else{
|
149
|
+
lang_style[lang][i]= this.load_syntax[lang]['STYLES'][i];
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
153
|
+
// build style string
|
154
|
+
var style="";
|
155
|
+
for(var i in lang_style[lang]){
|
156
|
+
if(lang_style[lang][i].length>0){
|
157
|
+
style+= "."+ lang +" ."+ i.toLowerCase() +" span{"+lang_style[lang][i]+"}\n";
|
158
|
+
style+= "."+ lang +" ."+ i.toLowerCase() +"{"+lang_style[lang][i]+"}\n";
|
159
|
+
}
|
160
|
+
}
|
161
|
+
this.syntax[lang]["styles"]=style;
|
162
|
+
}
|
163
|
+
}
|
164
|
+
};
|
165
|
+
|
166
|
+
editAreaLoader.waiting_loading["reg_syntax.js"]= "loaded";
|