ace-rails-ap 0.0.3 → 1.0.0

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 (267) hide show
  1. data/lib/ace/rails/version.rb +1 -1
  2. data/vendor/assets/javascripts/ace.js +15680 -1
  3. data/vendor/assets/javascripts/keybinding-emacs.js +367 -1
  4. data/vendor/assets/javascripts/keybinding-vim.js +1635 -1
  5. data/vendor/assets/javascripts/mode-c9search.js +275 -0
  6. data/vendor/assets/javascripts/mode-c_cpp.js +744 -1
  7. data/vendor/assets/javascripts/mode-clojure.js +364 -1
  8. data/vendor/assets/javascripts/mode-coffee.js +527 -1
  9. data/vendor/assets/javascripts/mode-coldfusion.js +1966 -1
  10. data/vendor/assets/javascripts/mode-csharp.js +633 -1
  11. data/vendor/assets/javascripts/mode-css.js +499 -1
  12. data/vendor/assets/javascripts/mode-diff.js +250 -0
  13. data/vendor/assets/javascripts/{mode-c_cpp-uncompressed.js → mode-glsl.js} +147 -244
  14. data/vendor/assets/javascripts/mode-golang.js +681 -1
  15. data/vendor/assets/javascripts/mode-groovy.js +1240 -1
  16. data/vendor/assets/javascripts/mode-haxe.js +633 -1
  17. data/vendor/assets/javascripts/mode-html.js +2064 -1
  18. data/vendor/assets/javascripts/mode-java.js +1202 -1
  19. data/vendor/assets/javascripts/mode-javascript.js +1069 -1
  20. data/vendor/assets/javascripts/mode-json.js +588 -1
  21. data/vendor/assets/javascripts/{mode-haxe-uncompressed.js → mode-jsx.js} +189 -312
  22. data/vendor/assets/javascripts/mode-latex.js +95 -1
  23. data/vendor/assets/javascripts/mode-less.js +512 -1
  24. data/vendor/assets/javascripts/mode-liquid.js +1125 -1
  25. data/vendor/assets/javascripts/mode-lua.js +551 -1
  26. data/vendor/assets/javascripts/{mode-html-uncompressed.js → mode-luahtml.js} +544 -604
  27. data/vendor/assets/javascripts/{mode-coldfusion-uncompressed.js → mode-luapage.js} +2326 -2180
  28. data/vendor/assets/javascripts/mode-markdown.js +2369 -1
  29. data/vendor/assets/javascripts/mode-ocaml.js +464 -1
  30. data/vendor/assets/javascripts/mode-perl.js +432 -1
  31. data/vendor/assets/javascripts/mode-pgsql.js +970 -1
  32. data/vendor/assets/javascripts/mode-php.js +1718 -1
  33. data/vendor/assets/javascripts/mode-powershell.js +610 -1
  34. data/vendor/assets/javascripts/mode-python.js +397 -1
  35. data/vendor/assets/javascripts/mode-ruby.js +318 -1
  36. data/vendor/assets/javascripts/mode-scad.js +732 -1
  37. data/vendor/assets/javascripts/mode-scala.js +1237 -1
  38. data/vendor/assets/javascripts/mode-scss.js +537 -1
  39. data/vendor/assets/javascripts/mode-sh.js +250 -1
  40. data/vendor/assets/javascripts/mode-sql.js +140 -1
  41. data/vendor/assets/javascripts/mode-svg.js +1681 -1
  42. data/vendor/assets/javascripts/mode-tcl.js +320 -0
  43. data/vendor/assets/javascripts/mode-textile.js +182 -1
  44. data/vendor/assets/javascripts/mode-xml.js +829 -1
  45. data/vendor/assets/javascripts/mode-xquery.js +605 -1
  46. data/vendor/assets/javascripts/mode-yaml.js +189 -0
  47. data/vendor/assets/javascripts/theme-chrome.js +213 -1
  48. data/vendor/assets/javascripts/theme-clouds.js +167 -1
  49. data/vendor/assets/javascripts/theme-clouds_midnight.js +168 -1
  50. data/vendor/assets/javascripts/theme-cobalt.js +194 -1
  51. data/vendor/assets/javascripts/theme-crimson_editor.js +200 -1
  52. data/vendor/assets/javascripts/theme-dawn.js +198 -1
  53. data/vendor/assets/javascripts/theme-dreamweaver.js +230 -1
  54. data/vendor/assets/javascripts/theme-eclipse.js +157 -1
  55. data/vendor/assets/javascripts/theme-github.js +182 -0
  56. data/vendor/assets/javascripts/theme-idle_fingers.js +186 -1
  57. data/vendor/assets/javascripts/theme-kr_theme.js +189 -1
  58. data/vendor/assets/javascripts/theme-merbivore.js +189 -1
  59. data/vendor/assets/javascripts/theme-merbivore_soft.js +195 -1
  60. data/vendor/assets/javascripts/theme-mono_industrial.js +197 -1
  61. data/vendor/assets/javascripts/theme-monokai.js +194 -1
  62. data/vendor/assets/javascripts/theme-pastel_on_dark.js +199 -1
  63. data/vendor/assets/javascripts/theme-solarized_dark.js +180 -1
  64. data/vendor/assets/javascripts/theme-solarized_light.js +179 -1
  65. data/vendor/assets/javascripts/theme-textmate.js +216 -0
  66. data/vendor/assets/javascripts/theme-tomorrow.js +213 -1
  67. data/vendor/assets/javascripts/theme-tomorrow_night.js +213 -1
  68. data/vendor/assets/javascripts/theme-tomorrow_night_blue.js +213 -1
  69. data/vendor/assets/javascripts/theme-tomorrow_night_bright.js +213 -1
  70. data/vendor/assets/javascripts/theme-tomorrow_night_eighties.js +209 -1
  71. data/vendor/assets/javascripts/theme-twilight.js +211 -1
  72. data/vendor/assets/javascripts/theme-vibrant_ink.js +190 -1
  73. data/vendor/assets/javascripts/worker-coffee.js +83 -893
  74. data/vendor/assets/javascripts/worker-css.js +88 -1402
  75. data/vendor/assets/javascripts/worker-javascript.js +97 -812
  76. data/vendor/assets/javascripts/worker-json.js +84 -761
  77. data/vendor/assets/javascripts/worker-xquery.js +66464 -0
  78. metadata +12 -195
  79. data/vendor/assets/javascripts/ace-compat-noconflict.js +0 -1
  80. data/vendor/assets/javascripts/ace-compat-uncompressed-noconflict.js +0 -480
  81. data/vendor/assets/javascripts/ace-compat-uncompressed.js +0 -480
  82. data/vendor/assets/javascripts/ace-compat.js +0 -1
  83. data/vendor/assets/javascripts/ace-noconflict.js +0 -10
  84. data/vendor/assets/javascripts/ace-uncompressed-noconflict.js +0 -19976
  85. data/vendor/assets/javascripts/ace-uncompressed.js +0 -19976
  86. data/vendor/assets/javascripts/keybinding-emacs-noconflict.js +0 -1
  87. data/vendor/assets/javascripts/keybinding-emacs-uncompressed-noconflict.js +0 -150
  88. data/vendor/assets/javascripts/keybinding-emacs-uncompressed.js +0 -150
  89. data/vendor/assets/javascripts/keybinding-vim-noconflict.js +0 -1
  90. data/vendor/assets/javascripts/keybinding-vim-uncompressed-noconflict.js +0 -138
  91. data/vendor/assets/javascripts/keybinding-vim-uncompressed.js +0 -138
  92. data/vendor/assets/javascripts/mode-c_cpp-noconflict.js +0 -1
  93. data/vendor/assets/javascripts/mode-c_cpp-uncompressed-noconflict.js +0 -919
  94. data/vendor/assets/javascripts/mode-clojure-noconflict.js +0 -1
  95. data/vendor/assets/javascripts/mode-clojure-uncompressed-noconflict.js +0 -422
  96. data/vendor/assets/javascripts/mode-clojure-uncompressed.js +0 -422
  97. data/vendor/assets/javascripts/mode-coffee-noconflict.js +0 -1
  98. data/vendor/assets/javascripts/mode-coffee-uncompressed-noconflict.js +0 -607
  99. data/vendor/assets/javascripts/mode-coffee-uncompressed.js +0 -607
  100. data/vendor/assets/javascripts/mode-coldfusion-noconflict.js +0 -1
  101. data/vendor/assets/javascripts/mode-coldfusion-uncompressed-noconflict.js +0 -2458
  102. data/vendor/assets/javascripts/mode-csharp-noconflict.js +0 -1
  103. data/vendor/assets/javascripts/mode-csharp-uncompressed-noconflict.js +0 -769
  104. data/vendor/assets/javascripts/mode-csharp-uncompressed.js +0 -769
  105. data/vendor/assets/javascripts/mode-css-noconflict.js +0 -1
  106. data/vendor/assets/javascripts/mode-css-uncompressed-noconflict.js +0 -641
  107. data/vendor/assets/javascripts/mode-css-uncompressed.js +0 -641
  108. data/vendor/assets/javascripts/mode-golang-noconflict.js +0 -1
  109. data/vendor/assets/javascripts/mode-golang-uncompressed-noconflict.js +0 -378
  110. data/vendor/assets/javascripts/mode-golang-uncompressed.js +0 -378
  111. data/vendor/assets/javascripts/mode-groovy-noconflict.js +0 -1
  112. data/vendor/assets/javascripts/mode-groovy-uncompressed-noconflict.js +0 -1393
  113. data/vendor/assets/javascripts/mode-groovy-uncompressed.js +0 -1393
  114. data/vendor/assets/javascripts/mode-haxe-noconflict.js +0 -1
  115. data/vendor/assets/javascripts/mode-haxe-uncompressed-noconflict.js +0 -769
  116. data/vendor/assets/javascripts/mode-html-noconflict.js +0 -1
  117. data/vendor/assets/javascripts/mode-html-uncompressed-noconflict.js +0 -2475
  118. data/vendor/assets/javascripts/mode-java-noconflict.js +0 -1
  119. data/vendor/assets/javascripts/mode-java-uncompressed-noconflict.js +0 -1395
  120. data/vendor/assets/javascripts/mode-java-uncompressed.js +0 -1395
  121. data/vendor/assets/javascripts/mode-javascript-noconflict.js +0 -1
  122. data/vendor/assets/javascripts/mode-javascript-uncompressed-noconflict.js +0 -1226
  123. data/vendor/assets/javascripts/mode-javascript-uncompressed.js +0 -1226
  124. data/vendor/assets/javascripts/mode-json-noconflict.js +0 -1
  125. data/vendor/assets/javascripts/mode-json-uncompressed-noconflict.js +0 -701
  126. data/vendor/assets/javascripts/mode-json-uncompressed.js +0 -701
  127. data/vendor/assets/javascripts/mode-latex-noconflict.js +0 -1
  128. data/vendor/assets/javascripts/mode-latex-uncompressed-noconflict.js +0 -95
  129. data/vendor/assets/javascripts/mode-latex-uncompressed.js +0 -95
  130. data/vendor/assets/javascripts/mode-less-noconflict.js +0 -1
  131. data/vendor/assets/javascripts/mode-less-uncompressed-noconflict.js +0 -655
  132. data/vendor/assets/javascripts/mode-less-uncompressed.js +0 -655
  133. data/vendor/assets/javascripts/mode-liquid-noconflict.js +0 -1
  134. data/vendor/assets/javascripts/mode-liquid-uncompressed-noconflict.js +0 -1353
  135. data/vendor/assets/javascripts/mode-liquid-uncompressed.js +0 -1353
  136. data/vendor/assets/javascripts/mode-lua-noconflict.js +0 -1
  137. data/vendor/assets/javascripts/mode-lua-uncompressed-noconflict.js +0 -523
  138. data/vendor/assets/javascripts/mode-lua-uncompressed.js +0 -523
  139. data/vendor/assets/javascripts/mode-markdown-noconflict.js +0 -1
  140. data/vendor/assets/javascripts/mode-markdown-uncompressed-noconflict.js +0 -2925
  141. data/vendor/assets/javascripts/mode-markdown-uncompressed.js +0 -2925
  142. data/vendor/assets/javascripts/mode-ocaml-noconflict.js +0 -1
  143. data/vendor/assets/javascripts/mode-ocaml-uncompressed-noconflict.js +0 -539
  144. data/vendor/assets/javascripts/mode-ocaml-uncompressed.js +0 -539
  145. data/vendor/assets/javascripts/mode-perl-noconflict.js +0 -1
  146. data/vendor/assets/javascripts/mode-perl-uncompressed-noconflict.js +0 -574
  147. data/vendor/assets/javascripts/mode-perl-uncompressed.js +0 -574
  148. data/vendor/assets/javascripts/mode-pgsql-noconflict.js +0 -1
  149. data/vendor/assets/javascripts/mode-pgsql-uncompressed-noconflict.js +0 -1104
  150. data/vendor/assets/javascripts/mode-pgsql-uncompressed.js +0 -1104
  151. data/vendor/assets/javascripts/mode-php-noconflict.js +0 -1
  152. data/vendor/assets/javascripts/mode-php-uncompressed-noconflict.js +0 -1885
  153. data/vendor/assets/javascripts/mode-php-uncompressed.js +0 -1885
  154. data/vendor/assets/javascripts/mode-powershell-noconflict.js +0 -1
  155. data/vendor/assets/javascripts/mode-powershell-uncompressed-noconflict.js +0 -710
  156. data/vendor/assets/javascripts/mode-powershell-uncompressed.js +0 -710
  157. data/vendor/assets/javascripts/mode-python-noconflict.js +0 -1
  158. data/vendor/assets/javascripts/mode-python-uncompressed-noconflict.js +0 -507
  159. data/vendor/assets/javascripts/mode-python-uncompressed.js +0 -507
  160. data/vendor/assets/javascripts/mode-ruby-noconflict.js +0 -1
  161. data/vendor/assets/javascripts/mode-ruby-uncompressed-noconflict.js +0 -391
  162. data/vendor/assets/javascripts/mode-ruby-uncompressed.js +0 -391
  163. data/vendor/assets/javascripts/mode-scad-noconflict.js +0 -1
  164. data/vendor/assets/javascripts/mode-scad-uncompressed-noconflict.js +0 -907
  165. data/vendor/assets/javascripts/mode-scad-uncompressed.js +0 -907
  166. data/vendor/assets/javascripts/mode-scala-noconflict.js +0 -1
  167. data/vendor/assets/javascripts/mode-scala-uncompressed-noconflict.js +0 -1395
  168. data/vendor/assets/javascripts/mode-scala-uncompressed.js +0 -1395
  169. data/vendor/assets/javascripts/mode-scss-noconflict.js +0 -1
  170. data/vendor/assets/javascripts/mode-scss-uncompressed-noconflict.js +0 -679
  171. data/vendor/assets/javascripts/mode-scss-uncompressed.js +0 -679
  172. data/vendor/assets/javascripts/mode-sh-noconflict.js +0 -1
  173. data/vendor/assets/javascripts/mode-sh-uncompressed-noconflict.js +0 -289
  174. data/vendor/assets/javascripts/mode-sh-uncompressed.js +0 -289
  175. data/vendor/assets/javascripts/mode-sql-noconflict.js +0 -1
  176. data/vendor/assets/javascripts/mode-sql-uncompressed-noconflict.js +0 -159
  177. data/vendor/assets/javascripts/mode-sql-uncompressed.js +0 -159
  178. data/vendor/assets/javascripts/mode-svg-noconflict.js +0 -1
  179. data/vendor/assets/javascripts/mode-svg-uncompressed-noconflict.js +0 -2137
  180. data/vendor/assets/javascripts/mode-svg-uncompressed.js +0 -2137
  181. data/vendor/assets/javascripts/mode-text-noconflict.js +0 -0
  182. data/vendor/assets/javascripts/mode-text-uncompressed-noconflict.js +0 -0
  183. data/vendor/assets/javascripts/mode-text-uncompressed.js +0 -0
  184. data/vendor/assets/javascripts/mode-textile-noconflict.js +0 -1
  185. data/vendor/assets/javascripts/mode-textile-uncompressed-noconflict.js +0 -254
  186. data/vendor/assets/javascripts/mode-textile-uncompressed.js +0 -254
  187. data/vendor/assets/javascripts/mode-xml-noconflict.js +0 -1
  188. data/vendor/assets/javascripts/mode-xml-uncompressed-noconflict.js +0 -1012
  189. data/vendor/assets/javascripts/mode-xml-uncompressed.js +0 -1012
  190. data/vendor/assets/javascripts/mode-xquery-noconflict.js +0 -1
  191. data/vendor/assets/javascripts/mode-xquery-uncompressed-noconflict.js +0 -540
  192. data/vendor/assets/javascripts/mode-xquery-uncompressed.js +0 -540
  193. data/vendor/assets/javascripts/theme-chrome-noconflict.js +0 -1
  194. data/vendor/assets/javascripts/theme-chrome-uncompressed-noconflict.js +0 -207
  195. data/vendor/assets/javascripts/theme-chrome-uncompressed.js +0 -207
  196. data/vendor/assets/javascripts/theme-clouds-noconflict.js +0 -1
  197. data/vendor/assets/javascripts/theme-clouds-uncompressed-noconflict.js +0 -160
  198. data/vendor/assets/javascripts/theme-clouds-uncompressed.js +0 -160
  199. data/vendor/assets/javascripts/theme-clouds_midnight-noconflict.js +0 -1
  200. data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed-noconflict.js +0 -161
  201. data/vendor/assets/javascripts/theme-clouds_midnight-uncompressed.js +0 -161
  202. data/vendor/assets/javascripts/theme-cobalt-noconflict.js +0 -1
  203. data/vendor/assets/javascripts/theme-cobalt-uncompressed-noconflict.js +0 -187
  204. data/vendor/assets/javascripts/theme-cobalt-uncompressed.js +0 -187
  205. data/vendor/assets/javascripts/theme-crimson_editor-noconflict.js +0 -1
  206. data/vendor/assets/javascripts/theme-crimson_editor-uncompressed-noconflict.js +0 -198
  207. data/vendor/assets/javascripts/theme-crimson_editor-uncompressed.js +0 -198
  208. data/vendor/assets/javascripts/theme-dawn-noconflict.js +0 -1
  209. data/vendor/assets/javascripts/theme-dawn-uncompressed-noconflict.js +0 -191
  210. data/vendor/assets/javascripts/theme-dawn-uncompressed.js +0 -191
  211. data/vendor/assets/javascripts/theme-dreamweaver-noconflict.js +0 -1
  212. data/vendor/assets/javascripts/theme-dreamweaver-uncompressed-noconflict.js +0 -227
  213. data/vendor/assets/javascripts/theme-dreamweaver-uncompressed.js +0 -227
  214. data/vendor/assets/javascripts/theme-eclipse-noconflict.js +0 -1
  215. data/vendor/assets/javascripts/theme-eclipse-uncompressed-noconflict.js +0 -147
  216. data/vendor/assets/javascripts/theme-eclipse-uncompressed.js +0 -147
  217. data/vendor/assets/javascripts/theme-idle_fingers-noconflict.js +0 -1
  218. data/vendor/assets/javascripts/theme-idle_fingers-uncompressed-noconflict.js +0 -179
  219. data/vendor/assets/javascripts/theme-idle_fingers-uncompressed.js +0 -179
  220. data/vendor/assets/javascripts/theme-kr_theme-noconflict.js +0 -1
  221. data/vendor/assets/javascripts/theme-kr_theme-uncompressed-noconflict.js +0 -182
  222. data/vendor/assets/javascripts/theme-kr_theme-uncompressed.js +0 -182
  223. data/vendor/assets/javascripts/theme-merbivore-noconflict.js +0 -1
  224. data/vendor/assets/javascripts/theme-merbivore-uncompressed-noconflict.js +0 -182
  225. data/vendor/assets/javascripts/theme-merbivore-uncompressed.js +0 -182
  226. data/vendor/assets/javascripts/theme-merbivore_soft-noconflict.js +0 -1
  227. data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed-noconflict.js +0 -188
  228. data/vendor/assets/javascripts/theme-merbivore_soft-uncompressed.js +0 -188
  229. data/vendor/assets/javascripts/theme-mono_industrial-noconflict.js +0 -1
  230. data/vendor/assets/javascripts/theme-mono_industrial-uncompressed-noconflict.js +0 -190
  231. data/vendor/assets/javascripts/theme-mono_industrial-uncompressed.js +0 -190
  232. data/vendor/assets/javascripts/theme-monokai-noconflict.js +0 -1
  233. data/vendor/assets/javascripts/theme-monokai-uncompressed-noconflict.js +0 -191
  234. data/vendor/assets/javascripts/theme-monokai-uncompressed.js +0 -191
  235. data/vendor/assets/javascripts/theme-pastel_on_dark-noconflict.js +0 -1
  236. data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed-noconflict.js +0 -192
  237. data/vendor/assets/javascripts/theme-pastel_on_dark-uncompressed.js +0 -192
  238. data/vendor/assets/javascripts/theme-solarized_dark-noconflict.js +0 -1
  239. data/vendor/assets/javascripts/theme-solarized_dark-uncompressed-noconflict.js +0 -176
  240. data/vendor/assets/javascripts/theme-solarized_dark-uncompressed.js +0 -176
  241. data/vendor/assets/javascripts/theme-solarized_light-noconflict.js +0 -1
  242. data/vendor/assets/javascripts/theme-solarized_light-uncompressed-noconflict.js +0 -172
  243. data/vendor/assets/javascripts/theme-solarized_light-uncompressed.js +0 -172
  244. data/vendor/assets/javascripts/theme-textmate-noconflict.js +0 -0
  245. data/vendor/assets/javascripts/theme-textmate-uncompressed-noconflict.js +0 -0
  246. data/vendor/assets/javascripts/theme-textmate-uncompressed.js +0 -0
  247. data/vendor/assets/javascripts/theme-tomorrow-noconflict.js +0 -1
  248. data/vendor/assets/javascripts/theme-tomorrow-uncompressed-noconflict.js +0 -206
  249. data/vendor/assets/javascripts/theme-tomorrow-uncompressed.js +0 -206
  250. data/vendor/assets/javascripts/theme-tomorrow_night-noconflict.js +0 -1
  251. data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed-noconflict.js +0 -206
  252. data/vendor/assets/javascripts/theme-tomorrow_night-uncompressed.js +0 -206
  253. data/vendor/assets/javascripts/theme-tomorrow_night_blue-noconflict.js +0 -1
  254. data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed-noconflict.js +0 -209
  255. data/vendor/assets/javascripts/theme-tomorrow_night_blue-uncompressed.js +0 -209
  256. data/vendor/assets/javascripts/theme-tomorrow_night_bright-noconflict.js +0 -1
  257. data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed-noconflict.js +0 -206
  258. data/vendor/assets/javascripts/theme-tomorrow_night_bright-uncompressed.js +0 -206
  259. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-noconflict.js +0 -1
  260. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed-noconflict.js +0 -202
  261. data/vendor/assets/javascripts/theme-tomorrow_night_eighties-uncompressed.js +0 -202
  262. data/vendor/assets/javascripts/theme-twilight-noconflict.js +0 -1
  263. data/vendor/assets/javascripts/theme-twilight-uncompressed-noconflict.js +0 -204
  264. data/vendor/assets/javascripts/theme-twilight-uncompressed.js +0 -204
  265. data/vendor/assets/javascripts/theme-vibrant_ink-noconflict.js +0 -1
  266. data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed-noconflict.js +0 -183
  267. data/vendor/assets/javascripts/theme-vibrant_ink-uncompressed.js +0 -183
@@ -35,8 +35,8 @@ var require = function(parentId, id) {
35
35
  var module = require.modules[id];
36
36
  if (module) {
37
37
  if (!module.initialized) {
38
- module.exports = module.factory().exports;
39
38
  module.initialized = true;
39
+ module.exports = module.factory().exports;
40
40
  }
41
41
  return module.exports;
42
42
  }
@@ -56,6 +56,10 @@ require.tlns = {};
56
56
  var define = function(id, deps, factory) {
57
57
  if (arguments.length == 2) {
58
58
  factory = deps;
59
+ if (typeof id != "string") {
60
+ deps = id;
61
+ id = require.id;
62
+ }
59
63
  } else if (arguments.length == 1) {
60
64
  factory = id;
61
65
  id = require.id;
@@ -149,25 +153,15 @@ onmessage = function(e) {
149
153
  */
150
154
 
151
155
  define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) {
152
- "use strict";
156
+
153
157
 
154
158
  require("./regexp");
155
159
  require("./es5-shim");
156
160
 
157
161
  });
158
- /*
159
- * Based on code from:
160
- *
161
- * XRegExp 1.5.0
162
- * (c) 2007-2010 Steven Levithan
163
- * MIT License
164
- * <http://xregexp.com>
165
- * Provides an augmented, extensible, cross-browser implementation of regular expressions,
166
- * including support for additional syntax, flags, and methods
167
- */
168
162
 
169
163
  define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) {
170
- "use strict";
164
+
171
165
 
172
166
  //---------------------------------
173
167
  // Private variables
@@ -187,6 +181,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex
187
181
  return !x.lastIndex;
188
182
  }();
189
183
 
184
+ if (compliantLastIndexIncrement && compliantExecNpcg)
185
+ return;
186
+
190
187
  //---------------------------------
191
188
  // Overriden native methods
192
189
  //---------------------------------
@@ -252,7 +249,7 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex
252
249
  (regex.multiline ? "m" : "") +
253
250
  (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3
254
251
  (regex.sticky ? "y" : "");
255
- };
252
+ }
256
253
 
257
254
  function indexOf (array, item, from) {
258
255
  if (Array.prototype.indexOf) // Use the native array method if available
@@ -262,30 +259,9 @@ define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, ex
262
259
  return i;
263
260
  }
264
261
  return -1;
265
- };
262
+ }
266
263
 
267
264
  });
268
- // vim: ts=4 sts=4 sw=4 expandtab
269
- // -- kriskowal Kris Kowal Copyright (C) 2009-2011 MIT License
270
- // -- tlrobinson Tom Robinson Copyright (C) 2009-2010 MIT License (Narwhal Project)
271
- // -- dantman Daniel Friesen Copyright (C) 2010 XXX TODO License or CLA
272
- // -- fschaefer Florian Schäfer Copyright (C) 2010 MIT License
273
- // -- Gozala Irakli Gozalishvili Copyright (C) 2010 MIT License
274
- // -- kitcambridge Kit Cambridge Copyright (C) 2011 MIT License
275
- // -- kossnocorp Sasha Koss XXX TODO License or CLA
276
- // -- bryanforbes Bryan Forbes XXX TODO License or CLA
277
- // -- killdream Quildreen Motta Copyright (C) 2011 MIT Licence
278
- // -- michaelficarra Michael Ficarra Copyright (C) 2011 3-clause BSD License
279
- // -- sharkbrainguy Gerard Paapu Copyright (C) 2011 MIT License
280
- // -- bbqsrc Brendan Molloy (C) 2011 Creative Commons Zero (public domain)
281
- // -- iwyg XXX TODO License or CLA
282
- // -- DomenicDenicola Domenic Denicola Copyright (C) 2011 MIT License
283
- // -- xavierm02 Montillet Xavier XXX TODO License or CLA
284
- // -- Raynos Raynos XXX TODO License or CLA
285
- // -- samsonjs Sami Samhuri Copyright (C) 2010 MIT License
286
- // -- rwldrn Rick Waldron Copyright (C) 2011 MIT License
287
- // -- lexer Alexey Zakharov XXX TODO License or CLA
288
-
289
265
  /*!
290
266
  Copyright (c) 2009, 280 North Inc. http://280north.com/
291
267
  MIT License. http://github.com/280north/narwhal/blob/master/README.md
@@ -1324,48 +1300,9 @@ var prepareString = "a"[0] != "a",
1324
1300
  return Object(o);
1325
1301
  };
1326
1302
  });
1327
- /* vim:ts=4:sts=4:sw=4:
1328
- * ***** BEGIN LICENSE BLOCK *****
1329
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1330
- *
1331
- * The contents of this file are subject to the Mozilla Public License Version
1332
- * 1.1 (the "License"); you may not use this file except in compliance with
1333
- * the License. You may obtain a copy of the License at
1334
- * http://www.mozilla.org/MPL/
1335
- *
1336
- * Software distributed under the License is distributed on an "AS IS" basis,
1337
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1338
- * for the specific language governing rights and limitations under the
1339
- * License.
1340
- *
1341
- * The Original Code is Ajax.org Code Editor (ACE).
1342
- *
1343
- * The Initial Developer of the Original Code is
1344
- * Ajax.org B.V.
1345
- * Portions created by the Initial Developer are Copyright (C) 2010
1346
- * the Initial Developer. All Rights Reserved.
1347
- *
1348
- * Contributor(s):
1349
- * Fabian Jakobs <fabian AT ajax DOT org>
1350
- * Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com)
1351
- * Mike de Boer <mike AT ajax DOT org>
1352
- *
1353
- * Alternatively, the contents of this file may be used under the terms of
1354
- * either the GNU General Public License Version 2 or later (the "GPL"), or
1355
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1356
- * in which case the provisions of the GPL or the LGPL are applicable instead
1357
- * of those above. If you wish to allow use of your version of this file only
1358
- * under the terms of either the GPL or the LGPL, and not to allow others to
1359
- * use your version of this file under the terms of the MPL, indicate your
1360
- * decision by deleting the provisions above and replace them with the notice
1361
- * and other provisions required by the GPL or the LGPL. If you do not delete
1362
- * the provisions above, a recipient may use your version of this file under
1363
- * the terms of any one of the MPL, the GPL or the LGPL.
1364
- *
1365
- * ***** END LICENSE BLOCK ***** */
1366
1303
 
1367
1304
  define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
1368
- "use strict";
1305
+
1369
1306
 
1370
1307
  var EventEmitter = {};
1371
1308
 
@@ -1380,7 +1317,8 @@ EventEmitter._dispatchEvent = function(eventName, e) {
1380
1317
  return;
1381
1318
 
1382
1319
  e = e || {};
1383
- e.type = eventName;
1320
+ if (!e.type)
1321
+ e.type = eventName;
1384
1322
 
1385
1323
  if (!e.stopPropagation) {
1386
1324
  e.stopPropagation = function() {
@@ -1419,7 +1357,7 @@ EventEmitter.addEventListener = function(eventName, callback) {
1419
1357
 
1420
1358
  var listeners = this._eventRegistry[eventName];
1421
1359
  if (!listeners)
1422
- var listeners = this._eventRegistry[eventName] = [];
1360
+ listeners = this._eventRegistry[eventName] = [];
1423
1361
 
1424
1362
  if (listeners.indexOf(callback) == -1)
1425
1363
  listeners.push(callback);
@@ -1445,45 +1383,9 @@ EventEmitter.removeAllListeners = function(eventName) {
1445
1383
  exports.EventEmitter = EventEmitter;
1446
1384
 
1447
1385
  });
1448
- /* ***** BEGIN LICENSE BLOCK *****
1449
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1450
- *
1451
- * The contents of this file are subject to the Mozilla Public License Version
1452
- * 1.1 (the "License"); you may not use this file except in compliance with
1453
- * the License. You may obtain a copy of the License at
1454
- * http://www.mozilla.org/MPL/
1455
- *
1456
- * Software distributed under the License is distributed on an "AS IS" basis,
1457
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1458
- * for the specific language governing rights and limitations under the
1459
- * License.
1460
- *
1461
- * The Original Code is Ajax.org Code Editor (ACE).
1462
- *
1463
- * The Initial Developer of the Original Code is
1464
- * Ajax.org B.V.
1465
- * Portions created by the Initial Developer are Copyright (C) 2010
1466
- * the Initial Developer. All Rights Reserved.
1467
- *
1468
- * Contributor(s):
1469
- * Fabian Jakobs <fabian AT ajax DOT org>
1470
- *
1471
- * Alternatively, the contents of this file may be used under the terms of
1472
- * either the GNU General Public License Version 2 or later (the "GPL"), or
1473
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1474
- * in which case the provisions of the GPL or the LGPL are applicable instead
1475
- * of those above. If you wish to allow use of your version of this file only
1476
- * under the terms of either the GPL or the LGPL, and not to allow others to
1477
- * use your version of this file under the terms of the MPL, indicate your
1478
- * decision by deleting the provisions above and replace them with the notice
1479
- * and other provisions required by the GPL or the LGPL. If you do not delete
1480
- * the provisions above, a recipient may use your version of this file under
1481
- * the terms of any one of the MPL, the GPL or the LGPL.
1482
- *
1483
- * ***** END LICENSE BLOCK ***** */
1484
1386
 
1485
1387
  define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
1486
- "use strict";
1388
+
1487
1389
 
1488
1390
  exports.inherits = (function() {
1489
1391
  var tempCtor = function() {};
@@ -1506,45 +1408,9 @@ exports.implement = function(proto, mixin) {
1506
1408
  };
1507
1409
 
1508
1410
  });
1509
- /* ***** BEGIN LICENSE BLOCK *****
1510
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1511
- *
1512
- * The contents of this file are subject to the Mozilla Public License Version
1513
- * 1.1 (the "License"); you may not use this file except in compliance with
1514
- * the License. You may obtain a copy of the License at
1515
- * http://www.mozilla.org/MPL/
1516
- *
1517
- * Software distributed under the License is distributed on an "AS IS" basis,
1518
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1519
- * for the specific language governing rights and limitations under the
1520
- * License.
1521
- *
1522
- * The Original Code is Ajax.org Code Editor (ACE).
1523
- *
1524
- * The Initial Developer of the Original Code is
1525
- * Ajax.org B.V.
1526
- * Portions created by the Initial Developer are Copyright (C) 2010
1527
- * the Initial Developer. All Rights Reserved.
1528
- *
1529
- * Contributor(s):
1530
- * Fabian Jakobs <fabian AT ajax DOT org>
1531
- *
1532
- * Alternatively, the contents of this file may be used under the terms of
1533
- * either the GNU General Public License Version 2 or later (the "GPL"), or
1534
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1535
- * in which case the provisions of the GPL or the LGPL are applicable instead
1536
- * of those above. If you wish to allow use of your version of this file only
1537
- * under the terms of either the GPL or the LGPL, and not to allow others to
1538
- * use your version of this file under the terms of the MPL, indicate your
1539
- * decision by deleting the provisions above and replace them with the notice
1540
- * and other provisions required by the GPL or the LGPL. If you do not delete
1541
- * the provisions above, a recipient may use your version of this file under
1542
- * the terms of any one of the MPL, the GPL or the LGPL.
1543
- *
1544
- * ***** END LICENSE BLOCK ***** */
1545
1411
 
1546
1412
  define('ace/mode/css_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/css/csslint'], function(require, exports, module) {
1547
- "use strict";
1413
+
1548
1414
 
1549
1415
  var oop = require("../lib/oop");
1550
1416
  var Mirror = require("../worker/mirror").Mirror;
@@ -1573,7 +1439,7 @@ oop.inherits(Worker, Mirror);
1573
1439
 
1574
1440
  });
1575
1441
  define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
1576
- "use strict";
1442
+
1577
1443
 
1578
1444
  var Document = require("../document").Document;
1579
1445
  var lang = require("../lib/lang");
@@ -1615,59 +1481,15 @@ var Mirror = exports.Mirror = function(sender) {
1615
1481
  }).call(Mirror.prototype);
1616
1482
 
1617
1483
  });
1618
- /* ***** BEGIN LICENSE BLOCK *****
1619
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
1620
- *
1621
- * The contents of this file are subject to the Mozilla Public License Version
1622
- * 1.1 (the "License"); you may not use this file except in compliance with
1623
- * the License. You may obtain a copy of the License at
1624
- * http://www.mozilla.org/MPL/
1625
- *
1626
- * Software distributed under the License is distributed on an "AS IS" basis,
1627
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
1628
- * for the specific language governing rights and limitations under the
1629
- * License.
1630
- *
1631
- * The Original Code is Ajax.org Code Editor (ACE).
1632
- *
1633
- * The Initial Developer of the Original Code is
1634
- * Ajax.org B.V.
1635
- * Portions created by the Initial Developer are Copyright (C) 2010
1636
- * the Initial Developer. All Rights Reserved.
1637
- *
1638
- * Contributor(s):
1639
- * Fabian Jakobs <fabian AT ajax DOT org>
1640
- *
1641
- * Alternatively, the contents of this file may be used under the terms of
1642
- * either the GNU General Public License Version 2 or later (the "GPL"), or
1643
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
1644
- * in which case the provisions of the GPL or the LGPL are applicable instead
1645
- * of those above. If you wish to allow use of your version of this file only
1646
- * under the terms of either the GPL or the LGPL, and not to allow others to
1647
- * use your version of this file under the terms of the MPL, indicate your
1648
- * decision by deleting the provisions above and replace them with the notice
1649
- * and other provisions required by the GPL or the LGPL. If you do not delete
1650
- * the provisions above, a recipient may use your version of this file under
1651
- * the terms of any one of the MPL, the GPL or the LGPL.
1652
- *
1653
- * ***** END LICENSE BLOCK ***** */
1654
1484
 
1655
1485
  define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
1656
- "use strict";
1486
+
1657
1487
 
1658
1488
  var oop = require("./lib/oop");
1659
1489
  var EventEmitter = require("./lib/event_emitter").EventEmitter;
1660
1490
  var Range = require("./range").Range;
1661
1491
  var Anchor = require("./anchor").Anchor;
1662
1492
 
1663
- /**
1664
- * class Document
1665
- *
1666
- * Contains the text of the document. Documents are controlled by a single [[EditSession `EditSession`]]. At its core, `Document`s are just an array of strings, with each row in the document matching up to the array index.
1667
- *
1668
- *
1669
- **/
1670
-
1671
1493
  /**
1672
1494
  * new Document([text])
1673
1495
  * - text (String | Array): The starting text
@@ -1675,16 +1497,16 @@ var Anchor = require("./anchor").Anchor;
1675
1497
  * Creates a new `Document`. If `text` is included, the `Document` contains those strings; otherwise, it's empty.
1676
1498
  *
1677
1499
  **/
1500
+
1678
1501
  var Document = function(text) {
1679
1502
  this.$lines = [];
1680
1503
 
1681
- if (Array.isArray(text)) {
1682
- this.insertLines(0, text);
1683
- }
1684
1504
  // There has to be one line at least in the document. If you pass an empty
1685
1505
  // string to the insert function, nothing will happen. Workaround.
1686
- else if (text.length == 0) {
1506
+ if (text.length == 0) {
1687
1507
  this.$lines = [""];
1508
+ } else if (Array.isArray(text)) {
1509
+ this.insertLines(0, text);
1688
1510
  } else {
1689
1511
  this.insert({row: 0, column:0}, text);
1690
1512
  }
@@ -1693,49 +1515,18 @@ var Document = function(text) {
1693
1515
  (function() {
1694
1516
 
1695
1517
  oop.implement(this, EventEmitter);
1696
-
1697
- /**
1698
- * Document.setValue(text) -> Void
1699
- * - text (String): The text to use
1700
- *
1701
- * Replaces all the lines in the current `Document` with the value of `text`.
1702
- **/
1703
1518
  this.setValue = function(text) {
1704
1519
  var len = this.getLength();
1705
1520
  this.remove(new Range(0, 0, len, this.getLine(len-1).length));
1706
1521
  this.insert({row: 0, column:0}, text);
1707
1522
  };
1708
-
1709
- /**
1710
- * Document.getValue() -> String
1711
- *
1712
- * Returns all the lines in the document as a single string, split by the new line character.
1713
- **/
1714
1523
  this.getValue = function() {
1715
1524
  return this.getAllLines().join(this.getNewLineCharacter());
1716
1525
  };
1717
-
1718
- /**
1719
- * Document.createAnchor(row, column) -> Anchor
1720
- * - row (Number): The row number to use
1721
- * - column (Number): The column number to use
1722
- *
1723
- * Creates a new `Anchor` to define a floating point in the document.
1724
- **/
1725
1526
  this.createAnchor = function(row, column) {
1726
1527
  return new Anchor(this, row, column);
1727
1528
  };
1728
1529
 
1729
- /** internal, hide
1730
- * Document.$split(text) -> [String]
1731
- * - text (String): The text to work with
1732
- * + ([String]): A String array, with each index containing a piece of the original `text` string.
1733
- *
1734
- * Splits a string of text on any newline (`\n`) or carriage-return ('\r') characters.
1735
- *
1736
- *
1737
- **/
1738
-
1739
1530
  // check for IE split bug
1740
1531
  if ("aaa".split(/a/).length == 0)
1741
1532
  this.$split = function(text) {
@@ -1745,13 +1536,6 @@ var Document = function(text) {
1745
1536
  this.$split = function(text) {
1746
1537
  return text.split(/\r\n|\r|\n/);
1747
1538
  };
1748
-
1749
-
1750
- /** internal, hide
1751
- * Document.$detectNewLine(text) -> Void
1752
- *
1753
- *
1754
- **/
1755
1539
  this.$detectNewLine = function(text) {
1756
1540
  var match = text.match(/^.*?(\r\n|\r|\n)/m);
1757
1541
  if (match) {
@@ -1760,18 +1544,6 @@ var Document = function(text) {
1760
1544
  this.$autoNewLine = "\n";
1761
1545
  }
1762
1546
  };
1763
-
1764
- /**
1765
- * Document.getNewLineCharacter() -> String
1766
- * + (String): If `newLineMode == windows`, `\r\n` is returned.<br/>
1767
- * If `newLineMode == unix`, `\n` is returned.<br/>
1768
- * If `newLineMode == auto`, the value of `autoNewLine` is returned.
1769
- *
1770
- * Returns the newline character that's being used, depending on the value of `newLineMode`.
1771
- *
1772
- *
1773
- *
1774
- **/
1775
1547
  this.getNewLineCharacter = function() {
1776
1548
  switch (this.$newLineMode) {
1777
1549
  case "windows":
@@ -1787,87 +1559,30 @@ var Document = function(text) {
1787
1559
 
1788
1560
  this.$autoNewLine = "\n";
1789
1561
  this.$newLineMode = "auto";
1790
- /**
1791
- * Document.setNewLineMode(newLineMode) -> Void
1792
- * - newLineMode(String): [The newline mode to use; can be either `windows`, `unix`, or `auto`]{: #Document.setNewLineMode.param}
1793
- *
1794
- * [Sets the new line mode.]{: #Document.setNewLineMode.desc}
1795
- **/
1796
1562
  this.setNewLineMode = function(newLineMode) {
1797
1563
  if (this.$newLineMode === newLineMode)
1798
1564
  return;
1799
1565
 
1800
1566
  this.$newLineMode = newLineMode;
1801
1567
  };
1802
-
1803
- /**
1804
- * Document.getNewLineMode() -> String
1805
- *
1806
- * [Returns the type of newlines being used; either `windows`, `unix`, or `auto`]{: #Document.getNewLineMode}
1807
- *
1808
- **/
1809
1568
  this.getNewLineMode = function() {
1810
1569
  return this.$newLineMode;
1811
1570
  };
1812
-
1813
- /**
1814
- * Document.isNewLine(text) -> Boolean
1815
- * - text (String): The text to check
1816
- *
1817
- * Returns `true` if `text` is a newline character (either `\r\n`, `\r`, or `\n`).
1818
- *
1819
- **/
1820
1571
  this.isNewLine = function(text) {
1821
1572
  return (text == "\r\n" || text == "\r" || text == "\n");
1822
1573
  };
1823
-
1824
- /**
1825
- * Document.getLine(row) -> String
1826
- * - row (Number): The row index to retrieve
1827
- *
1828
- * Returns a verbatim copy of the given line as it is in the document
1829
- *
1830
- **/
1831
1574
  this.getLine = function(row) {
1832
1575
  return this.$lines[row] || "";
1833
1576
  };
1834
-
1835
- /**
1836
- * Document.getLines(firstRow, lastRow) -> [String]
1837
- * - firstRow (Number): The first row index to retrieve
1838
- * - lastRow (Number): The final row index to retrieve
1839
- *
1840
- * Returns an array of strings of the rows between `firstRow` and `lastRow`. This function is inclusive of `lastRow`.
1841
- *
1842
- **/
1843
1577
  this.getLines = function(firstRow, lastRow) {
1844
1578
  return this.$lines.slice(firstRow, lastRow + 1);
1845
1579
  };
1846
-
1847
- /**
1848
- * Document.getAllLines() -> [String]
1849
- *
1850
- * Returns all lines in the document as string array. Warning: The caller should not modify this array!
1851
- **/
1852
1580
  this.getAllLines = function() {
1853
1581
  return this.getLines(0, this.getLength());
1854
1582
  };
1855
-
1856
- /**
1857
- * Document.getLength() -> Number
1858
- *
1859
- * Returns the number of rows in the document.
1860
- **/
1861
1583
  this.getLength = function() {
1862
1584
  return this.$lines.length;
1863
1585
  };
1864
-
1865
- /**
1866
- * Document.getTextRange(range) -> String
1867
- * - range (Range): The range to work with
1868
- *
1869
- * [Given a range within the document, this function returns all the text within that range as a single string.]{: #Document.getTextRange.desc}
1870
- **/
1871
1586
  this.getTextRange = function(range) {
1872
1587
  if (range.start.row == range.end.row) {
1873
1588
  return this.$lines[range.start.row].substring(range.start.column,
@@ -1880,12 +1595,6 @@ var Document = function(text) {
1880
1595
  return lines.join(this.getNewLineCharacter());
1881
1596
  }
1882
1597
  };
1883
-
1884
- /** internal, hide
1885
- * Document.$clipPosition(position) -> Number
1886
- *
1887
- *
1888
- **/
1889
1598
  this.$clipPosition = function(position) {
1890
1599
  var length = this.getLength();
1891
1600
  if (position.row >= length) {
@@ -1894,16 +1603,6 @@ var Document = function(text) {
1894
1603
  }
1895
1604
  return position;
1896
1605
  };
1897
-
1898
- /**
1899
- * Document.insert(position, text) -> Number
1900
- * - position (Number): The position to start inserting at
1901
- * - text (String): A chunk of text to insert
1902
- * + (Number): The position of the last line of `text`. If the length of `text` is 0, this function simply returns `position`.
1903
- * Inserts a block of `text` and the indicated `position`.
1904
- *
1905
- *
1906
- **/
1907
1606
  this.insert = function(position, text) {
1908
1607
  if (!text || text.length === 0)
1909
1608
  return position;
@@ -1926,24 +1625,40 @@ var Document = function(text) {
1926
1625
  }
1927
1626
  return position;
1928
1627
  };
1929
-
1930
1628
  /**
1931
- * Document.insertLines(row, lines) -> Object
1932
- * - row (Number): The index of the row to insert at
1933
- * - lines (Array): An array of strings
1934
- * + (Object): Returns an object containing the final row and column, like this:<br/>
1935
- * ```{row: endRow, column: 0}```<br/>
1936
- * If `lines` is empty, this function returns an object containing the current row, and column, like this:<br/>
1937
- * ```{row: row, column: 0}```
1938
- *
1939
- * Inserts the elements in `lines` into the document, starting at the row index given by `row`. This method also triggers the `'change'` event.
1940
- *
1941
- *
1942
- **/
1629
+ * Document@change(e)
1630
+ * - e (Object): Contains at least one property called `"action"`. `"action"` indicates the action that triggered the change. Each action also has a set of additional properties.
1631
+ *
1632
+ * Fires whenever the document changes.
1633
+ *
1634
+ * Several methods trigger different `"change"` events. Below is a list of each action type, followed by each property that's also available:
1635
+ *
1636
+ * * `"insertLines"` (emitted by [[Document.insertLines]])
1637
+ * * `range`: the [[Range]] of the change within the document
1638
+ * * `lines`: the lines in the document that are changing
1639
+ * * `"insertText"` (emitted by [[Document.insertNewLine]])
1640
+ * * `range`: the [[Range]] of the change within the document
1641
+ * * `text`: the text that's being added
1642
+ * * `"removeLines"` (emitted by [[Document.insertLines]])
1643
+ * * `range`: the [[Range]] of the change within the document
1644
+ * * `lines`: the lines in the document that were removed
1645
+ * * `nl`: the new line character (as defined by [[Document.getNewLineCharacter]])
1646
+ * * `"removeText"` (emitted by [[Document.removeInLine]] and [[Document.removeNewLine]])
1647
+ * * `range`: the [[Range]] of the change within the document
1648
+ * * `text`: the text that's being removed
1649
+ *
1650
+ **/
1943
1651
  this.insertLines = function(row, lines) {
1944
1652
  if (lines.length == 0)
1945
1653
  return {row: row, column: 0};
1946
1654
 
1655
+ // apply doesn't work for big arrays (smallest threshold is on safari 0xFFFF)
1656
+ // to circumvent that we have to break huge inserts into smaller chunks here
1657
+ if (lines.length > 0xFFFF) {
1658
+ var end = this.insertLines(row, lines.slice(0xFFFF));
1659
+ lines = lines.slice(0, 0xFFFF);
1660
+ }
1661
+
1947
1662
  var args = [row, 0];
1948
1663
  args.push.apply(args, lines);
1949
1664
  this.$lines.splice.apply(this.$lines, args);
@@ -1955,20 +1670,8 @@ var Document = function(text) {
1955
1670
  lines: lines
1956
1671
  };
1957
1672
  this._emit("change", { data: delta });
1958
- return range.end;
1673
+ return end || range.end;
1959
1674
  };
1960
-
1961
- /**
1962
- * Document.insertNewLine(position) -> Object
1963
- * - position (String): The position to insert at
1964
- * + (Object): Returns an object containing the final row and column, like this:<br/>
1965
- * ```{row: endRow, column: 0}```
1966
- *
1967
- * Inserts a new line into the document at the current row's `position`. This method also triggers the `'change'` event.
1968
- *
1969
- *
1970
- *
1971
- **/
1972
1675
  this.insertNewLine = function(position) {
1973
1676
  position = this.$clipPosition(position);
1974
1677
  var line = this.$lines[position.row] || "";
@@ -1990,20 +1693,6 @@ var Document = function(text) {
1990
1693
 
1991
1694
  return end;
1992
1695
  };
1993
-
1994
- /**
1995
- * Document.insertInLine(position, text) -> Object | Number
1996
- * - position (Number): The position to insert at
1997
- * - text (String): A chunk of text
1998
- * + (Object): Returns an object containing the final row and column, like this:<br/>
1999
- * ```{row: endRow, column: 0}```
2000
- * + (Number): If `text` is empty, this function returns the value of `position`
2001
- *
2002
- * Inserts `text` into the `position` at the current row. This method also triggers the `'change'` event.
2003
- *
2004
- *
2005
- *
2006
- **/
2007
1696
  this.insertInLine = function(position, text) {
2008
1697
  if (text.length == 0)
2009
1698
  return position;
@@ -2027,16 +1716,6 @@ var Document = function(text) {
2027
1716
 
2028
1717
  return end;
2029
1718
  };
2030
-
2031
- /**
2032
- * Document.remove(range) -> Object
2033
- * - range (Range): A specified Range to remove
2034
- * + (Object): Returns the new `start` property of the range, which contains `startRow` and `startColumn`. If `range` is empty, this function returns the unmodified value of `range.start`.
2035
- *
2036
- * Removes the `range` from the document.
2037
- *
2038
- *
2039
- **/
2040
1719
  this.remove = function(range) {
2041
1720
  // clip to document
2042
1721
  range.start = this.$clipPosition(range.start);
@@ -2068,18 +1747,6 @@ var Document = function(text) {
2068
1747
  }
2069
1748
  return range.start;
2070
1749
  };
2071
-
2072
- /**
2073
- * Document.removeInLine(row, startColumn, endColumn) -> Object
2074
- * - row (Number): The row to remove from
2075
- * - startColumn (Number): The column to start removing at
2076
- * - endColumn (Number): The column to stop removing at
2077
- * + (Object): Returns an object containing `startRow` and `startColumn`, indicating the new row and column values.<br/>If `startColumn` is equal to `endColumn`, this function returns nothing.
2078
- *
2079
- * Removes the specified columns from the `row`. This method also triggers the `'change'` event.
2080
- *
2081
- *
2082
- **/
2083
1750
  this.removeInLine = function(row, startColumn, endColumn) {
2084
1751
  if (startColumn == endColumn)
2085
1752
  return;
@@ -2098,17 +1765,6 @@ var Document = function(text) {
2098
1765
  this._emit("change", { data: delta });
2099
1766
  return range.start;
2100
1767
  };
2101
-
2102
- /**
2103
- * Document.removeLines(firstRow, lastRow) -> [String]
2104
- * - firstRow (Number): The first row to be removed
2105
- * - lastRow (Number): The last row to be removed
2106
- * + ([String]): Returns all the removed lines.
2107
- *
2108
- * Removes a range of full lines. This method also triggers the `'change'` event.
2109
- *
2110
- *
2111
- **/
2112
1768
  this.removeLines = function(firstRow, lastRow) {
2113
1769
  var range = new Range(firstRow, 0, lastRow + 1, 0);
2114
1770
  var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
@@ -2122,14 +1778,6 @@ var Document = function(text) {
2122
1778
  this._emit("change", { data: delta });
2123
1779
  return removed;
2124
1780
  };
2125
-
2126
- /**
2127
- * Document.removeNewLine(row) -> Void
2128
- * - row (Number): The row to check
2129
- *
2130
- * Removes the new line between `row` and the row immediately following it. This method also triggers the `'change'` event.
2131
- *
2132
- **/
2133
1781
  this.removeNewLine = function(row) {
2134
1782
  var firstLine = this.getLine(row);
2135
1783
  var secondLine = this.getLine(row+1);
@@ -2146,19 +1794,6 @@ var Document = function(text) {
2146
1794
  };
2147
1795
  this._emit("change", { data: delta });
2148
1796
  };
2149
-
2150
- /**
2151
- * Document.replace(range, text) -> Object
2152
- * - range (Range): A specified Range to replace
2153
- * - text (String): The new text to use as a replacement
2154
- * + (Object): Returns an object containing the final row and column, like this:
2155
- * {row: endRow, column: 0}
2156
- * If the text and range are empty, this function returns an object containing the current `range.start` value.
2157
- * If the text is the exact same as what currently exists, this function returns an object containing the current `range.end` value.
2158
- *
2159
- * Replaces a range in the document with the new `text`.
2160
- *
2161
- **/
2162
1797
  this.replace = function(range, text) {
2163
1798
  if (text.length == 0 && range.isEmpty())
2164
1799
  return range.start;
@@ -2178,12 +1813,6 @@ var Document = function(text) {
2178
1813
 
2179
1814
  return end;
2180
1815
  };
2181
-
2182
- /**
2183
- * Document.applyDeltas(deltas) -> Void
2184
- *
2185
- * Applies all the changes previously accumulated. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
2186
- **/
2187
1816
  this.applyDeltas = function(deltas) {
2188
1817
  for (var i=0; i<deltas.length; i++) {
2189
1818
  var delta = deltas[i];
@@ -2199,12 +1828,6 @@ var Document = function(text) {
2199
1828
  this.remove(range);
2200
1829
  }
2201
1830
  };
2202
-
2203
- /**
2204
- * Document.revertDeltas(deltas) -> Void
2205
- *
2206
- * Reverts any changes previously applied. These can be either `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
2207
- **/
2208
1831
  this.revertDeltas = function(deltas) {
2209
1832
  for (var i=deltas.length-1; i>=0; i--) {
2210
1833
  var delta = deltas[i];
@@ -2226,45 +1849,9 @@ var Document = function(text) {
2226
1849
 
2227
1850
  exports.Document = Document;
2228
1851
  });
2229
- /* ***** BEGIN LICENSE BLOCK *****
2230
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2231
- *
2232
- * The contents of this file are subject to the Mozilla Public License Version
2233
- * 1.1 (the "License"); you may not use this file except in compliance with
2234
- * the License. You may obtain a copy of the License at
2235
- * http://www.mozilla.org/MPL/
2236
- *
2237
- * Software distributed under the License is distributed on an "AS IS" basis,
2238
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2239
- * for the specific language governing rights and limitations under the
2240
- * License.
2241
- *
2242
- * The Original Code is Ajax.org Code Editor (ACE).
2243
- *
2244
- * The Initial Developer of the Original Code is
2245
- * Ajax.org B.V.
2246
- * Portions created by the Initial Developer are Copyright (C) 2010
2247
- * the Initial Developer. All Rights Reserved.
2248
- *
2249
- * Contributor(s):
2250
- * Fabian Jakobs <fabian AT ajax DOT org>
2251
- *
2252
- * Alternatively, the contents of this file may be used under the terms of
2253
- * either the GNU General Public License Version 2 or later (the "GPL"), or
2254
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2255
- * in which case the provisions of the GPL or the LGPL are applicable instead
2256
- * of those above. If you wish to allow use of your version of this file only
2257
- * under the terms of either the GPL or the LGPL, and not to allow others to
2258
- * use your version of this file under the terms of the MPL, indicate your
2259
- * decision by deleting the provisions above and replace them with the notice
2260
- * and other provisions required by the GPL or the LGPL. If you do not delete
2261
- * the provisions above, a recipient may use your version of this file under
2262
- * the terms of any one of the MPL, the GPL or the LGPL.
2263
- *
2264
- * ***** END LICENSE BLOCK ***** */
2265
1852
 
2266
1853
  define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
2267
- "use strict";
1854
+
2268
1855
 
2269
1856
  /**
2270
1857
  * class Range
@@ -2308,53 +1895,15 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
2308
1895
  this.end.row == range.end.row &&
2309
1896
  this.start.column == range.start.column &&
2310
1897
  this.end.column == range.end.column
2311
- };
2312
-
2313
- /**
2314
- * Range.toString() -> String
2315
- *
2316
- * Returns a string containing the range's row and column information, given like this:
2317
- *
2318
- * [start.row/start.column] -> [end.row/end.column]
2319
- *
2320
- **/
2321
-
1898
+ };
2322
1899
  this.toString = function() {
2323
1900
  return ("Range: [" + this.start.row + "/" + this.start.column +
2324
1901
  "] -> [" + this.end.row + "/" + this.end.column + "]");
2325
- };
2326
-
2327
- /** related to: Range.compare
2328
- * Range.contains(row, column) -> Boolean
2329
- * - row (Number): A row to check for
2330
- * - column (Number): A column to check for
2331
- *
2332
- * Returns `true` if the `row` and `column` provided are within the given range. This can better be expressed as returning `true` if:
2333
- *
2334
- * this.start.row <= row <= this.end.row &&
2335
- * this.start.column <= column <= this.end.column
2336
- *
2337
- **/
1902
+ };
2338
1903
 
2339
1904
  this.contains = function(row, column) {
2340
1905
  return this.compare(row, column) == 0;
2341
- };
2342
-
2343
- /** related to: Range.compare
2344
- * Range.compareRange(range) -> Number
2345
- * - range (Range): A range to compare with
2346
- * + (Number): This method returns one of the following numbers:<br/>
2347
- * <br/>
2348
- * * `-2`: (B) is in front of (A), and doesn't intersect with (A)<br/>
2349
- * * `-1`: (B) begins before (A) but ends inside of (A)<br/>
2350
- * * `0`: (B) is completely inside of (A) OR (A) is completely inside of (B)<br/>
2351
- * * `+1`: (B) begins inside of (A) but ends outside of (A)<br/>
2352
- * * `+2`: (B) is after (A) and doesn't intersect with (A)<br/>
2353
- * * `42`: FTW state: (B) ends in (A) but starts outside of (A)
2354
- *
2355
- * Compares `this` range (A) with another range (B).
2356
- *
2357
- **/
1906
+ };
2358
1907
  this.compareRange = function(range) {
2359
1908
  var cmp,
2360
1909
  end = range.end,
@@ -2591,30 +2140,6 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
2591
2140
 
2592
2141
  return 0;
2593
2142
  };
2594
-
2595
- /**
2596
- * Range.compareStart(row, column) -> Number
2597
- * - row (Number): A row point to compare with
2598
- * - column (Number): A column point to compare with
2599
- * + (Number): This method returns one of the following numbers:<br/>
2600
- * <br/>
2601
- * * `0` if the two points are exactly equal<br/>
2602
- * * `-1` if `p.row` is less then the calling range<br/>
2603
- * * `1` if `p.row` is greater than the calling range, or if `isStart` is `true`.<br/>
2604
- * <br/>
2605
- * If the starting row of the calling range is equal to `p.row`, and:<br/>
2606
- * * `p.column` is greater than or equal to the calling range's starting column, this returns `0`<br/>
2607
- * * Otherwise, it returns -1<br/>
2608
- * <br/>
2609
- * If the ending row of the calling range is equal to `p.row`, and:<br/>
2610
- * * `p.column` is less than or equal to the calling range's ending column, this returns `0`<br/>
2611
- * * Otherwise, it returns 1
2612
- *
2613
- * Checks the row and column points with the row and column points of the calling range.
2614
- *
2615
- *
2616
- *
2617
- **/
2618
2143
  this.compareStart = function(row, column) {
2619
2144
  if (this.start.row == row && this.start.column == column) {
2620
2145
  return -1;
@@ -2652,7 +2177,7 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
2652
2177
  }
2653
2178
  }
2654
2179
 
2655
- /**
2180
+ /**
2656
2181
  * Range.compareInside(row, column) -> Number
2657
2182
  * - row (Number): A row point to compare with
2658
2183
  * - column (Number): A column point to compare with
@@ -2677,7 +2202,7 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
2677
2202
  }
2678
2203
  }
2679
2204
 
2680
- /**
2205
+ /**
2681
2206
  * Range.clipRows(firstRow, lastRow) -> Range
2682
2207
  * - firstRow (Number): The starting row
2683
2208
  * - lastRow (Number): The ending row
@@ -2715,15 +2240,6 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
2715
2240
  }
2716
2241
  return Range.fromPoints(start || this.start, end || this.end);
2717
2242
  };
2718
-
2719
- /**
2720
- * Range.extend(row, column) -> Range
2721
- * - row (Number): A new row to extend to
2722
- * - column (Number): A new column to extend to
2723
- *
2724
- * Changes the row and column points for the calling range for both the starting and ending points. This method returns that range with a new row.
2725
- *
2726
- **/
2727
2243
  this.extend = function(row, column) {
2728
2244
  var cmp = this.compare(row, column);
2729
2245
 
@@ -2740,46 +2256,18 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
2740
2256
  this.isEmpty = function() {
2741
2257
  return (this.start.row == this.end.row && this.start.column == this.end.column);
2742
2258
  };
2743
-
2744
- /**
2745
- * Range.isMultiLine() -> Boolean
2746
- *
2747
- * Returns true if the range spans across multiple lines.
2748
- *
2749
- **/
2750
2259
  this.isMultiLine = function() {
2751
2260
  return (this.start.row !== this.end.row);
2752
2261
  };
2753
-
2754
- /**
2755
- * Range.clone() -> Range
2756
- *
2757
- * Returns a duplicate of the calling range.
2758
- *
2759
- **/
2760
2262
  this.clone = function() {
2761
2263
  return Range.fromPoints(this.start, this.end);
2762
2264
  };
2763
-
2764
- /**
2765
- * Range.collapseRows() -> Range
2766
- *
2767
- * Returns a range containing the starting and ending rows of the original range, but with a column value of `0`.
2768
- *
2769
- **/
2770
2265
  this.collapseRows = function() {
2771
2266
  if (this.end.column == 0)
2772
2267
  return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
2773
2268
  else
2774
2269
  return new Range(this.start.row, 0, this.end.row, 0)
2775
2270
  };
2776
-
2777
- /**
2778
- * Range.toScreenRange(session) -> Range
2779
- * - session (EditSession): The `EditSession` to retrieve coordinates from
2780
- *
2781
- * Given the current `Range`, this function converts those starting and ending points into screen positions, and then returns a new `Range` object.
2782
- **/
2783
2271
  this.toScreenRange = function(session) {
2784
2272
  var screenPosStart =
2785
2273
  session.documentToScreenPosition(this.start);
@@ -2793,71 +2281,19 @@ var Range = function(startRow, startColumn, endRow, endColumn) {
2793
2281
  };
2794
2282
 
2795
2283
  }).call(Range.prototype);
2796
-
2797
- /**
2798
- * Range.fromPoints(start, end) -> Range
2799
- * - start (Range): A starting point to use
2800
- * - end (Range): An ending point to use
2801
- *
2802
- * Creates and returns a new `Range` based on the row and column of the given parameters.
2803
- *
2804
- **/
2805
2284
  Range.fromPoints = function(start, end) {
2806
2285
  return new Range(start.row, start.column, end.row, end.column);
2807
2286
  };
2808
2287
 
2809
2288
  exports.Range = Range;
2810
2289
  });
2811
- /* ***** BEGIN LICENSE BLOCK *****
2812
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
2813
- *
2814
- * The contents of this file are subject to the Mozilla Public License Version
2815
- * 1.1 (the "License"); you may not use this file except in compliance with
2816
- * the License. You may obtain a copy of the License at
2817
- * http://www.mozilla.org/MPL/
2818
- *
2819
- * Software distributed under the License is distributed on an "AS IS" basis,
2820
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
2821
- * for the specific language governing rights and limitations under the
2822
- * License.
2823
- *
2824
- * The Original Code is Ajax.org Code Editor (ACE).
2825
- *
2826
- * The Initial Developer of the Original Code is
2827
- * Ajax.org B.V.
2828
- * Portions created by the Initial Developer are Copyright (C) 2010
2829
- * the Initial Developer. All Rights Reserved.
2830
- *
2831
- * Contributor(s):
2832
- * Fabian Jakobs <fabian AT ajax DOT org>
2833
- *
2834
- * Alternatively, the contents of this file may be used under the terms of
2835
- * either the GNU General Public License Version 2 or later (the "GPL"), or
2836
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
2837
- * in which case the provisions of the GPL or the LGPL are applicable instead
2838
- * of those above. If you wish to allow use of your version of this file only
2839
- * under the terms of either the GPL or the LGPL, and not to allow others to
2840
- * use your version of this file under the terms of the MPL, indicate your
2841
- * decision by deleting the provisions above and replace them with the notice
2842
- * and other provisions required by the GPL or the LGPL. If you do not delete
2843
- * the provisions above, a recipient may use your version of this file under
2844
- * the terms of any one of the MPL, the GPL or the LGPL.
2845
- *
2846
- * ***** END LICENSE BLOCK ***** */
2847
2290
 
2848
2291
  define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
2849
- "use strict";
2292
+
2850
2293
 
2851
2294
  var oop = require("./lib/oop");
2852
2295
  var EventEmitter = require("./lib/event_emitter").EventEmitter;
2853
2296
 
2854
- /**
2855
- * class Anchor
2856
- *
2857
- * Defines the floating pointer in the document. Whenever text is inserted or deleted before the cursor, the position of the cursor is updated
2858
- *
2859
- **/
2860
-
2861
2297
  /**
2862
2298
  * new Anchor(doc, row, column)
2863
2299
  * - doc (Document): The document to associate with the anchor
@@ -2883,36 +2319,14 @@ var Anchor = exports.Anchor = function(doc, row, column) {
2883
2319
  (function() {
2884
2320
 
2885
2321
  oop.implement(this, EventEmitter);
2886
-
2887
- /**
2888
- * Anchor.getPosition() -> Object
2889
- *
2890
- * Returns an object identifying the `row` and `column` position of the current anchor.
2891
- *
2892
- **/
2893
2322
 
2894
2323
  this.getPosition = function() {
2895
2324
  return this.$clipPositionToDocument(this.row, this.column);
2896
2325
  };
2897
-
2898
- /**
2899
- * Anchor.getDocument() -> Document
2900
- *
2901
- * Returns the current document.
2902
- *
2903
- **/
2904
2326
 
2905
2327
  this.getDocument = function() {
2906
2328
  return this.document;
2907
2329
  };
2908
-
2909
- /**
2910
- * Anchor@onChange(e)
2911
- * - e (Event): Contains data about the event
2912
- *
2913
- * Fires whenever the anchor position changes. Events that can trigger this function include `'includeText'`, `'insertLines'`, `'removeText'`, and `'removeLines'`.
2914
- *
2915
- **/
2916
2330
 
2917
2331
  this.onChange = function(e) {
2918
2332
  var delta = e.data;
@@ -2979,16 +2393,6 @@ var Anchor = exports.Anchor = function(doc, row, column) {
2979
2393
  this.setPosition(row, column, true);
2980
2394
  };
2981
2395
 
2982
- /**
2983
- * Anchor.setPosition(row, column, noClip)
2984
- * - row (Number): The row index to move the anchor to
2985
- * - column (Number): The column index to move the anchor to
2986
- * - noClip (Boolean): Identifies if you want the position to be clipped
2987
- *
2988
- * Sets the anchor position to the specified row and column. If `noClip` is `true`, the position is not clipped.
2989
- *
2990
- **/
2991
-
2992
2396
  this.setPosition = function(row, column, noClip) {
2993
2397
  var pos;
2994
2398
  if (noClip) {
@@ -3016,26 +2420,10 @@ var Anchor = exports.Anchor = function(doc, row, column) {
3016
2420
  value: pos
3017
2421
  });
3018
2422
  };
3019
-
3020
- /**
3021
- * Anchor.detach()
3022
- *
3023
- * When called, the `'change'` event listener is removed.
3024
- *
3025
- **/
3026
2423
 
3027
2424
  this.detach = function() {
3028
2425
  this.document.removeEventListener("change", this.$onChange);
3029
2426
  };
3030
-
3031
- /** internal, hide
3032
- * Anchor.clipPositionToDocument(row, column)
3033
- * - row (Number): The row index to clip the anchor to
3034
- * - column (Number): The column index to clip the anchor to
3035
- *
3036
- * Clips the anchor position to the specified row and column.
3037
- *
3038
- **/
3039
2427
 
3040
2428
  this.$clipPositionToDocument = function(row, column) {
3041
2429
  var pos = {};
@@ -3062,45 +2450,9 @@ var Anchor = exports.Anchor = function(doc, row, column) {
3062
2450
  }).call(Anchor.prototype);
3063
2451
 
3064
2452
  });
3065
- /* ***** BEGIN LICENSE BLOCK *****
3066
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3067
- *
3068
- * The contents of this file are subject to the Mozilla Public License Version
3069
- * 1.1 (the "License"); you may not use this file except in compliance with
3070
- * the License. You may obtain a copy of the License at
3071
- * http://www.mozilla.org/MPL/
3072
- *
3073
- * Software distributed under the License is distributed on an "AS IS" basis,
3074
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
3075
- * for the specific language governing rights and limitations under the
3076
- * License.
3077
- *
3078
- * The Original Code is Ajax.org Code Editor (ACE).
3079
- *
3080
- * The Initial Developer of the Original Code is
3081
- * Ajax.org B.V.
3082
- * Portions created by the Initial Developer are Copyright (C) 2010
3083
- * the Initial Developer. All Rights Reserved.
3084
- *
3085
- * Contributor(s):
3086
- * Fabian Jakobs <fabian AT ajax DOT org>
3087
- *
3088
- * Alternatively, the contents of this file may be used under the terms of
3089
- * either the GNU General Public License Version 2 or later (the "GPL"), or
3090
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
3091
- * in which case the provisions of the GPL or the LGPL are applicable instead
3092
- * of those above. If you wish to allow use of your version of this file only
3093
- * under the terms of either the GPL or the LGPL, and not to allow others to
3094
- * use your version of this file under the terms of the MPL, indicate your
3095
- * decision by deleting the provisions above and replace them with the notice
3096
- * and other provisions required by the GPL or the LGPL. If you do not delete
3097
- * the provisions above, a recipient may use your version of this file under
3098
- * the terms of any one of the MPL, the GPL or the LGPL.
3099
- *
3100
- * ***** END LICENSE BLOCK ***** */
3101
2453
 
3102
2454
  define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
3103
- "use strict";
2455
+
3104
2456
 
3105
2457
  exports.stringReverse = function(string) {
3106
2458
  return string.split("").reverse().join("");
@@ -3165,9 +2517,13 @@ exports.arrayToMap = function(arr) {
3165
2517
 
3166
2518
  };
3167
2519
 
3168
- /*
3169
- * splice out of 'array' anything that === 'value'
3170
- */
2520
+ exports.createMap = function(props) {
2521
+ var map = Object.create(null);
2522
+ for (var i in props) {
2523
+ map[i] = props[i];
2524
+ }
2525
+ return map;
2526
+ };
3171
2527
  exports.arrayRemove = function(array, value) {
3172
2528
  for (var i = 0; i <= array.length; i++) {
3173
2529
  if (value === array[i]) {
@@ -3180,6 +2536,20 @@ exports.escapeRegExp = function(str) {
3180
2536
  return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
3181
2537
  };
3182
2538
 
2539
+ exports.getMatchOffsets = function(string, regExp) {
2540
+ var matches = [];
2541
+
2542
+ string.replace(regExp, function(str) {
2543
+ matches.push({
2544
+ offset: arguments[arguments.length-2],
2545
+ length: str.length
2546
+ });
2547
+ });
2548
+
2549
+ return matches;
2550
+ };
2551
+
2552
+
3183
2553
  exports.deferredCall = function(fcn) {
3184
2554
 
3185
2555
  var timer = null;
@@ -3353,13 +2723,6 @@ EventTarget.prototype = {
3353
2723
  }
3354
2724
  }
3355
2725
  };
3356
- /**
3357
- * Convenient way to read through strings.
3358
- * @namespace parserlib.util
3359
- * @class StringReader
3360
- * @constructor
3361
- * @param {String} text The text to read.
3362
- */
3363
2726
  function StringReader(text){
3364
2727
 
3365
2728
  /**
@@ -3369,31 +2732,8 @@ function StringReader(text){
3369
2732
  * @private
3370
2733
  */
3371
2734
  this._input = text.replace(/\n\r?/g, "\n");
3372
-
3373
-
3374
- /**
3375
- * The row for the character to be read next.
3376
- * @property _line
3377
- * @type int
3378
- * @private
3379
- */
3380
2735
  this._line = 1;
3381
-
3382
-
3383
- /**
3384
- * The column for the character to be read next.
3385
- * @property _col
3386
- * @type int
3387
- * @private
3388
- */
3389
2736
  this._col = 1;
3390
-
3391
- /**
3392
- * The index of the character in the input to be read next.
3393
- * @property _cursor
3394
- * @type int
3395
- * @private
3396
- */
3397
2737
  this._cursor = 0;
3398
2738
  }
3399
2739
 
@@ -3527,12 +2867,6 @@ StringReader.prototype = {
3527
2867
 
3528
2868
  var buffer = "",
3529
2869
  c;
3530
-
3531
- /*
3532
- * First, buffer must be the same length as the pattern.
3533
- * Then, buffer must end with the pattern or else reach the
3534
- * end of the input.
3535
- */
3536
2870
  while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) != buffer.length - pattern.length){
3537
2871
  c = this.read();
3538
2872
  if (c){
@@ -3620,15 +2954,6 @@ StringReader.prototype = {
3620
2954
  }
3621
2955
 
3622
2956
  };
3623
- /**
3624
- * Type to use when a syntax error occurs.
3625
- * @class SyntaxError
3626
- * @namespace parserlib.util
3627
- * @constructor
3628
- * @param {String} message The error message.
3629
- * @param {int} line The line at which the error occurred.
3630
- * @param {int} col The column at which the error occurred.
3631
- */
3632
2957
  function SyntaxError(message, line, col){
3633
2958
 
3634
2959
  /**
@@ -3637,34 +2962,13 @@ function SyntaxError(message, line, col){
3637
2962
  * @property col
3638
2963
  */
3639
2964
  this.col = col;
3640
-
3641
- /**
3642
- * The line at which the error occurred.
3643
- * @type int
3644
- * @property line
3645
- */
3646
2965
  this.line = line;
3647
-
3648
- /**
3649
- * The text representation of the unit.
3650
- * @type String
3651
- * @property text
3652
- */
3653
2966
  this.message = message;
3654
2967
 
3655
2968
  }
3656
2969
 
3657
2970
  //inherit from Error
3658
2971
  SyntaxError.prototype = new Error();
3659
- /**
3660
- * Base type to represent a single syntactic unit.
3661
- * @class SyntaxUnit
3662
- * @namespace parserlib.util
3663
- * @constructor
3664
- * @param {String} text The text of the unit.
3665
- * @param {int} line The line of text on which the unit resides.
3666
- * @param {int} col The column of text on which the unit resides.
3667
- */
3668
2972
  function SyntaxUnit(text, line, col, type){
3669
2973
 
3670
2974
 
@@ -3674,26 +2978,8 @@ function SyntaxUnit(text, line, col, type){
3674
2978
  * @property col
3675
2979
  */
3676
2980
  this.col = col;
3677
-
3678
- /**
3679
- * The line of text on which the unit resides.
3680
- * @type int
3681
- * @property line
3682
- */
3683
2981
  this.line = line;
3684
-
3685
- /**
3686
- * The text representation of the unit.
3687
- * @type String
3688
- * @property text
3689
- */
3690
2982
  this.text = text;
3691
-
3692
- /**
3693
- * The type of syntax unit.
3694
- * @type int
3695
- * @property type
3696
- */
3697
2983
  this.type = type;
3698
2984
  }
3699
2985
 
@@ -3734,7 +3020,6 @@ SyntaxUnit.prototype = {
3734
3020
  }
3735
3021
 
3736
3022
  };
3737
- /*global StringReader, SyntaxError*/
3738
3023
 
3739
3024
  /**
3740
3025
  * Generic TokenStream providing base functionality.
@@ -3753,37 +3038,9 @@ function TokenStreamBase(input, tokenData){
3753
3038
  * @private
3754
3039
  */
3755
3040
  this._reader = input ? new StringReader(input.toString()) : null;
3756
-
3757
- /**
3758
- * Token object for the last consumed token.
3759
- * @type Token
3760
- * @property _token
3761
- * @private
3762
- */
3763
- this._token = null;
3764
-
3765
- /**
3766
- * The array of token information.
3767
- * @type Array
3768
- * @property _tokenData
3769
- * @private
3770
- */
3041
+ this._token = null;
3771
3042
  this._tokenData = tokenData;
3772
-
3773
- /**
3774
- * Lookahead token buffer.
3775
- * @type Array
3776
- * @property _lt
3777
- * @private
3778
- */
3779
3043
  this._lt = [];
3780
-
3781
- /**
3782
- * Lookahead token buffer index.
3783
- * @type int
3784
- * @property _ltIndex
3785
- * @private
3786
- */
3787
3044
  this._ltIndex = 0;
3788
3045
 
3789
3046
  this._ltIndexCache = [];
@@ -4146,31 +3403,6 @@ EventTarget : EventTarget,
4146
3403
  TokenStreamBase : TokenStreamBase
4147
3404
  };
4148
3405
  })();
4149
-
4150
-
4151
- /*
4152
- Parser-Lib
4153
- Copyright (c) 2009-2011 Nicholas C. Zakas. All rights reserved.
4154
-
4155
- Permission is hereby granted, free of charge, to any person obtaining a copy
4156
- of this software and associated documentation files (the "Software"), to deal
4157
- in the Software without restriction, including without limitation the rights
4158
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
4159
- copies of the Software, and to permit persons to whom the Software is
4160
- furnished to do so, subject to the following conditions:
4161
-
4162
- The above copyright notice and this permission notice shall be included in
4163
- all copies or substantial portions of the Software.
4164
-
4165
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4166
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4167
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4168
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4169
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4170
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
4171
- THE SOFTWARE.
4172
-
4173
- */
4174
3406
  /* Version v0.1.6, Build time: 2-March-2012 02:44:32 */
4175
3407
  (function(){
4176
3408
  var EventTarget = parserlib.util.EventTarget,
@@ -4322,7 +3554,6 @@ var Colors = {
4322
3554
  yellow :"#ffff00",
4323
3555
  yellowgreen :"#9acd32"
4324
3556
  };
4325
- /*global SyntaxUnit, Parser*/
4326
3557
  /**
4327
3558
  * Represents a selector combinator (whitespace, +, >).
4328
3559
  * @namespace parserlib.css
@@ -4336,12 +3567,6 @@ var Colors = {
4336
3567
  function Combinator(text, line, col){
4337
3568
 
4338
3569
  SyntaxUnit.call(this, text, line, col, Parser.COMBINATOR_TYPE);
4339
-
4340
- /**
4341
- * The type of modifier.
4342
- * @type String
4343
- * @property type
4344
- */
4345
3570
  this.type = "unknown";
4346
3571
 
4347
3572
  //pretty simple
@@ -4359,9 +3584,6 @@ function Combinator(text, line, col){
4359
3584
 
4360
3585
  Combinator.prototype = new SyntaxUnit();
4361
3586
  Combinator.prototype.constructor = Combinator;
4362
-
4363
-
4364
- /*global SyntaxUnit, Parser*/
4365
3587
  /**
4366
3588
  * Represents a media feature, such as max-width:500.
4367
3589
  * @namespace parserlib.css
@@ -4374,27 +3596,12 @@ Combinator.prototype.constructor = Combinator;
4374
3596
  function MediaFeature(name, value){
4375
3597
 
4376
3598
  SyntaxUnit.call(this, "(" + name + (value !== null ? ":" + value : "") + ")", name.startLine, name.startCol, Parser.MEDIA_FEATURE_TYPE);
4377
-
4378
- /**
4379
- * The name of the media feature
4380
- * @type String
4381
- * @property name
4382
- */
4383
3599
  this.name = name;
4384
-
4385
- /**
4386
- * The value for the feature or null if there is none.
4387
- * @type SyntaxUnit
4388
- * @property value
4389
- */
4390
3600
  this.value = value;
4391
3601
  }
4392
3602
 
4393
3603
  MediaFeature.prototype = new SyntaxUnit();
4394
3604
  MediaFeature.prototype.constructor = MediaFeature;
4395
-
4396
-
4397
- /*global SyntaxUnit, Parser*/
4398
3605
  /**
4399
3606
  * Represents an individual media query.
4400
3607
  * @namespace parserlib.css
@@ -4410,26 +3617,8 @@ MediaFeature.prototype.constructor = MediaFeature;
4410
3617
  function MediaQuery(modifier, mediaType, features, line, col){
4411
3618
 
4412
3619
  SyntaxUnit.call(this, (modifier ? modifier + " ": "") + (mediaType ? mediaType + " " : "") + features.join(" and "), line, col, Parser.MEDIA_QUERY_TYPE);
4413
-
4414
- /**
4415
- * The media modifier ("not" or "only")
4416
- * @type String
4417
- * @property modifier
4418
- */
4419
3620
  this.modifier = modifier;
4420
-
4421
- /**
4422
- * The mediaType (i.e., "print")
4423
- * @type String
4424
- * @property mediaType
4425
- */
4426
- this.mediaType = mediaType;
4427
-
4428
- /**
4429
- * The parts that make up the selector.
4430
- * @type Array
4431
- * @property features
4432
- */
3621
+ this.mediaType = mediaType;
4433
3622
  this.features = features;
4434
3623
 
4435
3624
  }
@@ -4437,11 +3626,6 @@ function MediaQuery(modifier, mediaType, features, line, col){
4437
3626
  MediaQuery.prototype = new SyntaxUnit();
4438
3627
  MediaQuery.prototype.constructor = MediaQuery;
4439
3628
 
4440
-
4441
- /*global Tokens, TokenStream, SyntaxError, Properties, Validation, ValidationError, SyntaxUnit,
4442
- PropertyValue, PropertyValuePart, SelectorPart, SelectorSubPart, Selector,
4443
- PropertyName, Combinator, MediaFeature, MediaQuery, EventTarget */
4444
-
4445
3629
  /**
4446
3630
  * A CSS3 parser.
4447
3631
  * @namespace parserlib.css
@@ -4742,9 +3926,6 @@ Parser.prototype = function(){
4742
3926
  }
4743
3927
 
4744
3928
  tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);
4745
- /*if (!tokenStream.match(Tokens.STRING)){
4746
- tokenStream.mustMatch(Tokens.URI);
4747
- }*/
4748
3929
 
4749
3930
  //grab the URI value
4750
3931
  uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1");
@@ -5259,12 +4440,6 @@ Parser.prototype = function(){
5259
4440
  var tokenStream = this._tokenStream,
5260
4441
  tt,
5261
4442
  selectors;
5262
-
5263
-
5264
- /*
5265
- * Error Recovery: If even a single selector fails to parse,
5266
- * then the entire ruleset should be thrown away.
5267
- */
5268
4443
  try {
5269
4444
  selectors = this._selectors_group();
5270
4445
  } catch (ex){
@@ -6643,14 +5818,6 @@ Parser.prototype = function(){
6643
5818
 
6644
5819
  return proto;
6645
5820
  }();
6646
-
6647
-
6648
- /*
6649
- nth
6650
- : S* [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? |
6651
- ['-'|'+']? INTEGER | {O}{D}{D} | {E}{V}{E}{N} ] S*
6652
- ;
6653
- */
6654
5821
  /*global Validation, ValidationTypes, ValidationError*/
6655
5822
  var Properties = {
6656
5823
 
@@ -7129,7 +6296,6 @@ var Properties = {
7129
6296
  "z-index" : "<integer> | auto | inherit",
7130
6297
  "zoom" : "<number> | <percentage> | normal"
7131
6298
  };
7132
- /*global SyntaxUnit, Parser*/
7133
6299
  /**
7134
6300
  * Represents a selector combinator (whitespace, +, >).
7135
6301
  * @namespace parserlib.css
@@ -7141,15 +6307,9 @@ var Properties = {
7141
6307
  * @param {int} line The line of text on which the unit resides.
7142
6308
  * @param {int} col The column of text on which the unit resides.
7143
6309
  */
7144
- function PropertyName(text, hack, line, col){
7145
-
7146
- SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_NAME_TYPE);
7147
-
7148
- /**
7149
- * The type of IE hack applied ("*", "_", or null).
7150
- * @type String
7151
- * @property hack
7152
- */
6310
+ function PropertyName(text, hack, line, col){
6311
+
6312
+ SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_NAME_TYPE);
7153
6313
  this.hack = hack;
7154
6314
 
7155
6315
  }
@@ -7159,8 +6319,6 @@ PropertyName.prototype.constructor = PropertyName;
7159
6319
  PropertyName.prototype.toString = function(){
7160
6320
  return (this.hack ? this.hack : "") + this.text;
7161
6321
  };
7162
-
7163
- /*global SyntaxUnit, Parser*/
7164
6322
  /**
7165
6323
  * Represents a single part of a CSS property value, meaning that it represents
7166
6324
  * just everything single part between ":" and ";". If there are multiple values
@@ -7176,21 +6334,12 @@ PropertyName.prototype.toString = function(){
7176
6334
  function PropertyValue(parts, line, col){
7177
6335
 
7178
6336
  SyntaxUnit.call(this, parts.join(" "), line, col, Parser.PROPERTY_VALUE_TYPE);
7179
-
7180
- /**
7181
- * The parts that make up the selector.
7182
- * @type Array
7183
- * @property parts
7184
- */
7185
6337
  this.parts = parts;
7186
6338
 
7187
6339
  }
7188
6340
 
7189
6341
  PropertyValue.prototype = new SyntaxUnit();
7190
6342
  PropertyValue.prototype.constructor = PropertyValue;
7191
-
7192
-
7193
- /*global SyntaxUnit, Parser*/
7194
6343
  /**
7195
6344
  * A utility class that allows for easy iteration over the various parts of a
7196
6345
  * property value.
@@ -7208,28 +6357,8 @@ function PropertyValueIterator(value){
7208
6357
  * @private
7209
6358
  */
7210
6359
  this._i = 0;
7211
-
7212
- /**
7213
- * The parts that make up the value.
7214
- * @type Array
7215
- * @property _parts
7216
- * @private
7217
- */
7218
6360
  this._parts = value.parts;
7219
-
7220
- /**
7221
- * Keeps track of bookmarks along the way.
7222
- * @type Array
7223
- * @property _marks
7224
- * @private
7225
- */
7226
6361
  this._marks = [];
7227
-
7228
- /**
7229
- * Holds the original property value.
7230
- * @type parserlib.css.PropertyValue
7231
- * @property value
7232
- */
7233
6362
  this.value = value;
7234
6363
 
7235
6364
  }
@@ -7242,81 +6371,29 @@ function PropertyValueIterator(value){
7242
6371
  PropertyValueIterator.prototype.count = function(){
7243
6372
  return this._parts.length;
7244
6373
  };
7245
-
7246
- /**
7247
- * Indicates if the iterator is positioned at the first item.
7248
- * @return {Boolean} True if positioned at first item, false if not.
7249
- * @method isFirst
7250
- */
7251
6374
  PropertyValueIterator.prototype.isFirst = function(){
7252
6375
  return this._i === 0;
7253
6376
  };
7254
-
7255
- /**
7256
- * Indicates if there are more parts of the property value.
7257
- * @return {Boolean} True if there are more parts, false if not.
7258
- * @method hasNext
7259
- */
7260
6377
  PropertyValueIterator.prototype.hasNext = function(){
7261
6378
  return (this._i < this._parts.length);
7262
6379
  };
7263
-
7264
- /**
7265
- * Marks the current spot in the iteration so it can be restored to
7266
- * later on.
7267
- * @return {void}
7268
- * @method mark
7269
- */
7270
6380
  PropertyValueIterator.prototype.mark = function(){
7271
6381
  this._marks.push(this._i);
7272
6382
  };
7273
-
7274
- /**
7275
- * Returns the next part of the property value or null if there is no next
7276
- * part. Does not move the internal counter forward.
7277
- * @return {parserlib.css.PropertyValuePart} The next part of the property value or null if there is no next
7278
- * part.
7279
- * @method peek
7280
- */
7281
6383
  PropertyValueIterator.prototype.peek = function(count){
7282
6384
  return this.hasNext() ? this._parts[this._i + (count || 0)] : null;
7283
6385
  };
7284
-
7285
- /**
7286
- * Returns the next part of the property value or null if there is no next
7287
- * part.
7288
- * @return {parserlib.css.PropertyValuePart} The next part of the property value or null if there is no next
7289
- * part.
7290
- * @method next
7291
- */
7292
6386
  PropertyValueIterator.prototype.next = function(){
7293
6387
  return this.hasNext() ? this._parts[this._i++] : null;
7294
6388
  };
7295
-
7296
- /**
7297
- * Returns the previous part of the property value or null if there is no
7298
- * previous part.
7299
- * @return {parserlib.css.PropertyValuePart} The previous part of the
7300
- * property value or null if there is no next part.
7301
- * @method previous
7302
- */
7303
6389
  PropertyValueIterator.prototype.previous = function(){
7304
6390
  return this._i > 0 ? this._parts[--this._i] : null;
7305
6391
  };
7306
-
7307
- /**
7308
- * Restores the last saved bookmark.
7309
- * @return {void}
7310
- * @method restore
7311
- */
7312
6392
  PropertyValueIterator.prototype.restore = function(){
7313
6393
  if (this._marks.length){
7314
6394
  this._i = this._marks.pop();
7315
6395
  }
7316
6396
  };
7317
-
7318
-
7319
- /*global SyntaxUnit, Parser, Colors*/
7320
6397
  /**
7321
6398
  * Represents a single part of a CSS property value, meaning that it represents
7322
6399
  * just one part of the data between ":" and ";".
@@ -7331,12 +6408,6 @@ PropertyValueIterator.prototype.restore = function(){
7331
6408
  function PropertyValuePart(text, line, col){
7332
6409
 
7333
6410
  SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_VALUE_PART_TYPE);
7334
-
7335
- /**
7336
- * Indicates the type of value unit.
7337
- * @type String
7338
- * @property type
7339
- */
7340
6411
  this.type = "unknown";
7341
6412
 
7342
6413
  //figure out what type of data it is
@@ -7476,16 +6547,6 @@ function PropertyValuePart(text, line, col){
7476
6547
 
7477
6548
  PropertyValuePart.prototype = new SyntaxUnit();
7478
6549
  PropertyValuePart.prototype.constructor = PropertyValuePart;
7479
-
7480
- /**
7481
- * Create a new syntax unit based solely on the given token.
7482
- * Convenience method for creating a new syntax unit when
7483
- * it represents a single token instead of multiple.
7484
- * @param {Object} token The token object to represent.
7485
- * @return {parserlib.css.PropertyValuePart} The object representing the token.
7486
- * @static
7487
- * @method fromToken
7488
- */
7489
6550
  PropertyValuePart.fromToken = function(token){
7490
6551
  return new PropertyValuePart(token.value, token.startLine, token.startCol);
7491
6552
  };
@@ -7502,7 +6563,6 @@ Pseudos.CLASS = 2;
7502
6563
  Pseudos.isElement = function(pseudo){
7503
6564
  return pseudo.indexOf("::") === 0 || Pseudos[pseudo.toLowerCase()] == Pseudos.ELEMENT;
7504
6565
  };
7505
- /*global SyntaxUnit, Parser, Specificity*/
7506
6566
  /**
7507
6567
  * Represents an entire single selector, including all parts but not
7508
6568
  * including multiple selectors (those separated by commas).
@@ -7517,28 +6577,13 @@ Pseudos.isElement = function(pseudo){
7517
6577
  function Selector(parts, line, col){
7518
6578
 
7519
6579
  SyntaxUnit.call(this, parts.join(" "), line, col, Parser.SELECTOR_TYPE);
7520
-
7521
- /**
7522
- * The parts that make up the selector.
7523
- * @type Array
7524
- * @property parts
7525
- */
7526
6580
  this.parts = parts;
7527
-
7528
- /**
7529
- * The specificity of the selector.
7530
- * @type parserlib.css.Specificity
7531
- * @property specificity
7532
- */
7533
6581
  this.specificity = Specificity.calculate(this);
7534
6582
 
7535
6583
  }
7536
6584
 
7537
6585
  Selector.prototype = new SyntaxUnit();
7538
6586
  Selector.prototype.constructor = Selector;
7539
-
7540
-
7541
- /*global SyntaxUnit, Parser*/
7542
6587
  /**
7543
6588
  * Represents a single part of a selector string, meaning a single set of
7544
6589
  * element name and modifiers. This does not include combinators such as
@@ -7558,30 +6603,13 @@ Selector.prototype.constructor = Selector;
7558
6603
  function SelectorPart(elementName, modifiers, text, line, col){
7559
6604
 
7560
6605
  SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_PART_TYPE);
7561
-
7562
- /**
7563
- * The tag name of the element to which this part
7564
- * of the selector affects.
7565
- * @type String
7566
- * @property elementName
7567
- */
7568
6606
  this.elementName = elementName;
7569
-
7570
- /**
7571
- * The parts that come after the element name, such as class names, IDs,
7572
- * pseudo classes/elements, etc.
7573
- * @type Array
7574
- * @property modifiers
7575
- */
7576
6607
  this.modifiers = modifiers;
7577
6608
 
7578
6609
  }
7579
6610
 
7580
6611
  SelectorPart.prototype = new SyntaxUnit();
7581
6612
  SelectorPart.prototype.constructor = SelectorPart;
7582
-
7583
-
7584
- /*global SyntaxUnit, Parser*/
7585
6613
  /**
7586
6614
  * Represents a selector modifier string, meaning a class name, element name,
7587
6615
  * element ID, pseudo rule, etc.
@@ -7597,28 +6625,13 @@ SelectorPart.prototype.constructor = SelectorPart;
7597
6625
  function SelectorSubPart(text, type, line, col){
7598
6626
 
7599
6627
  SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_SUB_PART_TYPE);
7600
-
7601
- /**
7602
- * The type of modifier.
7603
- * @type String
7604
- * @property type
7605
- */
7606
6628
  this.type = type;
7607
-
7608
- /**
7609
- * Some subparts have arguments, this represents them.
7610
- * @type Array
7611
- * @property args
7612
- */
7613
6629
  this.args = [];
7614
6630
 
7615
6631
  }
7616
6632
 
7617
6633
  SelectorSubPart.prototype = new SyntaxUnit();
7618
6634
  SelectorSubPart.prototype.constructor = SelectorSubPart;
7619
-
7620
-
7621
- /*global Pseudos, SelectorPart*/
7622
6635
  /**
7623
6636
  * Represents a selector's specificity.
7624
6637
  * @namespace parserlib.css
@@ -7679,14 +6692,6 @@ Specificity.prototype = {
7679
6692
  }
7680
6693
 
7681
6694
  };
7682
-
7683
- /**
7684
- * Calculates the specificity of the given selector.
7685
- * @param {parserlib.css.Selector} The selector to calculate specificity for.
7686
- * @return {parserlib.css.Specificity} The specificity of the selector.
7687
- * @static
7688
- * @method calculate
7689
- */
7690
6695
  Specificity.calculate = function(selector){
7691
6696
 
7692
6697
  var i, len,
@@ -7742,8 +6747,6 @@ Specificity.calculate = function(selector){
7742
6747
  return new Specificity(0, b, c, d);
7743
6748
  };
7744
6749
 
7745
- /*global Tokens, TokenStreamBase*/
7746
-
7747
6750
  var h = /^[0-9a-fA-F]$/,
7748
6751
  nonascii = /^[\u0080-\uFFFF]$/,
7749
6752
  nl = /\n|\r\n|\r|\f/;
@@ -7845,16 +6848,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
7845
6848
  token = this.charToken(c, startLine, startCol);
7846
6849
  }
7847
6850
  break;
7848
-
7849
- /*
7850
- * Potential tokens:
7851
- * - DASHMATCH
7852
- * - INCLUDES
7853
- * - PREFIXMATCH
7854
- * - SUFFIXMATCH
7855
- * - SUBSTRINGMATCH
7856
- * - CHAR
7857
- */
7858
6851
  case "|":
7859
6852
  case "~":
7860
6853
  case "^":
@@ -7866,22 +6859,10 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
7866
6859
  token = this.charToken(c, startLine, startCol);
7867
6860
  }
7868
6861
  break;
7869
-
7870
- /*
7871
- * Potential tokens:
7872
- * - STRING
7873
- * - INVALID
7874
- */
7875
6862
  case "\"":
7876
6863
  case "'":
7877
6864
  token = this.stringToken(c, startLine, startCol);
7878
6865
  break;
7879
-
7880
- /*
7881
- * Potential tokens:
7882
- * - HASH
7883
- * - CHAR
7884
- */
7885
6866
  case "#":
7886
6867
  if (isNameChar(reader.peek())){
7887
6868
  token = this.hashToken(c, startLine, startCol);
@@ -7889,14 +6870,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
7889
6870
  token = this.charToken(c, startLine, startCol);
7890
6871
  }
7891
6872
  break;
7892
-
7893
- /*
7894
- * Potential tokens:
7895
- * - DOT
7896
- * - NUMBER
7897
- * - DIMENSION
7898
- * - PERCENTAGE
7899
- */
7900
6873
  case ".":
7901
6874
  if (isDigit(reader.peek())){
7902
6875
  token = this.numberToken(c, startLine, startCol);
@@ -7904,15 +6877,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
7904
6877
  token = this.charToken(c, startLine, startCol);
7905
6878
  }
7906
6879
  break;
7907
-
7908
- /*
7909
- * Potential tokens:
7910
- * - CDC
7911
- * - MINUS
7912
- * - NUMBER
7913
- * - DIMENSION
7914
- * - PERCENTAGE
7915
- */
7916
6880
  case "-":
7917
6881
  if (reader.peek() == "-"){ //could be closing HTML-style comment
7918
6882
  token = this.htmlCommentEndToken(c, startLine, startCol);
@@ -7922,47 +6886,18 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
7922
6886
  token = this.charToken(c, startLine, startCol);
7923
6887
  }
7924
6888
  break;
7925
-
7926
- /*
7927
- * Potential tokens:
7928
- * - IMPORTANT_SYM
7929
- * - CHAR
7930
- */
7931
6889
  case "!":
7932
6890
  token = this.importantToken(c, startLine, startCol);
7933
6891
  break;
7934
-
7935
- /*
7936
- * Any at-keyword or CHAR
7937
- */
7938
6892
  case "@":
7939
6893
  token = this.atRuleToken(c, startLine, startCol);
7940
6894
  break;
7941
-
7942
- /*
7943
- * Potential tokens:
7944
- * - NOT
7945
- * - CHAR
7946
- */
7947
6895
  case ":":
7948
6896
  token = this.notToken(c, startLine, startCol);
7949
6897
  break;
7950
-
7951
- /*
7952
- * Potential tokens:
7953
- * - CDO
7954
- * - CHAR
7955
- */
7956
6898
  case "<":
7957
6899
  token = this.htmlCommentStartToken(c, startLine, startCol);
7958
6900
  break;
7959
-
7960
- /*
7961
- * Potential tokens:
7962
- * - UNICODE_RANGE
7963
- * - URL
7964
- * - CHAR
7965
- */
7966
6901
  case "U":
7967
6902
  case "u":
7968
6903
  if (reader.peek() == "+"){
@@ -8086,14 +7021,6 @@ TokenStream.prototype = mix(new TokenStreamBase(), {
8086
7021
  valid = false,
8087
7022
  ident,
8088
7023
  c;
8089
-
8090
- /*
8091
- * First, mark where we are. There are only four @ rules,
8092
- * so anything else is really just an invalid token.
8093
- * Basically, if this doesn't match one of the known @
8094
- * rules, just return '@' as an unknown token and allow
8095
- * parsing to continue after that point.
8096
- */
8097
7024
  reader.mark();
8098
7025
 
8099
7026
  //try to find the at-keyword
@@ -9118,15 +8045,6 @@ var Validation = {
9118
8045
 
9119
8046
 
9120
8047
  };
9121
- /**
9122
- * Type to use when a validation error occurs.
9123
- * @class ValidationError
9124
- * @namespace parserlib.util
9125
- * @constructor
9126
- * @param {String} message The error message.
9127
- * @param {int} line The line at which the error occurred.
9128
- * @param {int} col The column at which the error occurred.
9129
- */
9130
8048
  function ValidationError(message, line, col){
9131
8049
 
9132
8050
  /**
@@ -9135,19 +8053,7 @@ function ValidationError(message, line, col){
9135
8053
  * @property col
9136
8054
  */
9137
8055
  this.col = col;
9138
-
9139
- /**
9140
- * The line at which the error occurred.
9141
- * @type int
9142
- * @property line
9143
- */
9144
8056
  this.line = line;
9145
-
9146
- /**
9147
- * The text representation of the unit.
9148
- * @type String
9149
- * @property text
9150
- */
9151
8057
  this.message = message;
9152
8058
 
9153
8059
  }
@@ -9504,15 +8410,6 @@ Tokens :Tokens,
9504
8410
  ValidationError :ValidationError
9505
8411
  };
9506
8412
  })();
9507
-
9508
-
9509
-
9510
- /**
9511
- * Main CSSLint object.
9512
- * @class CSSLint
9513
- * @static
9514
- * @extends parserlib.util.EventTarget
9515
- */
9516
8413
  /*global parserlib, Reporter*/
9517
8414
  var CSSLint = (function(){
9518
8415
 
@@ -9535,20 +8432,9 @@ var CSSLint = (function(){
9535
8432
  rules.push(rule);
9536
8433
  rules[rule.id] = rule;
9537
8434
  };
9538
-
9539
- /**
9540
- * Clears all rule from the engine.
9541
- * @method clearRules
9542
- */
9543
8435
  api.clearRules = function(){
9544
8436
  rules = [];
9545
8437
  };
9546
-
9547
- /**
9548
- * Returns the rule objects.
9549
- * @return An array of rule objects.
9550
- * @method getRules
9551
- */
9552
8438
  api.getRules = function(){
9553
8439
  return [].concat(rules).sort(function(a,b){
9554
8440
  return a.id > b.id ? 1 : 0;
@@ -9568,26 +8454,9 @@ var CSSLint = (function(){
9568
8454
  // formatters.push(formatter);
9569
8455
  formatters[formatter.id] = formatter;
9570
8456
  };
9571
-
9572
- /**
9573
- * Retrieves a formatter for use.
9574
- * @param {String} formatId The name of the format to retrieve.
9575
- * @return {Object} The formatter or undefined.
9576
- * @method getFormatter
9577
- */
9578
8457
  api.getFormatter = function(formatId){
9579
8458
  return formatters[formatId];
9580
8459
  };
9581
-
9582
- /**
9583
- * Formats the results in a particular format for a single file.
9584
- * @param {Object} result The results returned from CSSLint.verify().
9585
- * @param {String} filename The filename for which the results apply.
9586
- * @param {String} formatId The name of the formatter to use.
9587
- * @param {Object} options (Optional) for special output handling.
9588
- * @return {String} A formatted string for the results.
9589
- * @method format
9590
- */
9591
8460
  api.format = function(results, filename, formatId, options) {
9592
8461
  var formatter = this.getFormatter(formatId),
9593
8462
  result = null;
@@ -9600,13 +8469,6 @@ var CSSLint = (function(){
9600
8469
 
9601
8470
  return result;
9602
8471
  };
9603
-
9604
- /**
9605
- * Indicates if the given format is supported.
9606
- * @param {String} formatId The ID of the format to check.
9607
- * @return {Boolean} True if the format exists, false if not.
9608
- * @method hasFormat
9609
- */
9610
8472
  api.hasFormat = function(formatId){
9611
8473
  return formatters.hasOwnProperty(formatId);
9612
8474
  };
@@ -9688,8 +8550,6 @@ var CSSLint = (function(){
9688
8550
  return api;
9689
8551
 
9690
8552
  })();
9691
-
9692
- /*global CSSLint*/
9693
8553
  /**
9694
8554
  * An instance of Report is used to report results of the
9695
8555
  * verification back to the main API.
@@ -9707,28 +8567,8 @@ function Reporter(lines, ruleset){
9707
8567
  * @type String[]
9708
8568
  */
9709
8569
  this.messages = [];
9710
-
9711
- /**
9712
- * List of statistics being reported.
9713
- * @property stats
9714
- * @type String[]
9715
- */
9716
8570
  this.stats = [];
9717
-
9718
- /**
9719
- * Lines of code being reported on. Used to provide contextual information
9720
- * for messages.
9721
- * @property lines
9722
- * @type String[]
9723
- */
9724
8571
  this.lines = lines;
9725
-
9726
- /**
9727
- * Information about the rules. Used to determine whether an issue is an
9728
- * error or warning.
9729
- * @property ruleset
9730
- * @type Object
9731
- */
9732
8572
  this.ruleset = ruleset;
9733
8573
  }
9734
8574
 
@@ -9851,8 +8691,6 @@ Reporter.prototype = {
9851
8691
  //expose for testing purposes
9852
8692
  CSSLint._Reporter = Reporter;
9853
8693
 
9854
- /*global CSSLint*/
9855
-
9856
8694
  /*
9857
8695
  * Utility functions that make life easier.
9858
8696
  */
@@ -9912,7 +8750,6 @@ CSSLint.Util = {
9912
8750
  }
9913
8751
  }
9914
8752
  };
9915
- /*global CSSLint*/
9916
8753
  /*
9917
8754
  * Rule: Don't use adjoining classes (.foo.bar).
9918
8755
  */
@@ -9957,7 +8794,6 @@ CSSLint.addRule({
9957
8794
  }
9958
8795
 
9959
8796
  });
9960
- /*global CSSLint*/
9961
8797
 
9962
8798
  /*
9963
8799
  * Rule: Don't use width or height when using padding or border.
@@ -10050,7 +8886,6 @@ CSSLint.addRule({
10050
8886
  }
10051
8887
 
10052
8888
  });
10053
- /*global CSSLint*/
10054
8889
 
10055
8890
  /*
10056
8891
  * Rule: box-sizing doesn't work in IE6 and IE7.
@@ -10078,10 +8913,6 @@ CSSLint.addRule({
10078
8913
  }
10079
8914
 
10080
8915
  });
10081
- /*
10082
- * Rule: Include all compatible vendor prefixes to reach a wider
10083
- * range of users.
10084
- */
10085
8916
  /*global CSSLint*/
10086
8917
  CSSLint.addRule({
10087
8918
 
@@ -10249,13 +9080,6 @@ CSSLint.addRule({
10249
9080
  });
10250
9081
  }
10251
9082
  });
10252
- /*
10253
- * Rule: Certain properties don't play well with certain display values.
10254
- * - float should not be used with inline-block
10255
- * - height, width, margin-top, margin-bottom, float should not be used with inline
10256
- * - vertical-align should not be used with block
10257
- * - margin, float should not be used with table-*
10258
- */
10259
9083
  /*global CSSLint*/
10260
9084
  CSSLint.addRule({
10261
9085
 
@@ -10366,9 +9190,6 @@ CSSLint.addRule({
10366
9190
  }
10367
9191
 
10368
9192
  });
10369
- /*
10370
- * Rule: Disallow duplicate background-images (using url).
10371
- */
10372
9193
  /*global CSSLint*/
10373
9194
  CSSLint.addRule({
10374
9195
 
@@ -10403,10 +9224,6 @@ CSSLint.addRule({
10403
9224
  });
10404
9225
  }
10405
9226
  });
10406
- /*
10407
- * Rule: Duplicate properties must appear one after the other. If an already-defined
10408
- * property appears somewhere else in the rule, then it's likely an error.
10409
- */
10410
9227
  /*global CSSLint*/
10411
9228
  CSSLint.addRule({
10412
9229
 
@@ -10449,9 +9266,6 @@ CSSLint.addRule({
10449
9266
  }
10450
9267
 
10451
9268
  });
10452
- /*
10453
- * Rule: Style rules without any properties defined should be removed.
10454
- */
10455
9269
  /*global CSSLint*/
10456
9270
  CSSLint.addRule({
10457
9271
 
@@ -10483,9 +9297,6 @@ CSSLint.addRule({
10483
9297
  }
10484
9298
 
10485
9299
  });
10486
- /*
10487
- * Rule: There should be no syntax errors. (Duh.)
10488
- */
10489
9300
  /*global CSSLint*/
10490
9301
  CSSLint.addRule({
10491
9302
 
@@ -10506,8 +9317,6 @@ CSSLint.addRule({
10506
9317
  }
10507
9318
 
10508
9319
  });
10509
-
10510
- /*global CSSLint*/
10511
9320
  CSSLint.addRule({
10512
9321
 
10513
9322
  //rule information
@@ -10573,10 +9382,6 @@ CSSLint.addRule({
10573
9382
  }
10574
9383
 
10575
9384
  });
10576
- /*
10577
- * Rule: You shouldn't use more than 10 floats. If you do, there's probably
10578
- * room for some abstraction.
10579
- */
10580
9385
  /*global CSSLint*/
10581
9386
  CSSLint.addRule({
10582
9387
 
@@ -10609,9 +9414,6 @@ CSSLint.addRule({
10609
9414
  }
10610
9415
 
10611
9416
  });
10612
- /*
10613
- * Rule: Avoid too many @font-face declarations in the same stylesheet.
10614
- */
10615
9417
  /*global CSSLint*/
10616
9418
  CSSLint.addRule({
10617
9419
 
@@ -10639,9 +9441,6 @@ CSSLint.addRule({
10639
9441
  }
10640
9442
 
10641
9443
  });
10642
- /*
10643
- * Rule: You shouldn't need more than 9 font-size declarations.
10644
- */
10645
9444
 
10646
9445
  /*global CSSLint*/
10647
9446
  CSSLint.addRule({
@@ -10674,9 +9473,6 @@ CSSLint.addRule({
10674
9473
  }
10675
9474
 
10676
9475
  });
10677
- /*
10678
- * Rule: When using a vendor-prefixed gradient, make sure to use them all.
10679
- */
10680
9476
  /*global CSSLint*/
10681
9477
  CSSLint.addRule({
10682
9478
 
@@ -10743,9 +9539,6 @@ CSSLint.addRule({
10743
9539
  }
10744
9540
 
10745
9541
  });
10746
- /*
10747
- * Rule: Don't use IDs for selectors.
10748
- */
10749
9542
  /*global CSSLint*/
10750
9543
  CSSLint.addRule({
10751
9544
 
@@ -10793,9 +9586,6 @@ CSSLint.addRule({
10793
9586
  }
10794
9587
 
10795
9588
  });
10796
- /*
10797
- * Rule: Don't use @import, use <link> instead.
10798
- */
10799
9589
  /*global CSSLint*/
10800
9590
  CSSLint.addRule({
10801
9591
 
@@ -10816,11 +9606,6 @@ CSSLint.addRule({
10816
9606
  }
10817
9607
 
10818
9608
  });
10819
- /*
10820
- * Rule: Make sure !important is not overused, this could lead to specificity
10821
- * war. Display a warning on !important declarations, an error if it's
10822
- * used more at least 10 times.
10823
- */
10824
9609
  /*global CSSLint*/
10825
9610
  CSSLint.addRule({
10826
9611
 
@@ -10853,10 +9638,6 @@ CSSLint.addRule({
10853
9638
  }
10854
9639
 
10855
9640
  });
10856
- /*
10857
- * Rule: Properties should be known (listed in CSS3 specification) or
10858
- * be a vendor-prefixed property.
10859
- */
10860
9641
  /*global CSSLint*/
10861
9642
  CSSLint.addRule({
10862
9643
 
@@ -11170,10 +9951,6 @@ CSSLint.addRule({
11170
9951
  }
11171
9952
 
11172
9953
  });
11173
- /*
11174
- * Rule: outline: none or outline: 0 should only be used in a :focus rule
11175
- * and only if there are other properties in the same rule.
11176
- */
11177
9954
  /*global CSSLint*/
11178
9955
  CSSLint.addRule({
11179
9956
 
@@ -11243,9 +10020,6 @@ CSSLint.addRule({
11243
10020
  }
11244
10021
 
11245
10022
  });
11246
- /*
11247
- * Rule: Don't use classes or IDs with elements (a.foo or a#foo).
11248
- */
11249
10023
  /*global CSSLint*/
11250
10024
  CSSLint.addRule({
11251
10025
 
@@ -11306,9 +10080,6 @@ CSSLint.addRule({
11306
10080
  }
11307
10081
 
11308
10082
  });
11309
- /*
11310
- * Rule: Headings (h1-h6) should not be qualified (namespaced).
11311
- */
11312
10083
  /*global CSSLint*/
11313
10084
  CSSLint.addRule({
11314
10085
 
@@ -11344,9 +10115,6 @@ CSSLint.addRule({
11344
10115
  }
11345
10116
 
11346
10117
  });
11347
- /*
11348
- * Rule: Selectors that look like regular expressions are slow and should be avoided.
11349
- */
11350
10118
  /*global CSSLint*/
11351
10119
  CSSLint.addRule({
11352
10120
 
@@ -11388,9 +10156,6 @@ CSSLint.addRule({
11388
10156
  }
11389
10157
 
11390
10158
  });
11391
- /*
11392
- * Rule: Total number of rules should not exceed x.
11393
- */
11394
10159
  /*global CSSLint*/
11395
10160
  CSSLint.addRule({
11396
10161
 
@@ -11416,10 +10181,6 @@ CSSLint.addRule({
11416
10181
  }
11417
10182
 
11418
10183
  });
11419
- /*
11420
- * Rule: Use shorthand properties where possible.
11421
- *
11422
- */
11423
10184
  /*global CSSLint*/
11424
10185
  CSSLint.addRule({
11425
10186
 
@@ -11503,10 +10264,6 @@ CSSLint.addRule({
11503
10264
  }
11504
10265
 
11505
10266
  });
11506
- /*
11507
- * Rule: Don't use text-indent for image replacement if you need to support rtl.
11508
- *
11509
- */
11510
10267
  /*global CSSLint*/
11511
10268
  CSSLint.addRule({
11512
10269
 
@@ -11554,9 +10311,6 @@ CSSLint.addRule({
11554
10311
  }
11555
10312
 
11556
10313
  });
11557
- /*
11558
- * Rule: Headings (h1-h6) should be defined only once.
11559
- */
11560
10314
  /*global CSSLint*/
11561
10315
  CSSLint.addRule({
11562
10316
 
@@ -11628,9 +10382,6 @@ CSSLint.addRule({
11628
10382
  }
11629
10383
 
11630
10384
  });
11631
- /*
11632
- * Rule: Don't use universal selector because it's slow.
11633
- */
11634
10385
  /*global CSSLint*/
11635
10386
  CSSLint.addRule({
11636
10387
 
@@ -11663,9 +10414,6 @@ CSSLint.addRule({
11663
10414
  }
11664
10415
 
11665
10416
  });
11666
- /*
11667
- * Rule: Don't use unqualified attribute selectors because they're just like universal selectors.
11668
- */
11669
10417
  /*global CSSLint*/
11670
10418
  CSSLint.addRule({
11671
10419
 
@@ -11705,10 +10453,6 @@ CSSLint.addRule({
11705
10453
  }
11706
10454
 
11707
10455
  });
11708
- /*
11709
- * Rule: When using a vendor-prefixed property, make sure to
11710
- * include the standard one.
11711
- */
11712
10456
  /*global CSSLint*/
11713
10457
  CSSLint.addRule({
11714
10458
 
@@ -11848,9 +10592,6 @@ CSSLint.addRule({
11848
10592
  }
11849
10593
 
11850
10594
  });
11851
- /*
11852
- * Rule: You don't need to specify units when a value is 0.
11853
- */
11854
10595
  /*global CSSLint*/
11855
10596
  CSSLint.addRule({
11856
10597
 
@@ -11882,7 +10623,6 @@ CSSLint.addRule({
11882
10623
  }
11883
10624
 
11884
10625
  });
11885
- /*global CSSLint*/
11886
10626
  CSSLint.addFormatter({
11887
10627
  //format information
11888
10628
  id: "checkstyle-xml",
@@ -11914,32 +10654,12 @@ CSSLint.addFormatter({
11914
10654
  formatResults: function(results, filename, options) {
11915
10655
  var messages = results.messages,
11916
10656
  output = [];
11917
-
11918
- /**
11919
- * Generate a source string for a rule.
11920
- * Checkstyle source strings usually resemble Java class names e.g
11921
- * net.csslint.SomeRuleName
11922
- * @param {Object} rule
11923
- * @return rule source as {String}
11924
- */
11925
10657
  var generateSource = function(rule) {
11926
10658
  if (!rule || !('name' in rule)) {
11927
10659
  return "";
11928
10660
  }
11929
10661
  return 'net.csslint.' + rule.name.replace(/\s/g,'');
11930
10662
  };
11931
-
11932
- /**
11933
- * Replace special characters before write to output.
11934
- *
11935
- * Rules:
11936
- * - single quotes is the escape sequence for double-quotes
11937
- * - &lt; is the escape sequence for <
11938
- * - &gt; is the escape sequence for >
11939
- *
11940
- * @param {String} message to escape
11941
- * @return escaped message as {String}
11942
- */
11943
10663
  var escapeSpecialCharacters = function(str) {
11944
10664
  if (!str || str.constructor !== String) {
11945
10665
  return "";
@@ -11962,7 +10682,6 @@ CSSLint.addFormatter({
11962
10682
  return output.join("");
11963
10683
  }
11964
10684
  });
11965
- /*global CSSLint*/
11966
10685
  CSSLint.addFormatter({
11967
10686
  //format information
11968
10687
  id: "compact",
@@ -11995,12 +10714,6 @@ CSSLint.addFormatter({
11995
10714
  var messages = results.messages,
11996
10715
  output = "";
11997
10716
  options = options || {};
11998
-
11999
- /**
12000
- * Capitalize and return given string.
12001
- * @param str {String} to capitalize
12002
- * @return {String} capitalized
12003
- */
12004
10717
  var capitalize = function(str) {
12005
10718
  return str.charAt(0).toUpperCase() + str.slice(1);
12006
10719
  };
@@ -12021,7 +10734,6 @@ CSSLint.addFormatter({
12021
10734
  return output;
12022
10735
  }
12023
10736
  });
12024
- /*global CSSLint*/
12025
10737
  CSSLint.addFormatter({
12026
10738
  //format information
12027
10739
  id: "csslint-xml",
@@ -12053,18 +10765,6 @@ CSSLint.addFormatter({
12053
10765
  formatResults: function(results, filename, options) {
12054
10766
  var messages = results.messages,
12055
10767
  output = [];
12056
-
12057
- /**
12058
- * Replace special characters before write to output.
12059
- *
12060
- * Rules:
12061
- * - single quotes is the escape sequence for double-quotes
12062
- * - &lt; is the escape sequence for <
12063
- * - &gt; is the escape sequence for >
12064
- *
12065
- * @param {String} message to escape
12066
- * @return escaped message as {String}
12067
- */
12068
10768
  var escapeSpecialCharacters = function(str) {
12069
10769
  if (!str || str.constructor !== String) {
12070
10770
  return "";
@@ -12088,7 +10788,6 @@ CSSLint.addFormatter({
12088
10788
  return output.join("");
12089
10789
  }
12090
10790
  });
12091
- /*global CSSLint*/
12092
10791
  CSSLint.addFormatter({
12093
10792
  //format information
12094
10793
  id: "lint-xml",
@@ -12120,18 +10819,6 @@ CSSLint.addFormatter({
12120
10819
  formatResults: function(results, filename, options) {
12121
10820
  var messages = results.messages,
12122
10821
  output = [];
12123
-
12124
- /**
12125
- * Replace special characters before write to output.
12126
- *
12127
- * Rules:
12128
- * - single quotes is the escape sequence for double-quotes
12129
- * - &lt; is the escape sequence for <
12130
- * - &gt; is the escape sequence for >
12131
- *
12132
- * @param {String} message to escape
12133
- * @return escaped message as {String}
12134
- */
12135
10822
  var escapeSpecialCharacters = function(str) {
12136
10823
  if (!str || str.constructor !== String) {
12137
10824
  return "";
@@ -12156,7 +10843,6 @@ CSSLint.addFormatter({
12156
10843
  return output.join("");
12157
10844
  }
12158
10845
  });
12159
- /*global CSSLint*/
12160
10846
  CSSLint.addFormatter({
12161
10847
  //format information
12162
10848
  id: "text",