editarea-rails 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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";
|