ace-rails-ap 0.0.3 → 1.0.0

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