editarea-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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";