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.
Files changed (144) hide show
  1. data/LICENSE.txt +22 -0
  2. data/README.md +31 -0
  3. data/lib/editarea-rails.rb +8 -0
  4. data/lib/editarea-rails/version.rb +5 -0
  5. data/vendor/assets/images/autocompletion.gif +0 -0
  6. data/vendor/assets/images/close.gif +0 -0
  7. data/vendor/assets/images/fullscreen.gif +0 -0
  8. data/vendor/assets/images/go_to_line.gif +0 -0
  9. data/vendor/assets/images/help.gif +0 -0
  10. data/vendor/assets/images/highlight.gif +0 -0
  11. data/vendor/assets/images/load.gif +0 -0
  12. data/vendor/assets/images/move.gif +0 -0
  13. data/vendor/assets/images/newdocument.gif +0 -0
  14. data/vendor/assets/images/opacity.png +0 -0
  15. data/vendor/assets/images/plugins/charmap/charmap.gif +0 -0
  16. data/vendor/assets/images/plugins/test/css/test.css +3 -0
  17. data/vendor/assets/images/plugins/test/images/Thumbs.db +0 -0
  18. data/vendor/assets/images/plugins/test/images/test.gif +0 -0
  19. data/vendor/assets/images/plugins/test/langs/bg.js +10 -0
  20. data/vendor/assets/images/plugins/test/langs/cs.js +4 -0
  21. data/vendor/assets/images/plugins/test/langs/de.js +4 -0
  22. data/vendor/assets/images/plugins/test/langs/dk.js +4 -0
  23. data/vendor/assets/images/plugins/test/langs/en.js +4 -0
  24. data/vendor/assets/images/plugins/test/langs/eo.js +4 -0
  25. data/vendor/assets/images/plugins/test/langs/es.js +4 -0
  26. data/vendor/assets/images/plugins/test/langs/fr.js +4 -0
  27. data/vendor/assets/images/plugins/test/langs/hr.js +4 -0
  28. data/vendor/assets/images/plugins/test/langs/it.js +4 -0
  29. data/vendor/assets/images/plugins/test/langs/ja.js +4 -0
  30. data/vendor/assets/images/plugins/test/langs/mk.js +4 -0
  31. data/vendor/assets/images/plugins/test/langs/nl.js +4 -0
  32. data/vendor/assets/images/plugins/test/langs/pl.js +4 -0
  33. data/vendor/assets/images/plugins/test/langs/pt.js +4 -0
  34. data/vendor/assets/images/plugins/test/langs/ru.js +4 -0
  35. data/vendor/assets/images/plugins/test/langs/sk.js +4 -0
  36. data/vendor/assets/images/plugins/test/langs/zh.js +4 -0
  37. data/vendor/assets/images/plugins/test/test.js +110 -0
  38. data/vendor/assets/images/plugins/test/test2.js +1 -0
  39. data/vendor/assets/images/processing.gif +0 -0
  40. data/vendor/assets/images/redo.gif +0 -0
  41. data/vendor/assets/images/reset_highlight.gif +0 -0
  42. data/vendor/assets/images/save.gif +0 -0
  43. data/vendor/assets/images/search.gif +0 -0
  44. data/vendor/assets/images/smooth_selection.gif +0 -0
  45. data/vendor/assets/images/spacer.gif +0 -0
  46. data/vendor/assets/images/statusbar_resize.gif +0 -0
  47. data/vendor/assets/images/undo.gif +0 -0
  48. data/vendor/assets/images/word_wrap.gif +0 -0
  49. data/vendor/assets/javascripts/autocompletion.js +491 -0
  50. data/vendor/assets/javascripts/edit_area.js +527 -0
  51. data/vendor/assets/javascripts/edit_area_full.js +38 -0
  52. data/vendor/assets/javascripts/edit_area_functions.js +1202 -0
  53. data/vendor/assets/javascripts/edit_area_loader.js +1081 -0
  54. data/vendor/assets/javascripts/elements_functions.js +336 -0
  55. data/vendor/assets/javascripts/highlight.js +407 -0
  56. data/vendor/assets/javascripts/keyboard.js +145 -0
  57. data/vendor/assets/javascripts/langs/bg.js +54 -0
  58. data/vendor/assets/javascripts/langs/cs.js +48 -0
  59. data/vendor/assets/javascripts/langs/de.js +48 -0
  60. data/vendor/assets/javascripts/langs/dk.js +48 -0
  61. data/vendor/assets/javascripts/langs/en.js +48 -0
  62. data/vendor/assets/javascripts/langs/eo.js +48 -0
  63. data/vendor/assets/javascripts/langs/es.js +48 -0
  64. data/vendor/assets/javascripts/langs/fi.js +48 -0
  65. data/vendor/assets/javascripts/langs/fr.js +48 -0
  66. data/vendor/assets/javascripts/langs/hr.js +48 -0
  67. data/vendor/assets/javascripts/langs/it.js +48 -0
  68. data/vendor/assets/javascripts/langs/ja.js +48 -0
  69. data/vendor/assets/javascripts/langs/mk.js +48 -0
  70. data/vendor/assets/javascripts/langs/nl.js +48 -0
  71. data/vendor/assets/javascripts/langs/pl.js +48 -0
  72. data/vendor/assets/javascripts/langs/pt.js +48 -0
  73. data/vendor/assets/javascripts/langs/ru.js +48 -0
  74. data/vendor/assets/javascripts/langs/sk.js +48 -0
  75. data/vendor/assets/javascripts/langs/zh.js +48 -0
  76. data/vendor/assets/javascripts/manage_area.js +623 -0
  77. data/vendor/assets/javascripts/plugins/charmap/charmap.js +90 -0
  78. data/vendor/assets/javascripts/plugins/charmap/jscripts/map.js +373 -0
  79. data/vendor/assets/javascripts/plugins/charmap/langs/bg.js +12 -0
  80. data/vendor/assets/javascripts/plugins/charmap/langs/cs.js +6 -0
  81. data/vendor/assets/javascripts/plugins/charmap/langs/de.js +6 -0
  82. data/vendor/assets/javascripts/plugins/charmap/langs/dk.js +6 -0
  83. data/vendor/assets/javascripts/plugins/charmap/langs/en.js +6 -0
  84. data/vendor/assets/javascripts/plugins/charmap/langs/eo.js +6 -0
  85. data/vendor/assets/javascripts/plugins/charmap/langs/es.js +6 -0
  86. data/vendor/assets/javascripts/plugins/charmap/langs/fr.js +6 -0
  87. data/vendor/assets/javascripts/plugins/charmap/langs/hr.js +6 -0
  88. data/vendor/assets/javascripts/plugins/charmap/langs/it.js +6 -0
  89. data/vendor/assets/javascripts/plugins/charmap/langs/ja.js +6 -0
  90. data/vendor/assets/javascripts/plugins/charmap/langs/mk.js +6 -0
  91. data/vendor/assets/javascripts/plugins/charmap/langs/nl.js +6 -0
  92. data/vendor/assets/javascripts/plugins/charmap/langs/pl.js +6 -0
  93. data/vendor/assets/javascripts/plugins/charmap/langs/pt.js +6 -0
  94. data/vendor/assets/javascripts/plugins/charmap/langs/ru.js +6 -0
  95. data/vendor/assets/javascripts/plugins/charmap/langs/sk.js +6 -0
  96. data/vendor/assets/javascripts/plugins/charmap/langs/zh.js +6 -0
  97. data/vendor/assets/javascripts/plugins/charmap/popup.html +24 -0
  98. data/vendor/assets/javascripts/plugins/test/langs/bg.js +10 -0
  99. data/vendor/assets/javascripts/plugins/test/langs/cs.js +4 -0
  100. data/vendor/assets/javascripts/plugins/test/langs/de.js +4 -0
  101. data/vendor/assets/javascripts/plugins/test/langs/dk.js +4 -0
  102. data/vendor/assets/javascripts/plugins/test/langs/en.js +4 -0
  103. data/vendor/assets/javascripts/plugins/test/langs/eo.js +4 -0
  104. data/vendor/assets/javascripts/plugins/test/langs/es.js +4 -0
  105. data/vendor/assets/javascripts/plugins/test/langs/fr.js +4 -0
  106. data/vendor/assets/javascripts/plugins/test/langs/hr.js +4 -0
  107. data/vendor/assets/javascripts/plugins/test/langs/it.js +4 -0
  108. data/vendor/assets/javascripts/plugins/test/langs/ja.js +4 -0
  109. data/vendor/assets/javascripts/plugins/test/langs/mk.js +4 -0
  110. data/vendor/assets/javascripts/plugins/test/langs/nl.js +4 -0
  111. data/vendor/assets/javascripts/plugins/test/langs/pl.js +4 -0
  112. data/vendor/assets/javascripts/plugins/test/langs/pt.js +4 -0
  113. data/vendor/assets/javascripts/plugins/test/langs/ru.js +4 -0
  114. data/vendor/assets/javascripts/plugins/test/langs/sk.js +4 -0
  115. data/vendor/assets/javascripts/plugins/test/langs/zh.js +4 -0
  116. data/vendor/assets/javascripts/plugins/test/test.js +110 -0
  117. data/vendor/assets/javascripts/plugins/test/test2.js +1 -0
  118. data/vendor/assets/javascripts/reg_syntax.js +166 -0
  119. data/vendor/assets/javascripts/reg_syntax/basic.js +70 -0
  120. data/vendor/assets/javascripts/reg_syntax/brainfuck.js +45 -0
  121. data/vendor/assets/javascripts/reg_syntax/c.js +63 -0
  122. data/vendor/assets/javascripts/reg_syntax/coldfusion.js +120 -0
  123. data/vendor/assets/javascripts/reg_syntax/cpp.js +66 -0
  124. data/vendor/assets/javascripts/reg_syntax/css.js +85 -0
  125. data/vendor/assets/javascripts/reg_syntax/html.js +51 -0
  126. data/vendor/assets/javascripts/reg_syntax/java.js +57 -0
  127. data/vendor/assets/javascripts/reg_syntax/js.js +94 -0
  128. data/vendor/assets/javascripts/reg_syntax/pas.js +83 -0
  129. data/vendor/assets/javascripts/reg_syntax/perl.js +88 -0
  130. data/vendor/assets/javascripts/reg_syntax/php.js +157 -0
  131. data/vendor/assets/javascripts/reg_syntax/python.js +145 -0
  132. data/vendor/assets/javascripts/reg_syntax/robotstxt.js +25 -0
  133. data/vendor/assets/javascripts/reg_syntax/ruby.js +68 -0
  134. data/vendor/assets/javascripts/reg_syntax/sql.js +56 -0
  135. data/vendor/assets/javascripts/reg_syntax/tsql.js +88 -0
  136. data/vendor/assets/javascripts/reg_syntax/vb.js +53 -0
  137. data/vendor/assets/javascripts/reg_syntax/xml.js +57 -0
  138. data/vendor/assets/javascripts/regexp.js +139 -0
  139. data/vendor/assets/javascripts/resize_area.js +73 -0
  140. data/vendor/assets/javascripts/search_replace.js +174 -0
  141. data/vendor/assets/stylesheets/edit_area.css +530 -0
  142. data/vendor/assets/stylesheets/plugins/charmap/css/charmap.css +64 -0
  143. data/vendor/assets/stylesheets/plugins/test/css/test.css +3 -0
  144. 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,6 @@
1
+ editArea.add_lang("cs",{
2
+ charmap_but: "Visual keyboard",
3
+ charmap_title: "Visual keyboard",
4
+ charmap_choose_block: "select language block",
5
+ charmap_insert:"insert this character"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("de",{
2
+ charmap_but: "Sonderzeichen",
3
+ charmap_title: "Sonderzeichen",
4
+ charmap_choose_block: "Bereich auswählen",
5
+ charmap_insert: "dieses Zeichen einfügen"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("dk",{
2
+ charmap_but: "Visual keyboard",
3
+ charmap_title: "Visual keyboard",
4
+ charmap_choose_block: "select language block",
5
+ charmap_insert:"insert this character"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("en",{
2
+ charmap_but: "Visual keyboard",
3
+ charmap_title: "Visual keyboard",
4
+ charmap_choose_block: "select language block",
5
+ charmap_insert:"insert this character"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("eo",{
2
+ charmap_but: "Ekranklavaro",
3
+ charmap_title: "Ekranklavaro",
4
+ charmap_choose_block: "Elekto de lingvo",
5
+ charmap_insert:"enmeti tiun signaron"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("es",{
2
+ charmap_but: "Visual keyboard",
3
+ charmap_title: "Visual keyboard",
4
+ charmap_choose_block: "select language block",
5
+ charmap_insert:"insert this character"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("fr",{
2
+ charmap_but: "Clavier visuel",
3
+ charmap_title: "Clavier visuel",
4
+ charmap_choose_block: "choix du language",
5
+ charmap_insert:"insérer ce caractère"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("hr",{
2
+ charmap_but: "Virtualna tipkovnica",
3
+ charmap_title: "Virtualna tipkovnica",
4
+ charmap_choose_block: "Odaberi blok s jezikom",
5
+ charmap_insert:"Ubaci taj znak"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("it",{
2
+ charmap_but: "Tastiera visuale",
3
+ charmap_title: "Tastiera visuale",
4
+ charmap_choose_block: "seleziona blocco",
5
+ charmap_insert:"inserisci questo carattere"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("ja",{
2
+ charmap_but: "Visual keyboard",
3
+ charmap_title: "Visual keyboard",
4
+ charmap_choose_block: "select language block",
5
+ charmap_insert:"insert this character"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("mkn",{
2
+ charmap_but: "Visual keyboard",
3
+ charmap_title: "Visual keyboard",
4
+ charmap_choose_block: "select language block",
5
+ charmap_insert:"insert this character"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("nl",{
2
+ charmap_but: "Visueel toetsenbord",
3
+ charmap_title: "Visueel toetsenbord",
4
+ charmap_choose_block: "Kies een taal blok",
5
+ charmap_insert:"Voeg dit symbool in"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("pl",{
2
+ charmap_but: "Klawiatura ekranowa",
3
+ charmap_title: "Klawiatura ekranowa",
4
+ charmap_choose_block: "wybierz grupę znaków",
5
+ charmap_insert:"wstaw ten znak"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("pt",{
2
+ charmap_but: "Visual keyboard",
3
+ charmap_title: "Visual keyboard",
4
+ charmap_choose_block: "select language block",
5
+ charmap_insert:"insert this character"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("ru",{
2
+ charmap_but: "Визуальная клавиатура",
3
+ charmap_title: "Визуальная клавиатура",
4
+ charmap_choose_block: "выбрать языковой блок",
5
+ charmap_insert:"вставить этот символ"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("sk",{
2
+ charmap_but: "Vizuálna klávesnica",
3
+ charmap_title: "Vizuálna klávesnica",
4
+ charmap_choose_block: "vyber jazykový blok",
5
+ charmap_insert: "vlož tento znak"
6
+ });
@@ -0,0 +1,6 @@
1
+ editArea.add_lang("zh",{
2
+ charmap_but: "软键盘",
3
+ charmap_title: "软键盘",
4
+ charmap_choose_block: "选择一个语言块",
5
+ charmap_insert:"插入此字符"
6
+ });
@@ -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,10 @@
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
+ test_select: "избери таг",
9
+ test_but: "тествай копието"
10
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("cs",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("de",{
2
+ test_select: "Tag ausw&auml;hlen",
3
+ test_but: "Test Button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("dk",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("en",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("eo",{
2
+ test_select:"elekto de marko",
3
+ test_but: "provo-butono"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("es",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("fr",{
2
+ test_select:"choix balise",
3
+ test_but: "bouton de test"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("hr",{
2
+ test_select: "Odaberi tag",
3
+ test_but: "Probna tipka"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("it",{
2
+ test_select: "seleziona tag",
3
+ test_but: "pulsante di test"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("ja",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("mk",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("nl",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("pl",{
2
+ test_select: "wybierz tag",
3
+ test_but: "test"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("pt",{
2
+ test_select: "select tag",
3
+ test_but: "test button"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("ru",{
2
+ test_select: "выбрать тэг",
3
+ test_but: "тестировать кнопку"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("sk",{
2
+ test_select: "vyber tag",
3
+ test_but: "testovacie tlačidlo"
4
+ });
@@ -0,0 +1,4 @@
1
+ editArea.add_lang("zh",{
2
+ test_select: "选择标签",
3
+ test_but: "测试按钮"
4
+ });
@@ -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";