ace-rails-ap 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. data/.gitmodules +3 -0
  2. data/lib/ace/rails/version.rb +1 -1
  3. data/update.sh +3 -0
  4. data/vendor/assets/javascripts/ace-compat-noconflict.js +1 -0
  5. data/vendor/assets/javascripts/ace-compat-uncompressed-noconflict.js +480 -0
  6. data/vendor/assets/javascripts/ace-compat-uncompressed.js +480 -0
  7. data/vendor/assets/javascripts/ace-compat.js +1 -0
  8. data/vendor/assets/javascripts/ace-noconflict.js +10 -0
  9. data/vendor/assets/javascripts/ace-uncompressed-noconflict.js +19976 -0
  10. data/vendor/assets/javascripts/ace-uncompressed.js +6568 -998
  11. data/vendor/assets/javascripts/ace.js +1 -1
  12. data/vendor/assets/javascripts/keybinding-emacs-noconflict.js +1 -0
  13. data/vendor/assets/javascripts/keybinding-emacs-uncompressed-noconflict.js +150 -0
  14. data/vendor/assets/javascripts/keybinding-emacs-uncompressed.js +150 -0
  15. data/vendor/assets/javascripts/keybinding-emacs.js +1 -1
  16. data/vendor/assets/javascripts/keybinding-vim-noconflict.js +1 -0
  17. data/vendor/assets/javascripts/keybinding-vim-uncompressed-noconflict.js +138 -0
  18. data/vendor/assets/javascripts/keybinding-vim-uncompressed.js +138 -0
  19. data/vendor/assets/javascripts/keybinding-vim.js +1 -1
  20. data/vendor/assets/javascripts/mode-c_cpp-noconflict.js +1 -0
  21. data/vendor/assets/javascripts/mode-c_cpp-uncompressed-noconflict.js +919 -0
  22. data/vendor/assets/javascripts/mode-c_cpp-uncompressed.js +919 -0
  23. data/vendor/assets/javascripts/mode-c_cpp.js +1 -1
  24. data/vendor/assets/javascripts/mode-clojure-noconflict.js +1 -0
  25. data/vendor/assets/javascripts/mode-clojure-uncompressed-noconflict.js +422 -0
  26. data/vendor/assets/javascripts/mode-clojure-uncompressed.js +422 -0
  27. data/vendor/assets/javascripts/mode-clojure.js +1 -1
  28. data/vendor/assets/javascripts/mode-coffee-noconflict.js +1 -0
  29. data/vendor/assets/javascripts/mode-coffee-uncompressed-noconflict.js +607 -0
  30. data/vendor/assets/javascripts/mode-coffee-uncompressed.js +607 -0
  31. data/vendor/assets/javascripts/mode-coffee.js +1 -1
  32. data/vendor/assets/javascripts/mode-coldfusion-noconflict.js +1 -0
  33. data/vendor/assets/javascripts/mode-coldfusion-uncompressed-noconflict.js +2458 -0
  34. data/vendor/assets/javascripts/mode-coldfusion-uncompressed.js +2458 -0
  35. data/vendor/assets/javascripts/mode-coldfusion.js +1 -0
  36. data/vendor/assets/javascripts/mode-csharp-noconflict.js +1 -0
  37. data/vendor/assets/javascripts/mode-csharp-uncompressed-noconflict.js +769 -0
  38. data/vendor/assets/javascripts/mode-csharp-uncompressed.js +769 -0
  39. data/vendor/assets/javascripts/mode-csharp.js +1 -1
  40. data/vendor/assets/javascripts/mode-css-noconflict.js +1 -0
  41. data/vendor/assets/javascripts/mode-css-uncompressed-noconflict.js +641 -0
  42. data/vendor/assets/javascripts/mode-css-uncompressed.js +641 -0
  43. data/vendor/assets/javascripts/mode-css.js +1 -1
  44. data/vendor/assets/javascripts/mode-golang-noconflict.js +1 -0
  45. data/vendor/assets/javascripts/mode-golang-uncompressed-noconflict.js +378 -0
  46. data/vendor/assets/javascripts/mode-golang-uncompressed.js +378 -0
  47. data/vendor/assets/javascripts/mode-golang.js +1 -0
  48. data/vendor/assets/javascripts/mode-groovy-noconflict.js +1 -0
  49. data/vendor/assets/javascripts/mode-groovy-uncompressed-noconflict.js +1393 -0
  50. data/vendor/assets/javascripts/mode-groovy-uncompressed.js +1393 -0
  51. data/vendor/assets/javascripts/mode-groovy.js +1 -1
  52. data/vendor/assets/javascripts/mode-haxe-noconflict.js +1 -0
  53. data/vendor/assets/javascripts/mode-haxe-uncompressed-noconflict.js +769 -0
  54. data/vendor/assets/javascripts/mode-haxe-uncompressed.js +769 -0
  55. data/vendor/assets/javascripts/mode-haxe.js +1 -0
  56. data/vendor/assets/javascripts/mode-html-noconflict.js +1 -0
  57. data/vendor/assets/javascripts/mode-html-uncompressed-noconflict.js +2475 -0
  58. data/vendor/assets/javascripts/mode-html-uncompressed.js +2475 -0
  59. data/vendor/assets/javascripts/mode-html.js +1 -1
  60. data/vendor/assets/javascripts/mode-java-noconflict.js +1 -0
  61. data/vendor/assets/javascripts/mode-java-uncompressed-noconflict.js +1395 -0
  62. data/vendor/assets/javascripts/mode-java-uncompressed.js +1395 -0
  63. data/vendor/assets/javascripts/mode-java.js +1 -1
  64. data/vendor/assets/javascripts/mode-javascript-noconflict.js +1 -0
  65. data/vendor/assets/javascripts/mode-javascript-uncompressed-noconflict.js +1226 -0
  66. data/vendor/assets/javascripts/mode-javascript-uncompressed.js +1226 -0
  67. data/vendor/assets/javascripts/mode-javascript.js +1 -1
  68. data/vendor/assets/javascripts/mode-json-noconflict.js +1 -0
  69. data/vendor/assets/javascripts/mode-json-uncompressed-noconflict.js +701 -0
  70. data/vendor/assets/javascripts/mode-json-uncompressed.js +701 -0
  71. data/vendor/assets/javascripts/mode-json.js +1 -1
  72. data/vendor/assets/javascripts/mode-latex-noconflict.js +1 -0
  73. data/vendor/assets/javascripts/mode-latex-uncompressed-noconflict.js +95 -0
  74. data/vendor/assets/javascripts/mode-latex-uncompressed.js +95 -0
  75. data/vendor/assets/javascripts/mode-less-noconflict.js +1 -0
  76. data/vendor/assets/javascripts/mode-less-uncompressed-noconflict.js +655 -0
  77. data/vendor/assets/javascripts/mode-less-uncompressed.js +655 -0
  78. data/vendor/assets/javascripts/mode-less.js +1 -0
  79. data/vendor/assets/javascripts/mode-liquid-noconflict.js +1 -0
  80. data/vendor/assets/javascripts/mode-liquid-uncompressed-noconflict.js +1353 -0
  81. data/vendor/assets/javascripts/mode-liquid-uncompressed.js +1353 -0
  82. data/vendor/assets/javascripts/mode-liquid.js +1 -0
  83. data/vendor/assets/javascripts/mode-lua-noconflict.js +1 -0
  84. data/vendor/assets/javascripts/mode-lua-uncompressed-noconflict.js +523 -0
  85. data/vendor/assets/javascripts/mode-lua-uncompressed.js +523 -0
  86. data/vendor/assets/javascripts/mode-markdown-noconflict.js +1 -0
  87. data/vendor/assets/javascripts/mode-markdown-uncompressed-noconflict.js +2925 -0
  88. data/vendor/assets/javascripts/mode-markdown-uncompressed.js +2925 -0
  89. data/vendor/assets/javascripts/mode-markdown.js +1 -1
  90. data/vendor/assets/javascripts/mode-ocaml-noconflict.js +1 -0
  91. data/vendor/assets/javascripts/mode-ocaml-uncompressed-noconflict.js +539 -0
  92. data/vendor/assets/javascripts/mode-ocaml-uncompressed.js +539 -0
  93. data/vendor/assets/javascripts/mode-ocaml.js +1 -1
  94. data/vendor/assets/javascripts/mode-perl-noconflict.js +1 -0
  95. data/vendor/assets/javascripts/mode-perl-uncompressed-noconflict.js +574 -0
  96. data/vendor/assets/javascripts/mode-perl-uncompressed.js +574 -0
  97. data/vendor/assets/javascripts/mode-perl.js +1 -1
  98. data/vendor/assets/javascripts/mode-pgsql-noconflict.js +1 -0
  99. data/vendor/assets/javascripts/mode-pgsql-uncompressed-noconflict.js +1104 -0
  100. data/vendor/assets/javascripts/mode-pgsql-uncompressed.js +1104 -0
  101. data/vendor/assets/javascripts/mode-pgsql.js +1 -0
  102. data/vendor/assets/javascripts/mode-php-noconflict.js +1 -0
  103. data/vendor/assets/javascripts/mode-php-uncompressed-noconflict.js +1885 -0
  104. data/vendor/assets/javascripts/mode-php-uncompressed.js +1885 -0
  105. data/vendor/assets/javascripts/mode-php.js +1 -1
  106. data/vendor/assets/javascripts/mode-powershell-noconflict.js +1 -0
  107. data/vendor/assets/javascripts/mode-powershell-uncompressed-noconflict.js +710 -0
  108. data/vendor/assets/javascripts/mode-powershell-uncompressed.js +710 -0
  109. data/vendor/assets/javascripts/mode-powershell.js +1 -0
  110. data/vendor/assets/javascripts/mode-python-noconflict.js +1 -0
  111. data/vendor/assets/javascripts/mode-python-uncompressed-noconflict.js +507 -0
  112. data/vendor/assets/javascripts/mode-python-uncompressed.js +507 -0
  113. data/vendor/assets/javascripts/mode-python.js +1 -1
  114. data/vendor/assets/javascripts/mode-ruby-noconflict.js +1 -0
  115. data/vendor/assets/javascripts/mode-ruby-uncompressed-noconflict.js +391 -0
  116. data/vendor/assets/javascripts/mode-ruby-uncompressed.js +391 -0
  117. data/vendor/assets/javascripts/mode-ruby.js +1 -1
  118. data/vendor/assets/javascripts/mode-scad-noconflict.js +1 -0
  119. data/vendor/assets/javascripts/mode-scad-uncompressed-noconflict.js +907 -0
  120. data/vendor/assets/javascripts/mode-scad-uncompressed.js +907 -0
  121. data/vendor/assets/javascripts/mode-scad.js +1 -1
  122. data/vendor/assets/javascripts/mode-scala-noconflict.js +1 -0
  123. data/vendor/assets/javascripts/mode-scala-uncompressed-noconflict.js +1395 -0
  124. data/vendor/assets/javascripts/mode-scala-uncompressed.js +1395 -0
  125. data/vendor/assets/javascripts/mode-scala.js +1 -1
  126. data/vendor/assets/javascripts/mode-scss-noconflict.js +1 -0
  127. data/vendor/assets/javascripts/mode-scss-uncompressed-noconflict.js +679 -0
  128. data/vendor/assets/javascripts/mode-scss-uncompressed.js +679 -0
  129. data/vendor/assets/javascripts/mode-scss.js +1 -1
  130. data/vendor/assets/javascripts/mode-sh-noconflict.js +1 -0
  131. data/vendor/assets/javascripts/mode-sh-uncompressed-noconflict.js +289 -0
  132. data/vendor/assets/javascripts/mode-sh-uncompressed.js +289 -0
  133. data/vendor/assets/javascripts/mode-sh.js +1 -0
  134. data/vendor/assets/javascripts/mode-sql-noconflict.js +1 -0
  135. data/vendor/assets/javascripts/mode-sql-uncompressed-noconflict.js +159 -0
  136. data/vendor/assets/javascripts/mode-sql-uncompressed.js +159 -0
  137. data/vendor/assets/javascripts/mode-sql.js +1 -0
  138. data/vendor/assets/javascripts/mode-svg-noconflict.js +1 -0
  139. data/vendor/assets/javascripts/mode-svg-uncompressed-noconflict.js +2137 -0
  140. data/vendor/assets/javascripts/mode-svg-uncompressed.js +2137 -0
  141. data/vendor/assets/javascripts/mode-svg.js +1 -1
  142. data/vendor/assets/javascripts/mode-text-noconflict.js +0 -0
  143. data/vendor/assets/javascripts/mode-text-uncompressed-noconflict.js +0 -0
  144. data/vendor/assets/javascripts/mode-text-uncompressed.js +0 -0
  145. data/vendor/assets/javascripts/mode-text.js +0 -0
  146. data/vendor/assets/javascripts/mode-textile-noconflict.js +1 -0
  147. data/vendor/assets/javascripts/mode-textile-uncompressed-noconflict.js +254 -0
  148. data/vendor/assets/javascripts/mode-textile-uncompressed.js +254 -0
  149. data/vendor/assets/javascripts/mode-textile.js +1 -1
  150. data/vendor/assets/javascripts/mode-xml-noconflict.js +1 -0
  151. data/vendor/assets/javascripts/mode-xml-uncompressed-noconflict.js +1012 -0
  152. data/vendor/assets/javascripts/mode-xml-uncompressed.js +1012 -0
  153. data/vendor/assets/javascripts/mode-xml.js +1 -1
  154. data/vendor/assets/javascripts/mode-xquery-noconflict.js +1 -0
  155. data/vendor/assets/javascripts/mode-xquery-uncompressed-noconflict.js +540 -0
  156. data/vendor/assets/javascripts/mode-xquery-uncompressed.js +540 -0
  157. data/vendor/assets/javascripts/mode-xquery.js +1 -0
  158. data/vendor/assets/javascripts/theme-chrome-noconflict.js +1 -0
  159. data/vendor/assets/javascripts/theme-chrome-uncompressed-noconflict.js +207 -0
  160. data/vendor/assets/javascripts/theme-chrome-uncompressed.js +207 -0
  161. data/vendor/assets/javascripts/theme-chrome.js +1 -0
  162. data/vendor/assets/javascripts/theme-clouds-noconflict.js +1 -0
  163. data/vendor/assets/javascripts/theme-clouds-uncompressed-noconflict.js +160 -0
  164. data/vendor/assets/javascripts/theme-clouds-uncompressed.js +160 -0
  165. data/vendor/assets/javascripts/theme-clouds.js +1 -1
  166. data/vendor/assets/javascripts/theme-clouds_midnight-noconflict.js +1 -0
  167. data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed-noconflict.js +161 -0
  168. data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed.js +161 -0
  169. data/vendor/assets/javascripts/theme-clouds_midnight.js +1 -1
  170. data/vendor/assets/javascripts/theme-cobalt-noconflict.js +1 -0
  171. data/vendor/assets/javascripts/theme-cobalt-uncompressed-noconflict.js +187 -0
  172. data/vendor/assets/javascripts/theme-cobalt-uncompressed.js +187 -0
  173. data/vendor/assets/javascripts/theme-cobalt.js +1 -1
  174. data/vendor/assets/javascripts/theme-crimson_editor-noconflict.js +1 -0
  175. data/vendor/assets/javascripts/theme-crimson_editor-uncompressed-noconflict.js +198 -0
  176. data/vendor/assets/javascripts/theme-crimson_editor-uncompressed.js +198 -0
  177. data/vendor/assets/javascripts/theme-dawn-noconflict.js +1 -0
  178. data/vendor/assets/javascripts/theme-dawn-uncompressed-noconflict.js +191 -0
  179. data/vendor/assets/javascripts/theme-dawn-uncompressed.js +191 -0
  180. data/vendor/assets/javascripts/theme-dawn.js +1 -1
  181. data/vendor/assets/javascripts/theme-dreamweaver-noconflict.js +1 -0
  182. data/vendor/assets/javascripts/theme-dreamweaver-uncompressed-noconflict.js +227 -0
  183. data/vendor/assets/javascripts/theme-dreamweaver-uncompressed.js +227 -0
  184. data/vendor/assets/javascripts/theme-dreamweaver.js +1 -0
  185. data/vendor/assets/javascripts/theme-eclipse-noconflict.js +1 -0
  186. data/vendor/assets/javascripts/theme-eclipse-uncompressed-noconflict.js +147 -0
  187. data/vendor/assets/javascripts/theme-eclipse-uncompressed.js +147 -0
  188. data/vendor/assets/javascripts/theme-eclipse.js +1 -1
  189. data/vendor/assets/javascripts/theme-idle_fingers-noconflict.js +1 -0
  190. data/vendor/assets/javascripts/theme-idle_fingers-uncompressed-noconflict.js +179 -0
  191. data/vendor/assets/javascripts/theme-idle_fingers-uncompressed.js +179 -0
  192. data/vendor/assets/javascripts/theme-idle_fingers.js +1 -1
  193. data/vendor/assets/javascripts/theme-kr_theme-noconflict.js +1 -0
  194. data/vendor/assets/javascripts/theme-kr_theme-uncompressed-noconflict.js +182 -0
  195. data/vendor/assets/javascripts/theme-kr_theme-uncompressed.js +182 -0
  196. data/vendor/assets/javascripts/theme-kr_theme.js +1 -1
  197. data/vendor/assets/javascripts/theme-merbivore-noconflict.js +1 -0
  198. data/vendor/assets/javascripts/theme-merbivore-uncompressed-noconflict.js +182 -0
  199. data/vendor/assets/javascripts/theme-merbivore-uncompressed.js +182 -0
  200. data/vendor/assets/javascripts/theme-merbivore.js +1 -1
  201. data/vendor/assets/javascripts/theme-merbivore_soft-noconflict.js +1 -0
  202. data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed-noconflict.js +188 -0
  203. data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed.js +188 -0
  204. data/vendor/assets/javascripts/theme-merbivore_soft.js +1 -1
  205. data/vendor/assets/javascripts/theme-mono_industrial-noconflict.js +1 -0
  206. data/vendor/assets/javascripts/theme-mono_industrial-uncompressed-noconflict.js +190 -0
  207. data/vendor/assets/javascripts/theme-mono_industrial-uncompressed.js +190 -0
  208. data/vendor/assets/javascripts/theme-mono_industrial.js +1 -1
  209. data/vendor/assets/javascripts/theme-monokai-noconflict.js +1 -0
  210. data/vendor/assets/javascripts/theme-monokai-uncompressed-noconflict.js +191 -0
  211. data/vendor/assets/javascripts/theme-monokai-uncompressed.js +191 -0
  212. data/vendor/assets/javascripts/theme-monokai.js +1 -1
  213. data/vendor/assets/javascripts/theme-pastel_on_dark-noconflict.js +1 -0
  214. data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed-noconflict.js +192 -0
  215. data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed.js +192 -0
  216. data/vendor/assets/javascripts/theme-pastel_on_dark.js +1 -1
  217. data/vendor/assets/javascripts/theme-solarized_dark-noconflict.js +1 -0
  218. data/vendor/assets/javascripts/theme-solarized_dark-uncompressed-noconflict.js +176 -0
  219. data/vendor/assets/javascripts/theme-solarized_dark-uncompressed.js +176 -0
  220. data/vendor/assets/javascripts/theme-solarized_dark.js +1 -1
  221. data/vendor/assets/javascripts/theme-solarized_light-noconflict.js +1 -0
  222. data/vendor/assets/javascripts/theme-solarized_light-uncompressed-noconflict.js +172 -0
  223. data/vendor/assets/javascripts/theme-solarized_light-uncompressed.js +172 -0
  224. data/vendor/assets/javascripts/theme-solarized_light.js +1 -1
  225. data/vendor/assets/javascripts/theme-textmate-noconflict.js +0 -0
  226. data/vendor/assets/javascripts/theme-textmate-uncompressed-noconflict.js +0 -0
  227. data/vendor/assets/javascripts/theme-textmate-uncompressed.js +0 -0
  228. data/vendor/assets/javascripts/theme-tomorrow-noconflict.js +1 -0
  229. data/vendor/assets/javascripts/theme-tomorrow-uncompressed-noconflict.js +206 -0
  230. data/vendor/assets/javascripts/theme-tomorrow-uncompressed.js +206 -0
  231. data/vendor/assets/javascripts/theme-tomorrow.js +1 -1
  232. data/vendor/assets/javascripts/theme-tomorrow_night-noconflict.js +1 -0
  233. data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed-noconflict.js +206 -0
  234. data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed.js +206 -0
  235. data/vendor/assets/javascripts/theme-tomorrow_night.js +1 -1
  236. data/vendor/assets/javascripts/theme-tomorrow_night_blue-noconflict.js +1 -0
  237. data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed-noconflict.js +209 -0
  238. data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed.js +209 -0
  239. data/vendor/assets/javascripts/theme-tomorrow_night_blue.js +1 -1
  240. data/vendor/assets/javascripts/theme-tomorrow_night_bright-noconflict.js +1 -0
  241. data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed-noconflict.js +206 -0
  242. data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed.js +206 -0
  243. data/vendor/assets/javascripts/theme-tomorrow_night_bright.js +1 -1
  244. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-noconflict.js +1 -0
  245. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed-noconflict.js +202 -0
  246. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed.js +202 -0
  247. data/vendor/assets/javascripts/theme-tomorrow_night_eighties.js +1 -1
  248. data/vendor/assets/javascripts/theme-twilight-noconflict.js +1 -0
  249. data/vendor/assets/javascripts/theme-twilight-uncompressed-noconflict.js +204 -0
  250. data/vendor/assets/javascripts/theme-twilight-uncompressed.js +204 -0
  251. data/vendor/assets/javascripts/theme-twilight.js +1 -1
  252. data/vendor/assets/javascripts/theme-vibrant_ink-noconflict.js +1 -0
  253. data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed-noconflict.js +183 -0
  254. data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed.js +183 -0
  255. data/vendor/assets/javascripts/theme-vibrant_ink.js +1 -1
  256. data/vendor/assets/javascripts/worker-coffee.js +2367 -1425
  257. data/vendor/assets/javascripts/worker-css.js +3271 -582
  258. data/vendor/assets/javascripts/worker-javascript.js +4313 -2934
  259. data/vendor/assets/javascripts/worker-json.js +3597 -0
  260. metadata +225 -7
@@ -0,0 +1,540 @@
1
+ /*
2
+ * eXide - web-based XQuery IDE
3
+ *
4
+ * Copyright (C) 2011 Wolfgang Meier
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
18
+ */
19
+ define('ace/mode/xquery', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/xquery_highlight_rules', 'ace/mode/behaviour/xquery', 'ace/range'], function(require, exports, module) {
20
+ "use strict";
21
+
22
+ var oop = require("../lib/oop");
23
+ var TextMode = require("./text").Mode;
24
+ var Tokenizer = require("../tokenizer").Tokenizer;
25
+ var XQueryHighlightRules = require("./xquery_highlight_rules").XQueryHighlightRules;
26
+ var XQueryBehaviour = require("./behaviour/xquery").XQueryBehaviour;
27
+ var Range = require("../range").Range;
28
+
29
+ var Mode = function(parent) {
30
+ this.$tokenizer = new Tokenizer(new XQueryHighlightRules().getRules());
31
+ this.$behaviour = new XQueryBehaviour(parent);
32
+ };
33
+
34
+ oop.inherits(Mode, TextMode);
35
+
36
+ (function() {
37
+
38
+ this.getNextLineIndent = function(state, line, tab) {
39
+ var indent = this.$getIndent(line);
40
+ var match = line.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/);
41
+ if (match)
42
+ indent += tab;
43
+ return indent;
44
+ };
45
+
46
+ this.checkOutdent = function(state, line, input) {
47
+ if (! /^\s+$/.test(line))
48
+ return false;
49
+
50
+ return /^\s*[\}\)]/.test(input);
51
+ };
52
+
53
+ this.autoOutdent = function(state, doc, row) {
54
+ var line = doc.getLine(row);
55
+ var match = line.match(/^(\s*[\}\)])/);
56
+
57
+ if (!match) return 0;
58
+
59
+ var column = match[1].length;
60
+ var openBracePos = doc.findMatchingBracket({row: row, column: column});
61
+
62
+ if (!openBracePos || openBracePos.row == row) return 0;
63
+
64
+ var indent = this.$getIndent(doc.getLine(openBracePos.row));
65
+ doc.replace(new Range(row, 0, row, column-1), indent);
66
+ };
67
+
68
+ this.$getIndent = function(line) {
69
+ var match = line.match(/^(\s+)/);
70
+ if (match) {
71
+ return match[1];
72
+ }
73
+
74
+ return "";
75
+ };
76
+
77
+ this.toggleCommentLines = function(state, doc, startRow, endRow) {
78
+ var i, line;
79
+ var outdent = true;
80
+ var re = /^\s*\(:(.*):\)/;
81
+
82
+ for (i=startRow; i<= endRow; i++) {
83
+ if (!re.test(doc.getLine(i))) {
84
+ outdent = false;
85
+ break;
86
+ }
87
+ }
88
+
89
+ var range = new Range(0, 0, 0, 0);
90
+ for (i=startRow; i<= endRow; i++) {
91
+ line = doc.getLine(i);
92
+ range.start.row = i;
93
+ range.end.row = i;
94
+ range.end.column = line.length;
95
+
96
+ doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)");
97
+ }
98
+ };
99
+ }).call(Mode.prototype);
100
+
101
+ exports.Mode = Mode;
102
+ });
103
+ /*
104
+ * eXide - web-based XQuery IDE
105
+ *
106
+ * Copyright (C) 2011 Wolfgang Meier
107
+ *
108
+ * This program is free software: you can redistribute it and/or modify
109
+ * it under the terms of the GNU General Public License as published by
110
+ * the Free Software Foundation, either version 3 of the License, or
111
+ * (at your option) any later version.
112
+ *
113
+ * This program is distributed in the hope that it will be useful,
114
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
115
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
116
+ * GNU General Public License for more details.
117
+ *
118
+ * You should have received a copy of the GNU General Public License
119
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
120
+ */
121
+ define('ace/mode/xquery_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
122
+ "use strict";
123
+
124
+ var oop = require("../lib/oop");
125
+ var lang = require("../lib/lang");
126
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
127
+
128
+ var XQueryHighlightRules = function() {
129
+
130
+ var keywords = lang.arrayToMap(
131
+ ("return|for|let|where|order|by|declare|function|variable|xquery|version|option|namespace|import|module|when|encoding|" +
132
+ "switch|default|try|catch|group|tumbling|sliding|window|start|end|at|only|" +
133
+ "using|stemming|" +
134
+ "while|" +
135
+ "external|" +
136
+ "if|then|else|as|and|or|typeswitch|case|ascending|descending|empty|in|count|updating|insert|delete|replace|value|node|attribute|text|element|into|of|with|contains").split("|")
137
+ );
138
+
139
+ // regexp must not have capturing parentheses
140
+ // regexps are ordered -> the first match is used
141
+
142
+ this.$rules = {
143
+ start : [ {
144
+ token : "text",
145
+ regex : "<\\!\\[CDATA\\[",
146
+ next : "cdata"
147
+ }, {
148
+ token : "xml_pe",
149
+ regex : "<\\?.*?\\?>"
150
+ }, {
151
+ token : "comment",
152
+ regex : "<\\!--",
153
+ next : "comment"
154
+ }, {
155
+ token : "comment",
156
+ regex : "\\(:",
157
+ next : "comment"
158
+ }, {
159
+ token : "text", // opening tag
160
+ regex : "<\\/?",
161
+ next : "tag"
162
+ }, {
163
+ token : "constant", // number
164
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
165
+ }, {
166
+ token : "variable", // variable
167
+ regex : "\\$[a-zA-Z_][a-zA-Z0-9_\\-:]*\\b"
168
+ }, {
169
+ token: "string",
170
+ regex : '".*?"'
171
+ }, {
172
+ token: "string",
173
+ regex : "'.*?'"
174
+ }, {
175
+ token : "text",
176
+ regex : "\\s+"
177
+ }, {
178
+ token: "support.function",
179
+ regex: "\\w[\\w+_\\-:]+(?=\\()"
180
+ }, {
181
+ token : function(value) {
182
+ if (keywords[value])
183
+ return "keyword";
184
+ else
185
+ return "identifier";
186
+ },
187
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
188
+ }, {
189
+ token: "keyword.operator",
190
+ regex: "\\*|=|<|>|\\-|\\+|and|or|eq|ne|lt|gt"
191
+ }, {
192
+ token: "lparen",
193
+ regex: "[[({]"
194
+ }, {
195
+ token: "rparen",
196
+ regex: "[\\])}]"
197
+ } ],
198
+
199
+ tag : [ {
200
+ token : "text",
201
+ regex : ">",
202
+ next : "start"
203
+ }, {
204
+ token : "meta.tag",
205
+ regex : "[-_a-zA-Z0-9:]+"
206
+ }, {
207
+ token : "text",
208
+ regex : "\\s+"
209
+ }, {
210
+ token : "string",
211
+ regex : '".*?"'
212
+ }, {
213
+ token : "string",
214
+ regex : "'.*?'"
215
+ } ],
216
+
217
+ cdata : [ {
218
+ token : "text",
219
+ regex : "\\]\\]>",
220
+ next : "start"
221
+ }, {
222
+ token : "text",
223
+ regex : "\\s+"
224
+ }, {
225
+ token : "text",
226
+ regex : "(?:[^\\]]|\\](?!\\]>))+"
227
+ } ],
228
+
229
+ comment : [ {
230
+ token : "comment",
231
+ regex : ".*?-->",
232
+ next : "start"
233
+ }, {
234
+ token: "comment",
235
+ regex : ".*:\\)",
236
+ next : "start"
237
+ }, {
238
+ token : "comment",
239
+ regex : ".+"
240
+ } ]
241
+ };
242
+ };
243
+
244
+ oop.inherits(XQueryHighlightRules, TextHighlightRules);
245
+
246
+ exports.XQueryHighlightRules = XQueryHighlightRules;
247
+ });
248
+ /*
249
+ * eXide - web-based XQuery IDE
250
+ *
251
+ * Copyright (C) 2011 Wolfgang Meier
252
+ *
253
+ * This program is free software: you can redistribute it and/or modify
254
+ * it under the terms of the GNU General Public License as published by
255
+ * the Free Software Foundation, either version 3 of the License, or
256
+ * (at your option) any later version.
257
+ *
258
+ * This program is distributed in the hope that it will be useful,
259
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
260
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
261
+ * GNU General Public License for more details.
262
+ *
263
+ * You should have received a copy of the GNU General Public License
264
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
265
+ */
266
+ define('ace/mode/behaviour/xquery', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/mode/behaviour/cstyle'], function(require, exports, module) {
267
+ "use strict";
268
+
269
+ var oop = require("../../lib/oop");
270
+ var Behaviour = require('../behaviour').Behaviour;
271
+ var CstyleBehaviour = require('./cstyle').CstyleBehaviour;
272
+
273
+ var XQueryBehaviour = function (parent) {
274
+
275
+ this.inherit(CstyleBehaviour, ["braces", "parens", "string_dquotes"]); // Get string behaviour
276
+ this.parent = parent;
277
+
278
+ this.add("brackets", "insertion", function (state, action, editor, session, text) {
279
+ if (text == "\n") {
280
+ var cursor = editor.getCursorPosition();
281
+ var line = session.doc.getLine(cursor.row);
282
+ var rightChars = line.substring(cursor.column, cursor.column + 2);
283
+ if (rightChars == '</') {
284
+ var indent = this.$getIndent(session.doc.getLine(cursor.row)) + session.getTabString();
285
+ var next_indent = this.$getIndent(session.doc.getLine(cursor.row));
286
+
287
+ return {
288
+ text: '\n' + indent + '\n' + next_indent,
289
+ selection: [1, indent.length, 1, indent.length]
290
+ }
291
+ }
292
+ }
293
+ return false;
294
+ });
295
+
296
+ // Check for open tag if user enters / and auto-close it.
297
+ this.add("slash", "insertion", function (state, action, editor, session, text) {
298
+ if (text == "/") {
299
+ var cursor = editor.getCursorPosition();
300
+ var line = session.doc.getLine(cursor.row);
301
+ if (cursor.column > 0 && line.charAt(cursor.column - 1) == "<") {
302
+ line = line.substring(0, cursor.column) + "/" + line.substring(cursor.column);
303
+ var lines = session.doc.getAllLines();
304
+ lines[cursor.row] = line;
305
+ // call mode helper to close the tag if possible
306
+ parent.exec("closeTag", lines.join(session.doc.getNewLineCharacter()), cursor.row);
307
+ }
308
+ }
309
+ return false;
310
+ });
311
+ }
312
+ oop.inherits(XQueryBehaviour, Behaviour);
313
+
314
+ exports.XQueryBehaviour = XQueryBehaviour;
315
+ });
316
+ /* vim:ts=4:sts=4:sw=4:
317
+ * ***** BEGIN LICENSE BLOCK *****
318
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
319
+ *
320
+ * The contents of this file are subject to the Mozilla Public License Version
321
+ * 1.1 (the "License"); you may not use this file except in compliance with
322
+ * the License. You may obtain a copy of the License at
323
+ * http://www.mozilla.org/MPL/
324
+ *
325
+ * Software distributed under the License is distributed on an "AS IS" basis,
326
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
327
+ * for the specific language governing rights and limitations under the
328
+ * License.
329
+ *
330
+ * The Original Code is Ajax.org Code Editor (ACE).
331
+ *
332
+ * The Initial Developer of the Original Code is
333
+ * Ajax.org B.V.
334
+ * Portions created by the Initial Developer are Copyright (C) 2010
335
+ * the Initial Developer. All Rights Reserved.
336
+ *
337
+ * Contributor(s):
338
+ * Chris Spencer <chris.ag.spencer AT googlemail DOT com>
339
+ *
340
+ * Alternatively, the contents of this file may be used under the terms of
341
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
342
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
343
+ * in which case the provisions of the GPL or the LGPL are applicable instead
344
+ * of those above. If you wish to allow use of your version of this file only
345
+ * under the terms of either the GPL or the LGPL, and not to allow others to
346
+ * use your version of this file under the terms of the MPL, indicate your
347
+ * decision by deleting the provisions above and replace them with the notice
348
+ * and other provisions required by the GPL or the LGPL. If you do not delete
349
+ * the provisions above, a recipient may use your version of this file under
350
+ * the terms of any one of the MPL, the GPL or the LGPL.
351
+ *
352
+ * ***** END LICENSE BLOCK ***** */
353
+
354
+ define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) {
355
+ "use strict";
356
+
357
+ var oop = require("../../lib/oop");
358
+ var Behaviour = require('../behaviour').Behaviour;
359
+
360
+ var CstyleBehaviour = function () {
361
+
362
+ this.add("braces", "insertion", function (state, action, editor, session, text) {
363
+ if (text == '{') {
364
+ var selection = editor.getSelectionRange();
365
+ var selected = session.doc.getTextRange(selection);
366
+ if (selected !== "") {
367
+ return {
368
+ text: '{' + selected + '}',
369
+ selection: false
370
+ };
371
+ } else {
372
+ return {
373
+ text: '{}',
374
+ selection: [1, 1]
375
+ };
376
+ }
377
+ } else if (text == '}') {
378
+ var cursor = editor.getCursorPosition();
379
+ var line = session.doc.getLine(cursor.row);
380
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
381
+ if (rightChar == '}') {
382
+ var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
383
+ if (matching !== null) {
384
+ return {
385
+ text: '',
386
+ selection: [1, 1]
387
+ };
388
+ }
389
+ }
390
+ } else if (text == "\n") {
391
+ var cursor = editor.getCursorPosition();
392
+ var line = session.doc.getLine(cursor.row);
393
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
394
+ if (rightChar == '}') {
395
+ var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1});
396
+ if (!openBracePos)
397
+ return null;
398
+
399
+ var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString());
400
+ var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row));
401
+
402
+ return {
403
+ text: '\n' + indent + '\n' + next_indent,
404
+ selection: [1, indent.length, 1, indent.length]
405
+ };
406
+ }
407
+ }
408
+ });
409
+
410
+ this.add("braces", "deletion", function (state, action, editor, session, range) {
411
+ var selected = session.doc.getTextRange(range);
412
+ if (!range.isMultiLine() && selected == '{') {
413
+ var line = session.doc.getLine(range.start.row);
414
+ var rightChar = line.substring(range.end.column, range.end.column + 1);
415
+ if (rightChar == '}') {
416
+ range.end.column++;
417
+ return range;
418
+ }
419
+ }
420
+ });
421
+
422
+ this.add("parens", "insertion", function (state, action, editor, session, text) {
423
+ if (text == '(') {
424
+ var selection = editor.getSelectionRange();
425
+ var selected = session.doc.getTextRange(selection);
426
+ if (selected !== "") {
427
+ return {
428
+ text: '(' + selected + ')',
429
+ selection: false
430
+ };
431
+ } else {
432
+ return {
433
+ text: '()',
434
+ selection: [1, 1]
435
+ };
436
+ }
437
+ } else if (text == ')') {
438
+ var cursor = editor.getCursorPosition();
439
+ var line = session.doc.getLine(cursor.row);
440
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
441
+ if (rightChar == ')') {
442
+ var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});
443
+ if (matching !== null) {
444
+ return {
445
+ text: '',
446
+ selection: [1, 1]
447
+ };
448
+ }
449
+ }
450
+ }
451
+ });
452
+
453
+ this.add("parens", "deletion", function (state, action, editor, session, range) {
454
+ var selected = session.doc.getTextRange(range);
455
+ if (!range.isMultiLine() && selected == '(') {
456
+ var line = session.doc.getLine(range.start.row);
457
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
458
+ if (rightChar == ')') {
459
+ range.end.column++;
460
+ return range;
461
+ }
462
+ }
463
+ });
464
+
465
+ this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
466
+ if (text == '"' || text == "'") {
467
+ var quote = text;
468
+ var selection = editor.getSelectionRange();
469
+ var selected = session.doc.getTextRange(selection);
470
+ if (selected !== "") {
471
+ return {
472
+ text: quote + selected + quote,
473
+ selection: false
474
+ };
475
+ } else {
476
+ var cursor = editor.getCursorPosition();
477
+ var line = session.doc.getLine(cursor.row);
478
+ var leftChar = line.substring(cursor.column-1, cursor.column);
479
+
480
+ // We're escaped.
481
+ if (leftChar == '\\') {
482
+ return null;
483
+ }
484
+
485
+ // Find what token we're inside.
486
+ var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens;
487
+ var col = 0, token;
488
+ var quotepos = -1; // Track whether we're inside an open quote.
489
+
490
+ for (var x = 0; x < tokens.length; x++) {
491
+ token = tokens[x];
492
+ if (token.type == "string") {
493
+ quotepos = -1;
494
+ } else if (quotepos < 0) {
495
+ quotepos = token.value.indexOf(quote);
496
+ }
497
+ if ((token.value.length + col) > selection.start.column) {
498
+ break;
499
+ }
500
+ col += tokens[x].value.length;
501
+ }
502
+
503
+ // Try and be smart about when we auto insert.
504
+ if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
505
+ return {
506
+ text: quote + quote,
507
+ selection: [1,1]
508
+ };
509
+ } else if (token && token.type === "string") {
510
+ // Ignore input and move right one if we're typing over the closing quote.
511
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
512
+ if (rightChar == quote) {
513
+ return {
514
+ text: '',
515
+ selection: [1, 1]
516
+ };
517
+ }
518
+ }
519
+ }
520
+ }
521
+ });
522
+
523
+ this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
524
+ var selected = session.doc.getTextRange(range);
525
+ if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
526
+ var line = session.doc.getLine(range.start.row);
527
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
528
+ if (rightChar == '"') {
529
+ range.end.column++;
530
+ return range;
531
+ }
532
+ }
533
+ });
534
+
535
+ };
536
+
537
+ oop.inherits(CstyleBehaviour, Behaviour);
538
+
539
+ exports.CstyleBehaviour = CstyleBehaviour;
540
+ });