aced_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 (255) hide show
  1. data/.gitignore +17 -0
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +49 -0
  6. data/Rakefile +2 -0
  7. data/aced_rails.gemspec +19 -0
  8. data/lib/aced_rails.rb +7 -0
  9. data/lib/aced_rails/engine.rb +4 -0
  10. data/lib/aced_rails/version.rb +3 -0
  11. data/vendor/assets/javascripts/ace/ace-compat-noconflict.js +1 -0
  12. data/vendor/assets/javascripts/ace/ace-compat-uncompressed-noconflict.js +480 -0
  13. data/vendor/assets/javascripts/ace/ace-compat-uncompressed.js +480 -0
  14. data/vendor/assets/javascripts/ace/ace-compat.js +1 -0
  15. data/vendor/assets/javascripts/ace/ace-noconflict.js +10 -0
  16. data/vendor/assets/javascripts/ace/ace-uncompressed-noconflict.js +14649 -0
  17. data/vendor/assets/javascripts/ace/ace-uncompressed.js +14649 -0
  18. data/vendor/assets/javascripts/ace/ace.js +10 -0
  19. data/vendor/assets/javascripts/ace/keybinding-emacs-noconflict.js +1 -0
  20. data/vendor/assets/javascripts/ace/keybinding-emacs-uncompressed-noconflict.js +405 -0
  21. data/vendor/assets/javascripts/ace/keybinding-emacs-uncompressed.js +405 -0
  22. data/vendor/assets/javascripts/ace/keybinding-emacs.js +1 -0
  23. data/vendor/assets/javascripts/ace/keybinding-vim-noconflict.js +1 -0
  24. data/vendor/assets/javascripts/ace/keybinding-vim-uncompressed-noconflict.js +393 -0
  25. data/vendor/assets/javascripts/ace/keybinding-vim-uncompressed.js +393 -0
  26. data/vendor/assets/javascripts/ace/keybinding-vim.js +1 -0
  27. data/vendor/assets/javascripts/ace/mode-c_cpp-noconflict.js +1 -0
  28. data/vendor/assets/javascripts/ace/mode-c_cpp-uncompressed-noconflict.js +918 -0
  29. data/vendor/assets/javascripts/ace/mode-c_cpp-uncompressed.js +918 -0
  30. data/vendor/assets/javascripts/ace/mode-c_cpp.js +1 -0
  31. data/vendor/assets/javascripts/ace/mode-clojure-noconflict.js +1 -0
  32. data/vendor/assets/javascripts/ace/mode-clojure-uncompressed-noconflict.js +422 -0
  33. data/vendor/assets/javascripts/ace/mode-clojure-uncompressed.js +422 -0
  34. data/vendor/assets/javascripts/ace/mode-clojure.js +1 -0
  35. data/vendor/assets/javascripts/ace/mode-coffee-noconflict.js +1 -0
  36. data/vendor/assets/javascripts/ace/mode-coffee-uncompressed-noconflict.js +605 -0
  37. data/vendor/assets/javascripts/ace/mode-coffee-uncompressed.js +605 -0
  38. data/vendor/assets/javascripts/ace/mode-coffee.js +1 -0
  39. data/vendor/assets/javascripts/ace/mode-coldfusion-noconflict.js +1 -0
  40. data/vendor/assets/javascripts/ace/mode-coldfusion-uncompressed-noconflict.js +2361 -0
  41. data/vendor/assets/javascripts/ace/mode-coldfusion-uncompressed.js +2361 -0
  42. data/vendor/assets/javascripts/ace/mode-coldfusion.js +1 -0
  43. data/vendor/assets/javascripts/ace/mode-csharp-noconflict.js +1 -0
  44. data/vendor/assets/javascripts/ace/mode-csharp-uncompressed-noconflict.js +768 -0
  45. data/vendor/assets/javascripts/ace/mode-csharp-uncompressed.js +768 -0
  46. data/vendor/assets/javascripts/ace/mode-csharp.js +1 -0
  47. data/vendor/assets/javascripts/ace/mode-css-noconflict.js +1 -0
  48. data/vendor/assets/javascripts/ace/mode-css-uncompressed-noconflict.js +664 -0
  49. data/vendor/assets/javascripts/ace/mode-css-uncompressed.js +664 -0
  50. data/vendor/assets/javascripts/ace/mode-css.js +1 -0
  51. data/vendor/assets/javascripts/ace/mode-groovy-noconflict.js +1 -0
  52. data/vendor/assets/javascripts/ace/mode-groovy-uncompressed-noconflict.js +1280 -0
  53. data/vendor/assets/javascripts/ace/mode-groovy-uncompressed.js +1280 -0
  54. data/vendor/assets/javascripts/ace/mode-groovy.js +1 -0
  55. data/vendor/assets/javascripts/ace/mode-haxe-noconflict.js +1 -0
  56. data/vendor/assets/javascripts/ace/mode-haxe-uncompressed-noconflict.js +768 -0
  57. data/vendor/assets/javascripts/ace/mode-haxe-uncompressed.js +768 -0
  58. data/vendor/assets/javascripts/ace/mode-haxe.js +1 -0
  59. data/vendor/assets/javascripts/ace/mode-html-noconflict.js +1 -0
  60. data/vendor/assets/javascripts/ace/mode-html-uncompressed-noconflict.js +2377 -0
  61. data/vendor/assets/javascripts/ace/mode-html-uncompressed.js +2377 -0
  62. data/vendor/assets/javascripts/ace/mode-html.js +1 -0
  63. data/vendor/assets/javascripts/ace/mode-java-noconflict.js +1 -0
  64. data/vendor/assets/javascripts/ace/mode-java-uncompressed-noconflict.js +1282 -0
  65. data/vendor/assets/javascripts/ace/mode-java-uncompressed.js +1282 -0
  66. data/vendor/assets/javascripts/ace/mode-java.js +1 -0
  67. data/vendor/assets/javascripts/ace/mode-javascript-noconflict.js +1 -0
  68. data/vendor/assets/javascripts/ace/mode-javascript-uncompressed-noconflict.js +1113 -0
  69. data/vendor/assets/javascripts/ace/mode-javascript-uncompressed.js +1113 -0
  70. data/vendor/assets/javascripts/ace/mode-javascript.js +1 -0
  71. data/vendor/assets/javascripts/ace/mode-json-noconflict.js +1 -0
  72. data/vendor/assets/javascripts/ace/mode-json-uncompressed-noconflict.js +696 -0
  73. data/vendor/assets/javascripts/ace/mode-json-uncompressed.js +696 -0
  74. data/vendor/assets/javascripts/ace/mode-json.js +1 -0
  75. data/vendor/assets/javascripts/ace/mode-latex-noconflict.js +1 -0
  76. data/vendor/assets/javascripts/ace/mode-latex-uncompressed-noconflict.js +95 -0
  77. data/vendor/assets/javascripts/ace/mode-latex-uncompressed.js +95 -0
  78. data/vendor/assets/javascripts/ace/mode-latex.js +1 -0
  79. data/vendor/assets/javascripts/ace/mode-lua-noconflict.js +1 -0
  80. data/vendor/assets/javascripts/ace/mode-lua-uncompressed-noconflict.js +523 -0
  81. data/vendor/assets/javascripts/ace/mode-lua-uncompressed.js +523 -0
  82. data/vendor/assets/javascripts/ace/mode-lua.js +1 -0
  83. data/vendor/assets/javascripts/ace/mode-markdown-noconflict.js +1 -0
  84. data/vendor/assets/javascripts/ace/mode-markdown-uncompressed-noconflict.js +2819 -0
  85. data/vendor/assets/javascripts/ace/mode-markdown-uncompressed.js +2819 -0
  86. data/vendor/assets/javascripts/ace/mode-markdown.js +1 -0
  87. data/vendor/assets/javascripts/ace/mode-ocaml-noconflict.js +1 -0
  88. data/vendor/assets/javascripts/ace/mode-ocaml-uncompressed-noconflict.js +539 -0
  89. data/vendor/assets/javascripts/ace/mode-ocaml-uncompressed.js +539 -0
  90. data/vendor/assets/javascripts/ace/mode-ocaml.js +1 -0
  91. data/vendor/assets/javascripts/ace/mode-perl-noconflict.js +1 -0
  92. data/vendor/assets/javascripts/ace/mode-perl-uncompressed-noconflict.js +573 -0
  93. data/vendor/assets/javascripts/ace/mode-perl-uncompressed.js +573 -0
  94. data/vendor/assets/javascripts/ace/mode-perl.js +1 -0
  95. data/vendor/assets/javascripts/ace/mode-pgsql-noconflict.js +1 -0
  96. data/vendor/assets/javascripts/ace/mode-pgsql-uncompressed-noconflict.js +1107 -0
  97. data/vendor/assets/javascripts/ace/mode-pgsql-uncompressed.js +1107 -0
  98. data/vendor/assets/javascripts/ace/mode-pgsql.js +1 -0
  99. data/vendor/assets/javascripts/ace/mode-php-noconflict.js +1 -0
  100. data/vendor/assets/javascripts/ace/mode-php-uncompressed-noconflict.js +1884 -0
  101. data/vendor/assets/javascripts/ace/mode-php-uncompressed.js +1884 -0
  102. data/vendor/assets/javascripts/ace/mode-php.js +1 -0
  103. data/vendor/assets/javascripts/ace/mode-powershell-noconflict.js +1 -0
  104. data/vendor/assets/javascripts/ace/mode-powershell-uncompressed-noconflict.js +706 -0
  105. data/vendor/assets/javascripts/ace/mode-powershell-uncompressed.js +706 -0
  106. data/vendor/assets/javascripts/ace/mode-powershell.js +1 -0
  107. data/vendor/assets/javascripts/ace/mode-python-noconflict.js +1 -0
  108. data/vendor/assets/javascripts/ace/mode-python-uncompressed-noconflict.js +506 -0
  109. data/vendor/assets/javascripts/ace/mode-python-uncompressed.js +506 -0
  110. data/vendor/assets/javascripts/ace/mode-python.js +1 -0
  111. data/vendor/assets/javascripts/ace/mode-ruby-noconflict.js +1 -0
  112. data/vendor/assets/javascripts/ace/mode-ruby-uncompressed-noconflict.js +391 -0
  113. data/vendor/assets/javascripts/ace/mode-ruby-uncompressed.js +391 -0
  114. data/vendor/assets/javascripts/ace/mode-ruby.js +1 -0
  115. data/vendor/assets/javascripts/ace/mode-scad-noconflict.js +1 -0
  116. data/vendor/assets/javascripts/ace/mode-scad-uncompressed-noconflict.js +906 -0
  117. data/vendor/assets/javascripts/ace/mode-scad-uncompressed.js +906 -0
  118. data/vendor/assets/javascripts/ace/mode-scad.js +1 -0
  119. data/vendor/assets/javascripts/ace/mode-scala-noconflict.js +1 -0
  120. data/vendor/assets/javascripts/ace/mode-scala-uncompressed-noconflict.js +1282 -0
  121. data/vendor/assets/javascripts/ace/mode-scala-uncompressed.js +1282 -0
  122. data/vendor/assets/javascripts/ace/mode-scala.js +1 -0
  123. data/vendor/assets/javascripts/ace/mode-scss-noconflict.js +1 -0
  124. data/vendor/assets/javascripts/ace/mode-scss-uncompressed-noconflict.js +678 -0
  125. data/vendor/assets/javascripts/ace/mode-scss-uncompressed.js +678 -0
  126. data/vendor/assets/javascripts/ace/mode-scss.js +1 -0
  127. data/vendor/assets/javascripts/ace/mode-sh-noconflict.js +1 -0
  128. data/vendor/assets/javascripts/ace/mode-sh-uncompressed-noconflict.js +268 -0
  129. data/vendor/assets/javascripts/ace/mode-sh-uncompressed.js +268 -0
  130. data/vendor/assets/javascripts/ace/mode-sh.js +1 -0
  131. data/vendor/assets/javascripts/ace/mode-sql-noconflict.js +1 -0
  132. data/vendor/assets/javascripts/ace/mode-sql-uncompressed-noconflict.js +159 -0
  133. data/vendor/assets/javascripts/ace/mode-sql-uncompressed.js +159 -0
  134. data/vendor/assets/javascripts/ace/mode-sql.js +1 -0
  135. data/vendor/assets/javascripts/ace/mode-svg-noconflict.js +1 -0
  136. data/vendor/assets/javascripts/ace/mode-svg-uncompressed-noconflict.js +2016 -0
  137. data/vendor/assets/javascripts/ace/mode-svg-uncompressed.js +2016 -0
  138. data/vendor/assets/javascripts/ace/mode-svg.js +1 -0
  139. data/vendor/assets/javascripts/ace/mode-text-noconflict.js +0 -0
  140. data/vendor/assets/javascripts/ace/mode-text-uncompressed-noconflict.js +0 -0
  141. data/vendor/assets/javascripts/ace/mode-text-uncompressed.js +0 -0
  142. data/vendor/assets/javascripts/ace/mode-text.js +0 -0
  143. data/vendor/assets/javascripts/ace/mode-textile-noconflict.js +1 -0
  144. data/vendor/assets/javascripts/ace/mode-textile-uncompressed-noconflict.js +254 -0
  145. data/vendor/assets/javascripts/ace/mode-textile-uncompressed.js +254 -0
  146. data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
  147. data/vendor/assets/javascripts/ace/mode-xml-noconflict.js +1 -0
  148. data/vendor/assets/javascripts/ace/mode-xml-uncompressed-noconflict.js +1001 -0
  149. data/vendor/assets/javascripts/ace/mode-xml-uncompressed.js +1001 -0
  150. data/vendor/assets/javascripts/ace/mode-xml.js +1 -0
  151. data/vendor/assets/javascripts/ace/theme-chrome-noconflict.js +1 -0
  152. data/vendor/assets/javascripts/ace/theme-chrome-uncompressed-noconflict.js +212 -0
  153. data/vendor/assets/javascripts/ace/theme-chrome-uncompressed.js +212 -0
  154. data/vendor/assets/javascripts/ace/theme-chrome.js +1 -0
  155. data/vendor/assets/javascripts/ace/theme-clouds-noconflict.js +1 -0
  156. data/vendor/assets/javascripts/ace/theme-clouds-uncompressed-noconflict.js +155 -0
  157. data/vendor/assets/javascripts/ace/theme-clouds-uncompressed.js +155 -0
  158. data/vendor/assets/javascripts/ace/theme-clouds.js +1 -0
  159. data/vendor/assets/javascripts/ace/theme-clouds_midnight-noconflict.js +1 -0
  160. data/vendor/assets/javascripts/ace/theme-clouds_midnight-uncompressed-noconflict.js +156 -0
  161. data/vendor/assets/javascripts/ace/theme-clouds_midnight-uncompressed.js +156 -0
  162. data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +1 -0
  163. data/vendor/assets/javascripts/ace/theme-cobalt-noconflict.js +1 -0
  164. data/vendor/assets/javascripts/ace/theme-cobalt-uncompressed-noconflict.js +170 -0
  165. data/vendor/assets/javascripts/ace/theme-cobalt-uncompressed.js +170 -0
  166. data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -0
  167. data/vendor/assets/javascripts/ace/theme-crimson_editor-noconflict.js +1 -0
  168. data/vendor/assets/javascripts/ace/theme-crimson_editor-uncompressed-noconflict.js +198 -0
  169. data/vendor/assets/javascripts/ace/theme-crimson_editor-uncompressed.js +198 -0
  170. data/vendor/assets/javascripts/ace/theme-crimson_editor.js +1 -0
  171. data/vendor/assets/javascripts/ace/theme-dawn-noconflict.js +1 -0
  172. data/vendor/assets/javascripts/ace/theme-dawn-uncompressed-noconflict.js +174 -0
  173. data/vendor/assets/javascripts/ace/theme-dawn-uncompressed.js +174 -0
  174. data/vendor/assets/javascripts/ace/theme-dawn.js +1 -0
  175. data/vendor/assets/javascripts/ace/theme-dreamweaver-noconflict.js +1 -0
  176. data/vendor/assets/javascripts/ace/theme-dreamweaver-uncompressed-noconflict.js +227 -0
  177. data/vendor/assets/javascripts/ace/theme-dreamweaver-uncompressed.js +227 -0
  178. data/vendor/assets/javascripts/ace/theme-dreamweaver.js +1 -0
  179. data/vendor/assets/javascripts/ace/theme-eclipse-noconflict.js +1 -0
  180. data/vendor/assets/javascripts/ace/theme-eclipse-uncompressed-noconflict.js +147 -0
  181. data/vendor/assets/javascripts/ace/theme-eclipse-uncompressed.js +147 -0
  182. data/vendor/assets/javascripts/ace/theme-eclipse.js +1 -0
  183. data/vendor/assets/javascripts/ace/theme-idle_fingers-noconflict.js +1 -0
  184. data/vendor/assets/javascripts/ace/theme-idle_fingers-uncompressed-noconflict.js +162 -0
  185. data/vendor/assets/javascripts/ace/theme-idle_fingers-uncompressed.js +162 -0
  186. data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -0
  187. data/vendor/assets/javascripts/ace/theme-kr_theme-noconflict.js +1 -0
  188. data/vendor/assets/javascripts/ace/theme-kr_theme-uncompressed-noconflict.js +165 -0
  189. data/vendor/assets/javascripts/ace/theme-kr_theme-uncompressed.js +165 -0
  190. data/vendor/assets/javascripts/ace/theme-kr_theme.js +1 -0
  191. data/vendor/assets/javascripts/ace/theme-merbivore-noconflict.js +1 -0
  192. data/vendor/assets/javascripts/ace/theme-merbivore-uncompressed-noconflict.js +165 -0
  193. data/vendor/assets/javascripts/ace/theme-merbivore-uncompressed.js +165 -0
  194. data/vendor/assets/javascripts/ace/theme-merbivore.js +1 -0
  195. data/vendor/assets/javascripts/ace/theme-merbivore_soft-noconflict.js +1 -0
  196. data/vendor/assets/javascripts/ace/theme-merbivore_soft-uncompressed-noconflict.js +171 -0
  197. data/vendor/assets/javascripts/ace/theme-merbivore_soft-uncompressed.js +171 -0
  198. data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +1 -0
  199. data/vendor/assets/javascripts/ace/theme-mono_industrial-noconflict.js +1 -0
  200. data/vendor/assets/javascripts/ace/theme-mono_industrial-uncompressed-noconflict.js +169 -0
  201. data/vendor/assets/javascripts/ace/theme-mono_industrial-uncompressed.js +169 -0
  202. data/vendor/assets/javascripts/ace/theme-mono_industrial.js +1 -0
  203. data/vendor/assets/javascripts/ace/theme-monokai-noconflict.js +1 -0
  204. data/vendor/assets/javascripts/ace/theme-monokai-uncompressed-noconflict.js +171 -0
  205. data/vendor/assets/javascripts/ace/theme-monokai-uncompressed.js +171 -0
  206. data/vendor/assets/javascripts/ace/theme-monokai.js +1 -0
  207. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-noconflict.js +1 -0
  208. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-uncompressed-noconflict.js +179 -0
  209. data/vendor/assets/javascripts/ace/theme-pastel_on_dark-uncompressed.js +179 -0
  210. data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +1 -0
  211. data/vendor/assets/javascripts/ace/theme-solarized_dark-noconflict.js +1 -0
  212. data/vendor/assets/javascripts/ace/theme-solarized_dark-uncompressed-noconflict.js +160 -0
  213. data/vendor/assets/javascripts/ace/theme-solarized_dark-uncompressed.js +160 -0
  214. data/vendor/assets/javascripts/ace/theme-solarized_dark.js +1 -0
  215. data/vendor/assets/javascripts/ace/theme-solarized_light-noconflict.js +1 -0
  216. data/vendor/assets/javascripts/ace/theme-solarized_light-uncompressed-noconflict.js +159 -0
  217. data/vendor/assets/javascripts/ace/theme-solarized_light-uncompressed.js +159 -0
  218. data/vendor/assets/javascripts/ace/theme-solarized_light.js +1 -0
  219. data/vendor/assets/javascripts/ace/theme-textmate-noconflict.js +0 -0
  220. data/vendor/assets/javascripts/ace/theme-textmate-uncompressed-noconflict.js +0 -0
  221. data/vendor/assets/javascripts/ace/theme-textmate-uncompressed.js +0 -0
  222. data/vendor/assets/javascripts/ace/theme-textmate.js +0 -0
  223. data/vendor/assets/javascripts/ace/theme-tomorrow-noconflict.js +1 -0
  224. data/vendor/assets/javascripts/ace/theme-tomorrow-uncompressed-noconflict.js +189 -0
  225. data/vendor/assets/javascripts/ace/theme-tomorrow-uncompressed.js +189 -0
  226. data/vendor/assets/javascripts/ace/theme-tomorrow.js +1 -0
  227. data/vendor/assets/javascripts/ace/theme-tomorrow_night-noconflict.js +1 -0
  228. data/vendor/assets/javascripts/ace/theme-tomorrow_night-uncompressed-noconflict.js +189 -0
  229. data/vendor/assets/javascripts/ace/theme-tomorrow_night-uncompressed.js +189 -0
  230. data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +1 -0
  231. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-noconflict.js +1 -0
  232. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-uncompressed-noconflict.js +189 -0
  233. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue-uncompressed.js +189 -0
  234. data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -0
  235. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-noconflict.js +1 -0
  236. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-uncompressed-noconflict.js +189 -0
  237. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright-uncompressed.js +189 -0
  238. data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -0
  239. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-noconflict.js +1 -0
  240. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-uncompressed-noconflict.js +185 -0
  241. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties-uncompressed.js +185 -0
  242. data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -0
  243. data/vendor/assets/javascripts/ace/theme-twilight-noconflict.js +1 -0
  244. data/vendor/assets/javascripts/ace/theme-twilight-uncompressed-noconflict.js +183 -0
  245. data/vendor/assets/javascripts/ace/theme-twilight-uncompressed.js +183 -0
  246. data/vendor/assets/javascripts/ace/theme-twilight.js +1 -0
  247. data/vendor/assets/javascripts/ace/theme-vibrant_ink-noconflict.js +1 -0
  248. data/vendor/assets/javascripts/ace/theme-vibrant_ink-uncompressed-noconflict.js +166 -0
  249. data/vendor/assets/javascripts/ace/theme-vibrant_ink-uncompressed.js +166 -0
  250. data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +1 -0
  251. data/vendor/assets/javascripts/ace/worker-coffee.js +7456 -0
  252. data/vendor/assets/javascripts/ace/worker-css.js +11693 -0
  253. data/vendor/assets/javascripts/ace/worker-javascript.js +10305 -0
  254. data/vendor/assets/javascripts/ace/worker-json.js +3062 -0
  255. metadata +310 -0
@@ -0,0 +1,1107 @@
1
+ /* ***** BEGIN LICENSE BLOCK *****
2
+ * The Original Code is Ajax.org Code Editor (ACE).
3
+ *
4
+ * Contributor(s):
5
+ * Jonathan Camile <jonathan.camile AT gmail DOT com>
6
+ *
7
+ * Alternatively, the contents of this file may be used under the terms of
8
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
9
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
10
+ * in which case the provisions of the GPL or the LGPL are applicable instead
11
+ * of those above. If you wish to allow use of your version of this file only
12
+ * under the terms of either the GPL or the LGPL, and not to allow others to
13
+ * use your version of this file under the terms of the MPL, indicate your
14
+ * decision by deleting the provisions above and replace them with the notice
15
+ * and other provisions required by the GPL or the LGPL. If you do not delete
16
+ * the provisions above, a recipient may use your version of this file under
17
+ * the terms of any one of the MPL, the GPL or the LGPL.
18
+ *
19
+ * ***** END LICENSE BLOCK ***** */
20
+
21
+ define('ace/mode/pgsql', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/pgsql_highlight_rules', 'ace/range'], function(require, exports, module) {
22
+
23
+ var oop = require("ace/lib/oop");
24
+ var TextMode = require("ace/mode/text").Mode;
25
+ var Tokenizer = require("ace/tokenizer").Tokenizer;
26
+ var PgsqlHighlightRules = require("ace/mode/pgsql_highlight_rules").PgsqlHighlightRules;
27
+ var Range = require("ace/range").Range;
28
+ // var EditSession = require("ace/edit_session").EditSession;
29
+
30
+ var Mode = function() {
31
+ this.$tokenizer = new Tokenizer(new PgsqlHighlightRules().getRules());
32
+ };
33
+ oop.inherits(Mode, TextMode);
34
+
35
+ (function() {
36
+
37
+ this.toggleCommentLines = function(state, doc, startRow, endRow) {
38
+ var outdent = true;
39
+ // var outentedRows = [];
40
+ var re = /^(\s*)--/;
41
+
42
+ for (var i=startRow; i<= endRow; i++) {
43
+ if (!re.test(doc.getLine(i))) {
44
+ outdent = false;
45
+ break;
46
+ }
47
+ }
48
+
49
+ if (outdent) {
50
+ var deleteRange = new Range(0, 0, 0, 0);
51
+ for (var i=startRow; i<= endRow; i++)
52
+ {
53
+ var line = doc.getLine(i);
54
+ var m = line.match(re);
55
+ deleteRange.start.row = i;
56
+ deleteRange.end.row = i;
57
+ deleteRange.end.column = m[0].length;
58
+ doc.replace(deleteRange, m[1]);
59
+ }
60
+ }
61
+ else {
62
+ doc.indentRows(startRow, endRow, "--");
63
+ }
64
+ };
65
+
66
+
67
+ this.getNextLineIndent = function(state, line, tab) {
68
+ if (state == "start" || state == "keyword.statementEnd") {
69
+ return "";
70
+ } else {
71
+ return this.$getIndent(line); // Keep whatever indent the previous line has
72
+ }
73
+ }
74
+
75
+ }).call(Mode.prototype);
76
+
77
+ exports.Mode = Mode;
78
+ });
79
+ /* ***** BEGIN LICENSE BLOCK *****
80
+ * The Original Code is Ajax.org Code Editor (ACE).
81
+ *
82
+ * Contributor(s):
83
+ * John DeSoi, Ph.D. <desoi AT pgedit DOT com>
84
+ *
85
+ * Alternatively, the contents of this file may be used under the terms of
86
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
87
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
88
+ * in which case the provisions of the GPL or the LGPL are applicable instead
89
+ * of those above. If you wish to allow use of your version of this file only
90
+ * under the terms of either the GPL or the LGPL, and not to allow others to
91
+ * use your version of this file under the terms of the MPL, indicate your
92
+ * decision by deleting the provisions above and replace them with the notice
93
+ * and other provisions required by the GPL or the LGPL. If you do not delete
94
+ * the provisions above, a recipient may use your version of this file under
95
+ * the terms of any one of the MPL, the GPL or the LGPL.
96
+ *
97
+ * ***** END LICENSE BLOCK *****
98
+ *
99
+ */
100
+
101
+
102
+ define('ace/mode/pgsql_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/doc_comment_highlight_rules', 'ace/mode/text_highlight_rules', 'ace/mode/perl_highlight_rules', 'ace/mode/python_highlight_rules'], function(require, exports, module) {
103
+
104
+ var oop = require("ace/lib/oop");
105
+ var lang = require("ace/lib/lang");
106
+ var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
107
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
108
+ // Supporting perl and python for now -- both in pg core and ace
109
+ var PerlHighlightRules = require("./perl_highlight_rules").PerlHighlightRules;
110
+ var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules;
111
+
112
+ var PgsqlHighlightRules = function() {
113
+
114
+ // Keywords, functions, operators last updated for pg 9.1.
115
+ var keywords = lang.arrayToMap(
116
+ ("abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|" +
117
+ "analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|array|as|asc|assertion|" +
118
+ "assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|bigint|" +
119
+ "binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|" +
120
+ "catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|" +
121
+ "cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|" +
122
+ "configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|" +
123
+ "create|cross|cstring|csv|current|current_catalog|current_date|current_role|" +
124
+ "current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|" +
125
+ "date|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|definer|delete|" +
126
+ "delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|domain|double|" +
127
+ "drop|each|else|enable|encoding|encrypted|end|enum|escape|except|exclude|excluding|exclusive|" +
128
+ "execute|exists|explain|extension|external|extract|false|family|fdw_handler|fetch|first|" +
129
+ "float|float4|float8|following|for|force|foreign|forward|freeze|from|full|function|functions|" +
130
+ "global|grant|granted|greatest|group|gtsvector|handler|having|header|hold|hour|identity|if|" +
131
+ "ilike|immediate|immutable|implicit|in|including|increment|index|indexes|inet|inherit|" +
132
+ "inherits|initially|inline|inner|inout|input|insensitive|insert|instead|int|int2|int2vector|" +
133
+ "int4|int8|integer|internal|intersect|interval|into|invoker|is|isnull|isolation|join|key|label|" +
134
+ "language|language_handler|large|last|lc_collate|lc_ctype|leading|least|left|level|like|" +
135
+ "limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|mapping|" +
136
+ "match|maxvalue|minute|minvalue|mode|money|month|move|name|names|national|natural|nchar|next|no|" +
137
+ "none|not|nothing|notify|notnull|nowait|null|nullif|nulls|numeric|object|of|off|offset|oid|oids|" +
138
+ "oidvector|on|only|opaque|operator|option|options|or|order|out|outer|over|overlaps|overlay|" +
139
+ "owned|owner|parser|partial|partition|passing|password|path|pg_attribute|pg_auth_members|" +
140
+ "pg_authid|pg_class|pg_database|pg_node_tree|pg_proc|pg_type|placing|plans|point|polygon|" +
141
+ "position|preceding|precision|prepare|prepared|preserve|primary|prior|privileges|" +
142
+ "procedural|procedure|quote|range|read|real|reassign|recheck|record|recursive|ref|refcursor|" +
143
+ "references|regclass|regconfig|regdictionary|regoper|regoperator|regproc|regprocedure|" +
144
+ "regtype|reindex|relative|release|reltime|rename|repeatable|replace|replica|reset|restart|" +
145
+ "restrict|returning|returns|revoke|right|role|rollback|row|rows|rule|savepoint|schema|scroll|" +
146
+ "search|second|security|select|sequence|sequences|serializable|server|session|session_user|" +
147
+ "set|setof|share|show|similar|simple|smallint|smgr|some|stable|standalone|start|statement|" +
148
+ "statistics|stdin|stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|" +
149
+ "tablespace|temp|template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|" +
150
+ "tinterval|to|trailing|transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsvector|" +
151
+ "txid_snapshot|type|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|" +
152
+ "unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|" +
153
+ "varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|" +
154
+ "with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|" +
155
+ "xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone").split("|")
156
+ );
157
+
158
+
159
+ var builtinFunctions = lang.arrayToMap(
160
+ ("RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|" +
161
+ "RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|" +
162
+ "RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|" +
163
+ "RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|" +
164
+ "abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|aclexplode|aclinsert|" +
165
+ "aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|anyarray_in|anyarray_out|" +
166
+ "anyarray_recv|anyarray_send|anyelement_in|anyelement_out|anyenum_in|anyenum_out|" +
167
+ "anynonarray_in|anynonarray_out|anytextcat|area|areajoinsel|areasel|array_agg|" +
168
+ "array_agg_finalfn|array_agg_transfn|array_append|array_cat|array_dims|array_eq|" +
169
+ "array_fill|array_ge|array_gt|array_in|array_larger|array_le|array_length|array_lower|" +
170
+ "array_lt|array_ndims|array_ne|array_out|array_prepend|array_recv|array_send|" +
171
+ "array_smaller|array_to_string|array_upper|arraycontained|arraycontains|arrayoverlap|" +
172
+ "ascii|ascii_to_mic|ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|" +
173
+ "big5_to_utf8|bit_and|bit_in|bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|" +
174
+ "bitcmp|biteq|bitge|bitgt|bitle|bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|" +
175
+ "bittypmodin|bittypmodout|bitxor|bool|bool_and|bool_or|booland_statefunc|booleq|boolge|" +
176
+ "boolgt|boolin|boolle|boollt|boolne|boolor_statefunc|boolout|boolrecv|boolsend|box|" +
177
+ "box_above|box_above_eq|box_add|box_below|box_below_eq|box_center|box_contain|" +
178
+ "box_contain_pt|box_contained|box_distance|box_div|box_eq|box_ge|box_gt|box_in|" +
179
+ "box_intersect|box_le|box_left|box_lt|box_mul|box_out|box_overabove|box_overbelow|" +
180
+ "box_overlap|box_overleft|box_overright|box_recv|box_right|box_same|box_send|box_sub|" +
181
+ "bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|bpchar_pattern_le|" +
182
+ "bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|bpchargt|bpchariclike|" +
183
+ "bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|bpcharlike|bpcharlt|" +
184
+ "bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|bpcharregexne|bpcharsend|" +
185
+ "bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|btarraycmp|btbeginscan|btboolcmp|" +
186
+ "btbpchar_pattern_cmp|btbuild|btbuildempty|btbulkdelete|btcharcmp|btcostestimate|" +
187
+ "btendscan|btfloat48cmp|btfloat4cmp|btfloat84cmp|btfloat8cmp|btgetbitmap|btgettuple|" +
188
+ "btinsert|btint24cmp|btint28cmp|btint2cmp|btint42cmp|btint48cmp|btint4cmp|btint82cmp|" +
189
+ "btint84cmp|btint8cmp|btmarkpos|btnamecmp|btoidcmp|btoidvectorcmp|btoptions|btrecordcmp|" +
190
+ "btreltimecmp|btrescan|btrestrpos|btrim|bttext_pattern_cmp|bttextcmp|bttidcmp|" +
191
+ "bttintervalcmp|btvacuumcleanup|byteacat|byteacmp|byteaeq|byteage|byteagt|byteain|byteale|" +
192
+ "bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|cash_cmp|cash_div_cash|" +
193
+ "cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|cash_ge|cash_gt|cash_in|" +
194
+ "cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|cash_mul_int2|cash_mul_int4|cash_ne|" +
195
+ "cash_out|cash_pl|cash_recv|cash_send|cash_words|cashlarger|cashsmaller|cbrt|ceil|ceiling|" +
196
+ "center|char|char_length|character_length|chareq|charge|chargt|charin|charle|charlt|charne|" +
197
+ "charout|charrecv|charsend|chr|cideq|cidin|cidout|cidr|cidr_in|cidr_out|cidr_recv|cidr_send|" +
198
+ "cidrecv|cidsend|circle|circle_above|circle_add_pt|circle_below|circle_center|" +
199
+ "circle_contain|circle_contain_pt|circle_contained|circle_distance|circle_div_pt|" +
200
+ "circle_eq|circle_ge|circle_gt|circle_in|circle_le|circle_left|circle_lt|circle_mul_pt|" +
201
+ "circle_ne|circle_out|circle_overabove|circle_overbelow|circle_overlap|circle_overleft|" +
202
+ "circle_overright|circle_recv|circle_right|circle_same|circle_send|circle_sub_pt|" +
203
+ "clock_timestamp|close_lb|close_ls|close_lseg|close_pb|close_pl|close_ps|close_sb|" +
204
+ "close_sl|col_description|concat|concat_ws|contjoinsel|contsel|convert|convert_from|" +
205
+ "convert_to|corr|cos|cot|count|covar_pop|covar_samp|cstring_in|cstring_out|cstring_recv|" +
206
+ "cstring_send|cume_dist|current_database|current_query|current_schema|current_schemas|" +
207
+ "current_setting|current_user|currtid|currtid2|currval|cursor_to_xml|" +
208
+ "cursor_to_xmlschema|database_to_xml|database_to_xml_and_xmlschema|" +
209
+ "database_to_xmlschema|date|date_cmp|date_cmp_timestamp|date_cmp_timestamptz|date_eq|" +
210
+ "date_eq_timestamp|date_eq_timestamptz|date_ge|date_ge_timestamp|date_ge_timestamptz|" +
211
+ "date_gt|date_gt_timestamp|date_gt_timestamptz|date_in|date_larger|date_le|" +
212
+ "date_le_timestamp|date_le_timestamptz|date_lt|date_lt_timestamp|date_lt_timestamptz|" +
213
+ "date_mi|date_mi_interval|date_mii|date_ne|date_ne_timestamp|date_ne_timestamptz|" +
214
+ "date_out|date_part|date_pl_interval|date_pli|date_recv|date_send|date_smaller|" +
215
+ "date_trunc|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|dense_rank|dexp|diagonal|" +
216
+ "diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|dist_pc|dist_pl|" +
217
+ "dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|dpow|dround|" +
218
+ "dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|dsynonym_init|" +
219
+ "dsynonym_lexize|dtrunc|encode|enum_cmp|enum_eq|enum_first|enum_ge|enum_gt|enum_in|" +
220
+ "enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|enum_range|enum_recv|enum_send|" +
221
+ "enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|euc_cn_to_utf8|" +
222
+ "euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|euc_jp_to_sjis|" +
223
+ "euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|euc_tw_to_mic|" +
224
+ "euc_tw_to_utf8|every|exp|factorial|family|fdw_handler_in|fdw_handler_out|first_value|" +
225
+ "float4|float48div|float48eq|float48ge|float48gt|float48le|float48lt|float48mi|float48mul|" +
226
+ "float48ne|float48pl|float4_accum|float4abs|float4div|float4eq|float4ge|float4gt|float4in|" +
227
+ "float4larger|float4le|float4lt|float4mi|float4mul|float4ne|float4out|float4pl|float4recv|" +
228
+ "float4send|float4smaller|float4um|float4up|float8|float84div|float84eq|float84ge|" +
229
+ "float84gt|float84le|float84lt|float84mi|float84mul|float84ne|float84pl|float8_accum|" +
230
+ "float8_avg|float8_corr|float8_covar_pop|float8_covar_samp|float8_regr_accum|" +
231
+ "float8_regr_avgx|float8_regr_avgy|float8_regr_intercept|float8_regr_r2|" +
232
+ "float8_regr_slope|float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|" +
233
+ "float8_stddev_samp|float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|" +
234
+ "float8ge|float8gt|float8in|float8larger|float8le|float8lt|float8mi|float8mul|float8ne|" +
235
+ "float8out|float8pl|float8recv|float8send|float8smaller|float8um|float8up|floor|" +
236
+ "flt4_mul_cash|flt8_mul_cash|fmgr_c_validator|fmgr_internal_validator|" +
237
+ "fmgr_sql_validator|format|format_type|gb18030_to_utf8|gbk_to_utf8|generate_series|" +
238
+ "generate_subscripts|get_bit|get_byte|get_current_ts_config|getdatabaseencoding|" +
239
+ "getpgusername|gin_cmp_prefix|gin_cmp_tslexeme|gin_extract_tsquery|" +
240
+ "gin_extract_tsvector|gin_tsquery_consistent|ginarrayconsistent|ginarrayextract|" +
241
+ "ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|gincostestimate|ginendscan|" +
242
+ "gingetbitmap|gininsert|ginmarkpos|ginoptions|ginqueryarrayextract|ginrescan|" +
243
+ "ginrestrpos|ginvacuumcleanup|gist_box_compress|gist_box_consistent|" +
244
+ "gist_box_decompress|gist_box_penalty|gist_box_picksplit|gist_box_same|gist_box_union|" +
245
+ "gist_circle_compress|gist_circle_consistent|gist_point_compress|" +
246
+ "gist_point_consistent|gist_point_distance|gist_poly_compress|gist_poly_consistent|" +
247
+ "gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|gistcostestimate|gistendscan|" +
248
+ "gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|gistoptions|gistrescan|gistrestrpos|" +
249
+ "gistvacuumcleanup|gtsquery_compress|gtsquery_consistent|gtsquery_decompress|" +
250
+ "gtsquery_penalty|gtsquery_picksplit|gtsquery_same|gtsquery_union|gtsvector_compress|" +
251
+ "gtsvector_consistent|gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|" +
252
+ "gtsvector_same|gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|" +
253
+ "has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|" +
254
+ "has_function_privilege|has_language_privilege|has_schema_privilege|" +
255
+ "has_sequence_privilege|has_server_privilege|has_table_privilege|" +
256
+ "has_tablespace_privilege|hash_aclitem|hash_array|hash_numeric|hashbeginscan|" +
257
+ "hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|hashcostestimate|" +
258
+ "hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|hashinet|" +
259
+ "hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|hashname|" +
260
+ "hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|hashvacuumcleanup|" +
261
+ "hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|icnlikejoinsel|icnlikesel|" +
262
+ "icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|inet_client_addr|" +
263
+ "inet_client_port|inet_in|inet_out|inet_recv|inet_send|inet_server_addr|" +
264
+ "inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|initcap|int2|int24div|" +
265
+ "int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|int24pl|int28div|int28eq|" +
266
+ "int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|int2_accum|" +
267
+ "int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|int2gt|int2in|" +
268
+ "int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|int2pl|" +
269
+ "int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|int2vectorin|" +
270
+ "int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|int42ge|" +
271
+ "int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|int48gt|" +
272
+ "int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|int4_mul_cash|" +
273
+ "int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|int4larger|int4le|" +
274
+ "int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|int4recv|int4send|" +
275
+ "int4shl|int4shr|int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|" +
276
+ "int82le|int82lt|int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|" +
277
+ "int84lt|int84mi|int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|" +
278
+ "int8abs|int8and|int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|" +
279
+ "int8inc_float8_float8|int8larger|int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|" +
280
+ "int8or|int8out|int8pl|int8pl_inet|int8recv|int8send|int8shl|int8shr|int8smaller|int8um|" +
281
+ "int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|internal_out|" +
282
+ "interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|interval_ge|" +
283
+ "interval_gt|interval_hash|interval_in|interval_larger|interval_le|interval_lt|" +
284
+ "interval_mi|interval_mul|interval_ne|interval_out|interval_pl|interval_pl_date|" +
285
+ "interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|interval_pl_timetz|" +
286
+ "interval_recv|interval_send|interval_smaller|interval_um|intervaltypmodin|" +
287
+ "intervaltypmodout|intinterval|isclosed|isfinite|ishorizontal|iso8859_1_to_utf8|" +
288
+ "iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|iso_to_win866|isopen|isparallel|" +
289
+ "isperp|isvertical|johab_to_utf8|justify_days|justify_hours|justify_interval|" +
290
+ "koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|koi8r_to_win1251|koi8r_to_win866|" +
291
+ "koi8u_to_utf8|lag|language_handler_in|language_handler_out|last_value|lastval|" +
292
+ "latin1_to_mic|latin2_to_mic|latin2_to_win1250|latin3_to_mic|latin4_to_mic|lead|left|" +
293
+ "length|like|like_escape|likejoinsel|likesel|line|line_distance|line_eq|line_horizontal|" +
294
+ "line_in|line_interpt|line_intersect|line_out|line_parallel|line_perp|line_recv|" +
295
+ "line_send|line_vertical|ln|lo_close|lo_creat|lo_create|lo_export|lo_import|lo_lseek|" +
296
+ "lo_open|lo_tell|lo_truncate|lo_unlink|log|loread|lower|lowrite|lpad|lseg|lseg_center|" +
297
+ "lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|" +
298
+ "lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|" +
299
+ "lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_cmp|macaddr_eq|macaddr_ge|macaddr_gt|" +
300
+ "macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_out|macaddr_recv|macaddr_send|" +
301
+ "makeaclitem|masklen|max|md5|mic_to_ascii|mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|" +
302
+ "mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|mic_to_koi8r|mic_to_latin1|mic_to_latin2|" +
303
+ "mic_to_latin3|mic_to_latin4|mic_to_sjis|mic_to_win1250|mic_to_win1251|mic_to_win866|" +
304
+ "min|mktinterval|mod|money|mul_d_interval|name|nameeq|namege|namegt|nameiclike|nameicnlike|" +
305
+ "nameicregexeq|nameicregexne|namein|namele|namelike|namelt|namene|namenlike|nameout|" +
306
+ "namerecv|nameregexeq|nameregexne|namesend|neqjoinsel|neqsel|netmask|network|network_cmp|" +
307
+ "network_eq|network_ge|network_gt|network_le|network_lt|network_ne|network_sub|" +
308
+ "network_subeq|network_sup|network_supeq|nextval|nlikejoinsel|nlikesel|notlike|now|" +
309
+ "npoints|nth_value|ntile|numeric_abs|numeric_accum|numeric_add|numeric_avg|" +
310
+ "numeric_avg_accum|numeric_cmp|numeric_div|numeric_div_trunc|numeric_eq|numeric_exp|" +
311
+ "numeric_fac|numeric_ge|numeric_gt|numeric_in|numeric_inc|numeric_larger|numeric_le|" +
312
+ "numeric_ln|numeric_log|numeric_lt|numeric_mod|numeric_mul|numeric_ne|numeric_out|" +
313
+ "numeric_power|numeric_recv|numeric_send|numeric_smaller|numeric_sqrt|" +
314
+ "numeric_stddev_pop|numeric_stddev_samp|numeric_sub|numeric_uminus|numeric_uplus|" +
315
+ "numeric_var_pop|numeric_var_samp|numerictypmodin|numerictypmodout|numnode|" +
316
+ "obj_description|octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|" +
317
+ "oidrecv|oidsend|oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|" +
318
+ "oidvectorlt|oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|" +
319
+ "on_pl|on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|" +
320
+ "path_add_pt|path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|" +
321
+ "path_length|path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|" +
322
+ "path_out|path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|" +
323
+ "pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|" +
324
+ "pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|" +
325
+ "pg_available_extension_versions|pg_available_extensions|pg_backend_pid|" +
326
+ "pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|pg_collation_is_visible|" +
327
+ "pg_column_size|pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|" +
328
+ "pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|" +
329
+ "pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|" +
330
+ "pg_extension_config_dump|pg_extension_update_paths|pg_function_is_visible|" +
331
+ "pg_get_constraintdef|pg_get_expr|pg_get_function_arguments|" +
332
+ "pg_get_function_identity_arguments|pg_get_function_result|pg_get_functiondef|" +
333
+ "pg_get_indexdef|pg_get_keywords|pg_get_ruledef|pg_get_serial_sequence|" +
334
+ "pg_get_triggerdef|pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_indexes_size|" +
335
+ "pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|" +
336
+ "pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|" +
337
+ "pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|" +
338
+ "pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|" +
339
+ "pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|" +
340
+ "pg_options_to_table|pg_postmaster_start_time|pg_prepared_statement|pg_prepared_xact|" +
341
+ "pg_read_binary_file|pg_read_file|pg_relation_filenode|pg_relation_filepath|" +
342
+ "pg_relation_size|pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|" +
343
+ "pg_show_all_settings|pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|" +
344
+ "pg_stat_file|pg_stat_get_activity|pg_stat_get_analyze_count|" +
345
+ "pg_stat_get_autoanalyze_count|pg_stat_get_autovacuum_count|" +
346
+ "pg_stat_get_backend_activity|pg_stat_get_backend_activity_start|" +
347
+ "pg_stat_get_backend_client_addr|pg_stat_get_backend_client_port|" +
348
+ "pg_stat_get_backend_dbid|pg_stat_get_backend_idset|pg_stat_get_backend_pid|" +
349
+ "pg_stat_get_backend_start|pg_stat_get_backend_userid|pg_stat_get_backend_waiting|" +
350
+ "pg_stat_get_backend_xact_start|pg_stat_get_bgwriter_buf_written_checkpoints|" +
351
+ "pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|" +
352
+ "pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|" +
353
+ "pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|" +
354
+ "pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|" +
355
+ "pg_stat_get_buf_written_backend|pg_stat_get_db_blocks_fetched|" +
356
+ "pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|" +
357
+ "pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|" +
358
+ "pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|" +
359
+ "pg_stat_get_db_conflict_tablespace|pg_stat_get_db_numbackends|" +
360
+ "pg_stat_get_db_stat_reset_time|pg_stat_get_db_tuples_deleted|" +
361
+ "pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|" +
362
+ "pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|" +
363
+ "pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|" +
364
+ "pg_stat_get_function_calls|pg_stat_get_function_self_time|" +
365
+ "pg_stat_get_function_time|pg_stat_get_last_analyze_time|" +
366
+ "pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|" +
367
+ "pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|" +
368
+ "pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|" +
369
+ "pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|" +
370
+ "pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|" +
371
+ "pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|" +
372
+ "pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|" +
373
+ "pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_time|" +
374
+ "pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|" +
375
+ "pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|" +
376
+ "pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|" +
377
+ "pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|" +
378
+ "pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|" +
379
+ "pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|" +
380
+ "pg_tablespace_databases|pg_tablespace_size|pg_terminate_backend|pg_timezone_abbrevs|" +
381
+ "pg_timezone_names|pg_total_relation_size|pg_try_advisory_lock|" +
382
+ "pg_try_advisory_lock_shared|pg_try_advisory_xact_lock|" +
383
+ "pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|pg_ts_dict_is_visible|" +
384
+ "pg_ts_parser_is_visible|pg_ts_template_is_visible|pg_type_is_visible|pg_typeof|" +
385
+ "pg_xlog_replay_pause|pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|" +
386
+ "pi|plainto_tsquery|plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|" +
387
+ "point|point_above|point_add|point_below|point_distance|point_div|point_eq|point_horiz|" +
388
+ "point_in|point_left|point_mul|point_ne|point_out|point_recv|point_right|point_send|" +
389
+ "point_sub|point_vert|poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|" +
390
+ "poly_contained|poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|" +
391
+ "poly_overbelow|poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|" +
392
+ "poly_same|poly_send|polygon|popen|position|positionjoinsel|positionsel|" +
393
+ "postgresql_fdw_validator|pow|power|prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|" +
394
+ "prsd_start|pt_contained_circle|pt_contained_poly|query_to_xml|" +
395
+ "query_to_xml_and_xmlschema|query_to_xmlschema|querytree|quote_ident|quote_literal|" +
396
+ "quote_nullable|radians|radius|random|rank|record_eq|record_ge|record_gt|record_in|" +
397
+ "record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|" +
398
+ "regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|" +
399
+ "regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|" +
400
+ "regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|" +
401
+ "regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|" +
402
+ "regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|" +
403
+ "regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|" +
404
+ "regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|" +
405
+ "regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|" +
406
+ "reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|" +
407
+ "reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|rpad|rtrim|" +
408
+ "scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|" +
409
+ "schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|" +
410
+ "set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|" +
411
+ "shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|" +
412
+ "similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|" +
413
+ "smgrout|split_part|sqrt|statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|" +
414
+ "string_agg_finalfn|string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|" +
415
+ "suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|" +
416
+ "table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|" +
417
+ "text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|" +
418
+ "texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|" +
419
+ "textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|" +
420
+ "thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|" +
421
+ "tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|" +
422
+ "time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|" +
423
+ "time_smaller|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|" +
424
+ "timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|" +
425
+ "timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|" +
426
+ "timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|" +
427
+ "timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|" +
428
+ "timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|" +
429
+ "timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|" +
430
+ "timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|" +
431
+ "timestamptypmodin|timestamptypmodout|timestamptz_cmp|timestamptz_cmp_date|" +
432
+ "timestamptz_cmp_timestamp|timestamptz_eq|timestamptz_eq_date|" +
433
+ "timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|" +
434
+ "timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|" +
435
+ "timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|" +
436
+ "timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|" +
437
+ "timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|" +
438
+ "timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|" +
439
+ "timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|" +
440
+ "timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|" +
441
+ "timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|" +
442
+ "timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|" +
443
+ "timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|" +
444
+ "tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|" +
445
+ "tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|" +
446
+ "tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|" +
447
+ "tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|" +
448
+ "to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|" +
449
+ "trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|" +
450
+ "ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|" +
451
+ "ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|" +
452
+ "tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|" +
453
+ "tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsvector_cmp|" +
454
+ "tsvector_concat|tsvector_eq|tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|" +
455
+ "tsvector_ne|tsvector_update_trigger|tsvector_update_trigger_column|tsvectorin|" +
456
+ "tsvectorout|tsvectorrecv|tsvectorsend|txid_current|txid_current_snapshot|" +
457
+ "txid_snapshot_in|txid_snapshot_out|txid_snapshot_recv|txid_snapshot_send|" +
458
+ "txid_snapshot_xip|txid_snapshot_xmax|txid_snapshot_xmin|txid_visible_in_snapshot|" +
459
+ "uhc_to_utf8|unique_key_recheck|unknownin|unknownout|unknownrecv|unknownsend|unnest|" +
460
+ "upper|utf8_to_ascii|utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|" +
461
+ "utf8_to_euc_kr|utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|" +
462
+ "utf8_to_iso8859_1|utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|" +
463
+ "utf8_to_sjis|utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|" +
464
+ "uuid_le|uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|" +
465
+ "varbit_out|varbit_recv|varbit_send|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|" +
466
+ "varbitlt|varbitne|varbittypmodin|varbittypmodout|varcharin|varcharout|varcharrecv|" +
467
+ "varcharsend|varchartypmodin|varchartypmodout|variance|version|void_in|void_out|" +
468
+ "void_recv|void_send|width|width_bucket|win1250_to_latin2|win1250_to_mic|win1251_to_iso|" +
469
+ "win1251_to_koi8r|win1251_to_mic|win1251_to_win866|win866_to_iso|win866_to_koi8r|" +
470
+ "win866_to_mic|win866_to_win1251|win_to_utf8|xideq|xideqint4|xidin|xidout|xidrecv|xidsend|" +
471
+ "xml|xml_in|xml_is_well_formed|xml_is_well_formed_content|xml_is_well_formed_document|" +
472
+ "xml_out|xml_recv|xml_send|xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|" +
473
+ "xpath_exists").split("|")
474
+ );
475
+
476
+ var sqlRules = [
477
+ {
478
+ token : "string", // single line string -- assume dollar strings if multi-line for now
479
+ regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
480
+ }, {
481
+ token : "variable.language", // pg identifier
482
+ regex : '".*?"'
483
+ }, {
484
+ token : "constant.numeric", // float
485
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
486
+ }, {
487
+ token : function(value) {
488
+ value = value.toLowerCase();
489
+ if (keywords.hasOwnProperty(value)) {
490
+ return "keyword";
491
+ } else if (builtinFunctions.hasOwnProperty(value)) {
492
+ return "support.function";
493
+ } else {
494
+ return "identifier";
495
+ }
496
+ },
497
+ regex : "[a-zA-Z_][a-zA-Z0-9_$]*\\b" // TODO - Unicode in identifiers
498
+ }, {
499
+ token : "keyword.operator",
500
+ regex : "!|!!|!~|!~\\*|!~~|!~~\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\&|\\&\\&|\\&<|\\&<\\||\\&>|\\*|\\+|" +
501
+ "\\-|/|<|<#>|<\\->|<<|<<=|<<\\||<=|<>|<\\?>|<@|<\\^|=|>|>=|>>|>>=|>\\^|\\?#|\\?\\-|\\?\\-\\||" +
502
+ "\\?\\||\\?\\|\\||@|@\\-@|@>|@@|@@@|\\^|\\||\\|\\&>|\\|/|\\|>>|\\|\\||\\|\\|/|~|~\\*|~<=~|~<~|" +
503
+ "~=|~>=~|~>~|~~|~~\\*"
504
+ }, {
505
+ token : "lparen.paren",
506
+ regex : "[\\(]"
507
+ }, {
508
+ token : "paren.rparen",
509
+ regex : "[\\)]"
510
+ }, {
511
+ token : "text",
512
+ regex : "\\s+"
513
+ }
514
+ ];
515
+
516
+
517
+ this.$rules = {
518
+ "start" : [
519
+ {
520
+ token : "comment",
521
+ regex : "--.*$"
522
+ },
523
+ new DocCommentHighlightRules().getStartRule("doc-start"),
524
+ {
525
+ token : "comment", // multi-line comment
526
+ merge : true,
527
+ regex : "\\/\\*",
528
+ next : "comment"
529
+ },{
530
+ token : "keyword.statementBegin",
531
+ regex : "^[a-zA-Z]+", // Could enumerate starting keywords but this allows things to work when new statements are added.
532
+ next : "statement"
533
+ },{
534
+ token : "support.buildin", // psql directive
535
+ regex : "^\\\\[\\S]+.*$"
536
+ }
537
+ ],
538
+
539
+ "statement" : [
540
+ {
541
+ token : "comment",
542
+ regex : "--.*$"
543
+ }, {
544
+ token : "comment", // multi-line comment
545
+ merge : true,
546
+ regex : "\\/\\*",
547
+ next : "commentStatement"
548
+ }, {
549
+ token : "statementEnd",
550
+ regex : ";",
551
+ next : "start"
552
+ }, {
553
+ token : "string", // perl, python, tcl are in the pg default dist (no tcl highlighter)
554
+ regex : "\\$perl\\$",
555
+ next : "perl-start"
556
+ }, {
557
+ token : "string",
558
+ regex : "\\$python\\$",
559
+ next : "python-start"
560
+ },{
561
+ token : "string",
562
+ regex : "\\$[\\w_0-9]*\\$$", // dollar quote at the end of a line
563
+ next : "dollarSql"
564
+ }, {
565
+ token : "string",
566
+ regex : "\\$[\\w_0-9]*\\$",
567
+ next : "dollarStatementString"
568
+ }
569
+ ].concat(sqlRules),
570
+
571
+ "dollarSql" : [
572
+ {
573
+ token : "comment",
574
+ regex : "--.*$"
575
+ }, {
576
+ token : "comment", // multi-line comment
577
+ merge : true,
578
+ regex : "\\/\\*",
579
+ next : "commentDollarSql"
580
+ }, {
581
+ token : "string", // end quoting with dollar at the start of a line
582
+ regex : "^\\$[\\w_0-9]*\\$",
583
+ next : "statement"
584
+ }, {
585
+ token : "string",
586
+ regex : "\\$[\\w_0-9]*\\$",
587
+ next : "dollarSqlString"
588
+ }
589
+ ].concat(sqlRules),
590
+
591
+ "comment" : [
592
+ {
593
+ token : "comment", // closing comment
594
+ regex : ".*?\\*\\/",
595
+ next : "start"
596
+ }, {
597
+ token : "comment", // comment spanning whole line
598
+ merge : true,
599
+ regex : ".+"
600
+ }
601
+ ],
602
+
603
+ "commentStatement" : [
604
+ {
605
+ token : "comment", // closing comment
606
+ regex : ".*?\\*\\/",
607
+ next : "statement"
608
+ }, {
609
+ token : "comment", // comment spanning whole line
610
+ merge : true,
611
+ regex : ".+"
612
+ }
613
+ ],
614
+
615
+ "commentDollarSql" : [
616
+ {
617
+ token : "comment", // closing comment
618
+ regex : ".*?\\*\\/",
619
+ next : "dollarSql"
620
+ }, {
621
+ token : "comment", // comment spanning whole line
622
+ merge : true,
623
+ regex : ".+"
624
+ }
625
+ ],
626
+
627
+ "dollarStatementString" : [
628
+ {
629
+ token : "string", // closing dollarstring
630
+ regex : ".*?\\$[\\w_0-9]*\\$",
631
+ next : "statement"
632
+ }, {
633
+ token : "string", // dollarstring spanning whole line
634
+ merge : true,
635
+ regex : ".+"
636
+ }
637
+ ],
638
+
639
+ "dollarSqlString" : [
640
+ {
641
+ token : "string", // closing dollarstring
642
+ regex : ".*?\\$[\\w_0-9]*\\$",
643
+ next : "dollarSql"
644
+ }, {
645
+ token : "string", // dollarstring spanning whole line
646
+ merge : true,
647
+ regex : ".+"
648
+ }
649
+ ]
650
+ };
651
+
652
+ this.embedRules(DocCommentHighlightRules, "doc-", [ new DocCommentHighlightRules().getEndRule("start") ]);
653
+ this.embedRules(PerlHighlightRules, "perl-", [{token : "string", regex : "\\$perl\\$", next : "statement"}]);
654
+ this.embedRules(PythonHighlightRules, "python-", [{token : "string", regex : "\\$python\\$", next : "statement"}]);
655
+ };
656
+
657
+ oop.inherits(PgsqlHighlightRules, TextHighlightRules);
658
+
659
+ exports.PgsqlHighlightRules = PgsqlHighlightRules;
660
+ });
661
+
662
+ /* ***** BEGIN LICENSE BLOCK *****
663
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
664
+ *
665
+ * The contents of this file are subject to the Mozilla Public License Version
666
+ * 1.1 (the "License"); you may not use this file except in compliance with
667
+ * the License. You may obtain a copy of the License at
668
+ * http://www.mozilla.org/MPL/
669
+ *
670
+ * Software distributed under the License is distributed on an "AS IS" basis,
671
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
672
+ * for the specific language governing rights and limitations under the
673
+ * License.
674
+ *
675
+ * The Original Code is Ajax.org Code Editor (ACE).
676
+ *
677
+ * The Initial Developer of the Original Code is
678
+ * Ajax.org B.V.
679
+ * Portions created by the Initial Developer are Copyright (C) 2010
680
+ * the Initial Developer. All Rights Reserved.
681
+ *
682
+ * Contributor(s):
683
+ * Fabian Jakobs <fabian AT ajax DOT org>
684
+ *
685
+ * Alternatively, the contents of this file may be used under the terms of
686
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
687
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
688
+ * in which case the provisions of the GPL or the LGPL are applicable instead
689
+ * of those above. If you wish to allow use of your version of this file only
690
+ * under the terms of either the GPL or the LGPL, and not to allow others to
691
+ * use your version of this file under the terms of the MPL, indicate your
692
+ * decision by deleting the provisions above and replace them with the notice
693
+ * and other provisions required by the GPL or the LGPL. If you do not delete
694
+ * the provisions above, a recipient may use your version of this file under
695
+ * the terms of any one of the MPL, the GPL or the LGPL.
696
+ *
697
+ * ***** END LICENSE BLOCK ***** */
698
+
699
+ define('ace/mode/doc_comment_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
700
+ "use strict";
701
+
702
+ var oop = require("../lib/oop");
703
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
704
+
705
+ var DocCommentHighlightRules = function() {
706
+
707
+ this.$rules = {
708
+ "start" : [ {
709
+ token : "comment.doc.tag",
710
+ regex : "@[\\w\\d_]+" // TODO: fix email addresses
711
+ }, {
712
+ token : "comment.doc",
713
+ merge : true,
714
+ regex : "\\s+"
715
+ }, {
716
+ token : "comment.doc",
717
+ merge : true,
718
+ regex : "TODO"
719
+ }, {
720
+ token : "comment.doc",
721
+ merge : true,
722
+ regex : "[^@\\*]+"
723
+ }, {
724
+ token : "comment.doc",
725
+ merge : true,
726
+ regex : "."
727
+ }]
728
+ };
729
+ };
730
+
731
+ oop.inherits(DocCommentHighlightRules, TextHighlightRules);
732
+
733
+ (function() {
734
+
735
+ this.getStartRule = function(start) {
736
+ return {
737
+ token : "comment.doc", // doc comment
738
+ merge : true,
739
+ regex : "\\/\\*(?=\\*)",
740
+ next : start
741
+ };
742
+ };
743
+
744
+ this.getEndRule = function (start) {
745
+ return {
746
+ token : "comment.doc", // closing comment
747
+ merge : true,
748
+ regex : "\\*\\/",
749
+ next : start
750
+ };
751
+ };
752
+
753
+ }).call(DocCommentHighlightRules.prototype);
754
+
755
+ exports.DocCommentHighlightRules = DocCommentHighlightRules;
756
+
757
+ });
758
+ /* ***** BEGIN LICENSE BLOCK *****
759
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
760
+ *
761
+ * The contents of this file are subject to the Mozilla Public License Version
762
+ * 1.1 (the "License"); you may not use this file except in compliance with
763
+ * the License. You may obtain a copy of the License at
764
+ * http://www.mozilla.org/MPL/
765
+ *
766
+ * Software distributed under the License is distributed on an "AS IS" basis,
767
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
768
+ * for the specific language governing rights and limitations under the
769
+ * License.
770
+ *
771
+ * The Original Code is Ajax.org Code Editor (ACE).
772
+ *
773
+ * The Initial Developer of the Original Code is
774
+ * Ajax.org B.V.
775
+ * Portions created by the Initial Developer are Copyright (C) 2010
776
+ * the Initial Developer. All Rights Reserved.
777
+ *
778
+ * Contributor(s):
779
+ * Panagiotis Astithas <pastith AT gmail DOT com>
780
+ *
781
+ * Alternatively, the contents of this file may be used under the terms of
782
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
783
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
784
+ * in which case the provisions of the GPL or the LGPL are applicable instead
785
+ * of those above. If you wish to allow use of your version of this file only
786
+ * under the terms of either the GPL or the LGPL, and not to allow others to
787
+ * use your version of this file under the terms of the MPL, indicate your
788
+ * decision by deleting the provisions above and replace them with the notice
789
+ * and other provisions required by the GPL or the LGPL. If you do not delete
790
+ * the provisions above, a recipient may use your version of this file under
791
+ * the terms of any one of the MPL, the GPL or the LGPL.
792
+ *
793
+ * ***** END LICENSE BLOCK ***** */
794
+
795
+ define('ace/mode/perl_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
796
+ "use strict";
797
+
798
+ var oop = require("../lib/oop");
799
+ var lang = require("../lib/lang");
800
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
801
+
802
+ var PerlHighlightRules = function() {
803
+
804
+ var keywords = lang.arrayToMap(
805
+ ("base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|" +
806
+ "no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars").split("|")
807
+ );
808
+
809
+ var buildinConstants = lang.arrayToMap(
810
+ ("ARGV|ENV|INC|SIG").split("|")
811
+ );
812
+
813
+ var builtinFunctions = lang.arrayToMap(
814
+ ("getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|" +
815
+ "gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|" +
816
+ "getpeername|setpriority|getprotoent|setprotoent|getpriority|" +
817
+ "endprotoent|getservent|setservent|endservent|sethostent|socketpair|" +
818
+ "getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|" +
819
+ "localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|" +
820
+ "closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|" +
821
+ "shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|" +
822
+ "dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|" +
823
+ "setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|" +
824
+ "lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|" +
825
+ "waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|" +
826
+ "chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|" +
827
+ "unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|" +
828
+ "length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|" +
829
+ "undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|" +
830
+ "sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|" +
831
+ "BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|" +
832
+ "join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|" +
833
+ "keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|" +
834
+ "eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|" +
835
+ "map|die|uc|lc|do").split("|")
836
+ );
837
+
838
+ // regexp must not have capturing parentheses. Use (?:) instead.
839
+ // regexps are ordered -> the first match is used
840
+
841
+ this.$rules = {
842
+ "start" : [
843
+ {
844
+ token : "comment",
845
+ regex : "#.*$"
846
+ }, {
847
+ token : "string.regexp",
848
+ regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"
849
+ }, {
850
+ token : "string", // single line
851
+ regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
852
+ }, {
853
+ token : "string", // multi line string start
854
+ merge : true,
855
+ regex : '["].*\\\\$',
856
+ next : "qqstring"
857
+ }, {
858
+ token : "string", // single line
859
+ regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
860
+ }, {
861
+ token : "string", // multi line string start
862
+ merge : true,
863
+ regex : "['].*\\\\$",
864
+ next : "qstring"
865
+ }, {
866
+ token : "constant.numeric", // hex
867
+ regex : "0x[0-9a-fA-F]+\\b"
868
+ }, {
869
+ token : "constant.numeric", // float
870
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
871
+ }, {
872
+ token : function(value) {
873
+ if (keywords.hasOwnProperty(value))
874
+ return "keyword";
875
+ else if (buildinConstants.hasOwnProperty(value))
876
+ return "constant.language";
877
+ else if (builtinFunctions.hasOwnProperty(value))
878
+ return "support.function";
879
+ else
880
+ return "identifier";
881
+ },
882
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
883
+ }, {
884
+ token : "keyword.operator",
885
+ regex : "\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)"
886
+ }, {
887
+ token : "lparen",
888
+ regex : "[[({]"
889
+ }, {
890
+ token : "rparen",
891
+ regex : "[\\])}]"
892
+ }, {
893
+ token : "text",
894
+ regex : "\\s+"
895
+ }
896
+ ],
897
+ "qqstring" : [
898
+ {
899
+ token : "string",
900
+ regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"',
901
+ next : "start"
902
+ }, {
903
+ token : "string",
904
+ merge : true,
905
+ regex : '.+'
906
+ }
907
+ ],
908
+ "qstring" : [
909
+ {
910
+ token : "string",
911
+ regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'",
912
+ next : "start"
913
+ }, {
914
+ token : "string",
915
+ merge : true,
916
+ regex : '.+'
917
+ }
918
+ ]
919
+ };
920
+ };
921
+
922
+ oop.inherits(PerlHighlightRules, TextHighlightRules);
923
+
924
+ exports.PerlHighlightRules = PerlHighlightRules;
925
+ });
926
+ /* ***** BEGIN LICENSE BLOCK *****
927
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
928
+ *
929
+ * The contents of this file are subject to the Mozilla Public License Version
930
+ * 1.1 (the "License"); you may not use this file except in compliance with
931
+ * the License. You may obtain a copy of the License at
932
+ * http://www.mozilla.org/MPL/
933
+ *
934
+ * Software distributed under the License is distributed on an "AS IS" basis,
935
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
936
+ * for the specific language governing rights and limitations under the
937
+ * License.
938
+ *
939
+ * The Original Code is Ajax.org Code Editor (ACE).
940
+ *
941
+ * The Initial Developer of the Original Code is
942
+ * Ajax.org B.V.
943
+ * Portions created by the Initial Developer are Copyright (C) 2010
944
+ * the Initial Developer. All Rights Reserved.
945
+ *
946
+ * Contributor(s):
947
+ * Fabian Jakobs <fabian AT ajax DOT org>
948
+ * Colin Gourlay <colin DOT j DOT gourlay AT gmail DOT com>
949
+ *
950
+ * Alternatively, the contents of this file may be used under the terms of
951
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
952
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
953
+ * in which case the provisions of the GPL or the LGPL are applicable instead
954
+ * of those above. If you wish to allow use of your version of this file only
955
+ * under the terms of either the GPL or the LGPL, and not to allow others to
956
+ * use your version of this file under the terms of the MPL, indicate your
957
+ * decision by deleting the provisions above and replace them with the notice
958
+ * and other provisions required by the GPL or the LGPL. If you do not delete
959
+ * the provisions above, a recipient may use your version of this file under
960
+ * the terms of any one of the MPL, the GPL or the LGPL.
961
+ *
962
+ * ***** END LICENSE BLOCK *****
963
+ *
964
+ * TODO: python delimiters
965
+ */
966
+
967
+ define('ace/mode/python_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
968
+ "use strict";
969
+
970
+ var oop = require("../lib/oop");
971
+ var lang = require("../lib/lang");
972
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
973
+
974
+ var PythonHighlightRules = function() {
975
+
976
+ var keywords = lang.arrayToMap(
977
+ ("and|as|assert|break|class|continue|def|del|elif|else|except|exec|" +
978
+ "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" +
979
+ "raise|return|try|while|with|yield").split("|")
980
+ );
981
+
982
+ var builtinConstants = lang.arrayToMap(
983
+ ("True|False|None|NotImplemented|Ellipsis|__debug__").split("|")
984
+ );
985
+
986
+ var builtinFunctions = lang.arrayToMap(
987
+ ("abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" +
988
+ "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" +
989
+ "binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|" +
990
+ "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" +
991
+ "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" +
992
+ "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" +
993
+ "__import__|complex|hash|min|set|apply|delattr|help|next|setattr|" +
994
+ "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern").split("|")
995
+ );
996
+
997
+ var futureReserved = lang.arrayToMap(
998
+ ("").split("|")
999
+ );
1000
+
1001
+ var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?";
1002
+
1003
+ var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
1004
+ var octInteger = "(?:0[oO]?[0-7]+)";
1005
+ var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";
1006
+ var binInteger = "(?:0[bB][01]+)";
1007
+ var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")";
1008
+
1009
+ var exponent = "(?:[eE][+-]?\\d+)";
1010
+ var fraction = "(?:\\.\\d+)";
1011
+ var intPart = "(?:\\d+)";
1012
+ var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";
1013
+ var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")";
1014
+ var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")";
1015
+
1016
+ this.$rules = {
1017
+ "start" : [ {
1018
+ token : "comment",
1019
+ regex : "#.*$"
1020
+ }, {
1021
+ token : "string", // """ string
1022
+ regex : strPre + '"{3}(?:[^\\\\]|\\\\.)*?"{3}'
1023
+ }, {
1024
+ token : "string", // multi line """ string start
1025
+ merge : true,
1026
+ regex : strPre + '"{3}.*$',
1027
+ next : "qqstring"
1028
+ }, {
1029
+ token : "string", // " string
1030
+ regex : strPre + '"(?:[^\\\\]|\\\\.)*?"'
1031
+ }, {
1032
+ token : "string", // ''' string
1033
+ regex : strPre + "'{3}(?:[^\\\\]|\\\\.)*?'{3}"
1034
+ }, {
1035
+ token : "string", // multi line ''' string start
1036
+ merge : true,
1037
+ regex : strPre + "'{3}.*$",
1038
+ next : "qstring"
1039
+ }, {
1040
+ token : "string", // ' string
1041
+ regex : strPre + "'(?:[^\\\\]|\\\\.)*?'"
1042
+ }, {
1043
+ token : "constant.numeric", // imaginary
1044
+ regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b"
1045
+ }, {
1046
+ token : "constant.numeric", // float
1047
+ regex : floatNumber
1048
+ }, {
1049
+ token : "constant.numeric", // long integer
1050
+ regex : integer + "[lL]\\b"
1051
+ }, {
1052
+ token : "constant.numeric", // integer
1053
+ regex : integer + "\\b"
1054
+ }, {
1055
+ token : function(value) {
1056
+ if (keywords.hasOwnProperty(value))
1057
+ return "keyword";
1058
+ else if (builtinConstants.hasOwnProperty(value))
1059
+ return "constant.language";
1060
+ else if (futureReserved.hasOwnProperty(value))
1061
+ return "invalid.illegal";
1062
+ else if (builtinFunctions.hasOwnProperty(value))
1063
+ return "support.function";
1064
+ else if (value == "debugger")
1065
+ return "invalid.deprecated";
1066
+ else
1067
+ return "identifier";
1068
+ },
1069
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
1070
+ }, {
1071
+ token : "keyword.operator",
1072
+ regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="
1073
+ }, {
1074
+ token : "lparen.paren",
1075
+ regex : "[\\[\\(\\{]"
1076
+ }, {
1077
+ token : "paren.rparen",
1078
+ regex : "[\\]\\)\\}]"
1079
+ }, {
1080
+ token : "text",
1081
+ regex : "\\s+"
1082
+ } ],
1083
+ "qqstring" : [ {
1084
+ token : "string", // multi line """ string end
1085
+ regex : '(?:[^\\\\]|\\\\.)*?"{3}',
1086
+ next : "start"
1087
+ }, {
1088
+ token : "string",
1089
+ merge : true,
1090
+ regex : '.+'
1091
+ } ],
1092
+ "qstring" : [ {
1093
+ token : "string", // multi line ''' string end
1094
+ regex : "(?:[^\\\\]|\\\\.)*?'{3}",
1095
+ next : "start"
1096
+ }, {
1097
+ token : "string",
1098
+ merge : true,
1099
+ regex : '.+'
1100
+ } ]
1101
+ };
1102
+ };
1103
+
1104
+ oop.inherits(PythonHighlightRules, TextHighlightRules);
1105
+
1106
+ exports.PythonHighlightRules = PythonHighlightRules;
1107
+ });