wallaby 7.0.0.beta1 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/wallaby/core.js.map +3 -3
  3. data/app/assets/stylesheets/wallaby/base/_override_vars.scss +3 -0
  4. data/app/assets/stylesheets/wallaby/base.scss +2 -1
  5. data/lib/wallaby/version.rb +1 -1
  6. metadata +21 -434
  7. data/config/brakeman.ignore +0 -26
  8. data/config/massa.yml +0 -45
  9. data/config/rails_best_practices.yml +0 -42
  10. data/vendor/assets/javascripts/codemirror/5.49.2/addon/comment/comment.js +0 -209
  11. data/vendor/assets/javascripts/codemirror/5.49.2/addon/comment/continuecomment.js +0 -113
  12. data/vendor/assets/javascripts/codemirror/5.49.2/addon/dialog/dialog.css +0 -32
  13. data/vendor/assets/javascripts/codemirror/5.49.2/addon/dialog/dialog.js +0 -161
  14. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/autorefresh.js +0 -47
  15. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/fullscreen.css +0 -6
  16. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/fullscreen.js +0 -41
  17. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/panel.js +0 -127
  18. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/placeholder.js +0 -63
  19. data/vendor/assets/javascripts/codemirror/5.49.2/addon/display/rulers.js +0 -51
  20. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/closebrackets.js +0 -191
  21. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/closetag.js +0 -184
  22. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/continuelist.js +0 -99
  23. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/matchbrackets.js +0 -150
  24. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/matchtags.js +0 -66
  25. data/vendor/assets/javascripts/codemirror/5.49.2/addon/edit/trailingspace.js +0 -27
  26. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/brace-fold.js +0 -105
  27. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/comment-fold.js +0 -59
  28. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/foldcode.js +0 -152
  29. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/foldgutter.css +0 -20
  30. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/foldgutter.js +0 -163
  31. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/indent-fold.js +0 -48
  32. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/markdown-fold.js +0 -49
  33. data/vendor/assets/javascripts/codemirror/5.49.2/addon/fold/xml-fold.js +0 -184
  34. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/anyword-hint.js +0 -41
  35. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/css-hint.js +0 -60
  36. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/html-hint.js +0 -350
  37. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/javascript-hint.js +0 -157
  38. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/show-hint.css +0 -36
  39. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/show-hint.js +0 -460
  40. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/sql-hint.js +0 -304
  41. data/vendor/assets/javascripts/codemirror/5.49.2/addon/hint/xml-hint.js +0 -123
  42. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/coffeescript-lint.js +0 -47
  43. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/css-lint.js +0 -40
  44. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/html-lint.js +0 -59
  45. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/javascript-lint.js +0 -63
  46. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/json-lint.js +0 -40
  47. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/lint.css +0 -73
  48. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/lint.js +0 -252
  49. data/vendor/assets/javascripts/codemirror/5.49.2/addon/lint/yaml-lint.js +0 -41
  50. data/vendor/assets/javascripts/codemirror/5.49.2/addon/merge/merge.css +0 -119
  51. data/vendor/assets/javascripts/codemirror/5.49.2/addon/merge/merge.js +0 -1002
  52. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/loadmode.js +0 -64
  53. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/multiplex.js +0 -131
  54. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/multiplex_test.js +0 -33
  55. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/overlay.js +0 -90
  56. data/vendor/assets/javascripts/codemirror/5.49.2/addon/mode/simple.js +0 -216
  57. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/colorize.js +0 -40
  58. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/runmode-standalone.js +0 -158
  59. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/runmode.js +0 -72
  60. data/vendor/assets/javascripts/codemirror/5.49.2/addon/runmode/runmode.node.js +0 -197
  61. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/annotatescrollbar.js +0 -122
  62. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/scrollpastend.js +0 -48
  63. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/simplescrollbars.css +0 -66
  64. data/vendor/assets/javascripts/codemirror/5.49.2/addon/scroll/simplescrollbars.js +0 -152
  65. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/jump-to-line.js +0 -50
  66. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/match-highlighter.js +0 -165
  67. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/matchesonscrollbar.css +0 -8
  68. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/matchesonscrollbar.js +0 -97
  69. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/search.js +0 -260
  70. data/vendor/assets/javascripts/codemirror/5.49.2/addon/search/searchcursor.js +0 -293
  71. data/vendor/assets/javascripts/codemirror/5.49.2/addon/selection/active-line.js +0 -72
  72. data/vendor/assets/javascripts/codemirror/5.49.2/addon/selection/mark-selection.js +0 -119
  73. data/vendor/assets/javascripts/codemirror/5.49.2/addon/selection/selection-pointer.js +0 -98
  74. data/vendor/assets/javascripts/codemirror/5.49.2/addon/tern/tern.css +0 -87
  75. data/vendor/assets/javascripts/codemirror/5.49.2/addon/tern/tern.js +0 -718
  76. data/vendor/assets/javascripts/codemirror/5.49.2/addon/tern/worker.js +0 -44
  77. data/vendor/assets/javascripts/codemirror/5.49.2/addon/wrap/hardwrap.js +0 -145
  78. data/vendor/assets/javascripts/codemirror/5.49.2/lib/codemirror.js +0 -9783
  79. data/vendor/assets/javascripts/codemirror/5.49.2/mode/apl/apl.js +0 -174
  80. data/vendor/assets/javascripts/codemirror/5.49.2/mode/apl/index.html +0 -72
  81. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asciiarmor/asciiarmor.js +0 -74
  82. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asciiarmor/index.html +0 -46
  83. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asn.1/asn.1.js +0 -204
  84. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asn.1/index.html +0 -78
  85. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asterisk/asterisk.js +0 -220
  86. data/vendor/assets/javascripts/codemirror/5.49.2/mode/asterisk/index.html +0 -155
  87. data/vendor/assets/javascripts/codemirror/5.49.2/mode/brainfuck/brainfuck.js +0 -85
  88. data/vendor/assets/javascripts/codemirror/5.49.2/mode/brainfuck/index.html +0 -85
  89. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/clike.js +0 -935
  90. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/index.html +0 -380
  91. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/scala.html +0 -767
  92. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clike/test.js +0 -165
  93. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clojure/clojure.js +0 -292
  94. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clojure/index.html +0 -95
  95. data/vendor/assets/javascripts/codemirror/5.49.2/mode/clojure/test.js +0 -384
  96. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cmake/cmake.js +0 -97
  97. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cmake/index.html +0 -129
  98. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cobol/cobol.js +0 -255
  99. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cobol/index.html +0 -210
  100. data/vendor/assets/javascripts/codemirror/5.49.2/mode/coffeescript/coffeescript.js +0 -359
  101. data/vendor/assets/javascripts/codemirror/5.49.2/mode/coffeescript/index.html +0 -740
  102. data/vendor/assets/javascripts/codemirror/5.49.2/mode/commonlisp/commonlisp.js +0 -124
  103. data/vendor/assets/javascripts/codemirror/5.49.2/mode/commonlisp/index.html +0 -177
  104. data/vendor/assets/javascripts/codemirror/5.49.2/mode/crystal/crystal.js +0 -433
  105. data/vendor/assets/javascripts/codemirror/5.49.2/mode/crystal/index.html +0 -116
  106. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/css.js +0 -831
  107. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/gss.html +0 -104
  108. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/gss_test.js +0 -17
  109. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/index.html +0 -75
  110. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/less.html +0 -152
  111. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/less_test.js +0 -54
  112. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/scss.html +0 -158
  113. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/scss_test.js +0 -110
  114. data/vendor/assets/javascripts/codemirror/5.49.2/mode/css/test.js +0 -217
  115. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cypher/cypher.js +0 -150
  116. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cypher/index.html +0 -64
  117. data/vendor/assets/javascripts/codemirror/5.49.2/mode/cypher/test.js +0 -37
  118. data/vendor/assets/javascripts/codemirror/5.49.2/mode/d/d.js +0 -223
  119. data/vendor/assets/javascripts/codemirror/5.49.2/mode/d/index.html +0 -273
  120. data/vendor/assets/javascripts/codemirror/5.49.2/mode/d/test.js +0 -11
  121. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dart/dart.js +0 -166
  122. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dart/index.html +0 -71
  123. data/vendor/assets/javascripts/codemirror/5.49.2/mode/diff/diff.js +0 -47
  124. data/vendor/assets/javascripts/codemirror/5.49.2/mode/diff/index.html +0 -117
  125. data/vendor/assets/javascripts/codemirror/5.49.2/mode/django/django.js +0 -356
  126. data/vendor/assets/javascripts/codemirror/5.49.2/mode/django/index.html +0 -73
  127. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dockerfile/dockerfile.js +0 -211
  128. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dockerfile/index.html +0 -73
  129. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dockerfile/test.js +0 -128
  130. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dtd/dtd.js +0 -142
  131. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dtd/index.html +0 -89
  132. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dylan/dylan.js +0 -352
  133. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dylan/index.html +0 -407
  134. data/vendor/assets/javascripts/codemirror/5.49.2/mode/dylan/test.js +0 -88
  135. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ebnf/ebnf.js +0 -195
  136. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ebnf/index.html +0 -102
  137. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ecl/ecl.js +0 -206
  138. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ecl/index.html +0 -52
  139. data/vendor/assets/javascripts/codemirror/5.49.2/mode/eiffel/eiffel.js +0 -160
  140. data/vendor/assets/javascripts/codemirror/5.49.2/mode/eiffel/index.html +0 -429
  141. data/vendor/assets/javascripts/codemirror/5.49.2/mode/elm/elm.js +0 -205
  142. data/vendor/assets/javascripts/codemirror/5.49.2/mode/elm/index.html +0 -61
  143. data/vendor/assets/javascripts/codemirror/5.49.2/mode/erlang/erlang.js +0 -619
  144. data/vendor/assets/javascripts/codemirror/5.49.2/mode/erlang/index.html +0 -76
  145. data/vendor/assets/javascripts/codemirror/5.49.2/mode/factor/factor.js +0 -85
  146. data/vendor/assets/javascripts/codemirror/5.49.2/mode/factor/index.html +0 -77
  147. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fcl/fcl.js +0 -173
  148. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fcl/index.html +0 -108
  149. data/vendor/assets/javascripts/codemirror/5.49.2/mode/forth/forth.js +0 -180
  150. data/vendor/assets/javascripts/codemirror/5.49.2/mode/forth/index.html +0 -75
  151. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fortran/fortran.js +0 -188
  152. data/vendor/assets/javascripts/codemirror/5.49.2/mode/fortran/index.html +0 -81
  153. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gas/gas.js +0 -345
  154. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gas/index.html +0 -68
  155. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gfm/gfm.js +0 -129
  156. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gfm/index.html +0 -136
  157. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gfm/test.js +0 -198
  158. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gherkin/gherkin.js +0 -178
  159. data/vendor/assets/javascripts/codemirror/5.49.2/mode/gherkin/index.html +0 -48
  160. data/vendor/assets/javascripts/codemirror/5.49.2/mode/go/go.js +0 -187
  161. data/vendor/assets/javascripts/codemirror/5.49.2/mode/go/index.html +0 -85
  162. data/vendor/assets/javascripts/codemirror/5.49.2/mode/groovy/groovy.js +0 -233
  163. data/vendor/assets/javascripts/codemirror/5.49.2/mode/groovy/index.html +0 -84
  164. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haml/haml.js +0 -161
  165. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haml/index.html +0 -79
  166. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haml/test.js +0 -97
  167. data/vendor/assets/javascripts/codemirror/5.49.2/mode/handlebars/handlebars.js +0 -70
  168. data/vendor/assets/javascripts/codemirror/5.49.2/mode/handlebars/index.html +0 -82
  169. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell/haskell.js +0 -268
  170. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell/index.html +0 -73
  171. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell-literate/haskell-literate.js +0 -43
  172. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haskell-literate/index.html +0 -282
  173. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haxe/haxe.js +0 -515
  174. data/vendor/assets/javascripts/codemirror/5.49.2/mode/haxe/index.html +0 -124
  175. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlembedded/htmlembedded.js +0 -37
  176. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlembedded/index.html +0 -60
  177. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlmixed/htmlmixed.js +0 -152
  178. data/vendor/assets/javascripts/codemirror/5.49.2/mode/htmlmixed/index.html +0 -100
  179. data/vendor/assets/javascripts/codemirror/5.49.2/mode/http/http.js +0 -113
  180. data/vendor/assets/javascripts/codemirror/5.49.2/mode/http/index.html +0 -45
  181. data/vendor/assets/javascripts/codemirror/5.49.2/mode/idl/idl.js +0 -290
  182. data/vendor/assets/javascripts/codemirror/5.49.2/mode/idl/index.html +0 -65
  183. data/vendor/assets/javascripts/codemirror/5.49.2/mode/index.html +0 -165
  184. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/index.html +0 -114
  185. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/javascript.js +0 -930
  186. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/json-ld.html +0 -72
  187. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/test.js +0 -513
  188. data/vendor/assets/javascripts/codemirror/5.49.2/mode/javascript/typescript.html +0 -62
  189. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jinja2/index.html +0 -54
  190. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jinja2/jinja2.js +0 -146
  191. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jsx/index.html +0 -89
  192. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jsx/jsx.js +0 -148
  193. data/vendor/assets/javascripts/codemirror/5.49.2/mode/jsx/test.js +0 -91
  194. data/vendor/assets/javascripts/codemirror/5.49.2/mode/julia/index.html +0 -196
  195. data/vendor/assets/javascripts/codemirror/5.49.2/mode/julia/julia.js +0 -429
  196. data/vendor/assets/javascripts/codemirror/5.49.2/mode/livescript/index.html +0 -459
  197. data/vendor/assets/javascripts/codemirror/5.49.2/mode/livescript/livescript.js +0 -280
  198. data/vendor/assets/javascripts/codemirror/5.49.2/mode/lua/index.html +0 -85
  199. data/vendor/assets/javascripts/codemirror/5.49.2/mode/lua/lua.js +0 -159
  200. data/vendor/assets/javascripts/codemirror/5.49.2/mode/markdown/index.html +0 -412
  201. data/vendor/assets/javascripts/codemirror/5.49.2/mode/markdown/markdown.js +0 -883
  202. data/vendor/assets/javascripts/codemirror/5.49.2/mode/markdown/test.js +0 -1317
  203. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mathematica/index.html +0 -72
  204. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mathematica/mathematica.js +0 -176
  205. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mbox/index.html +0 -44
  206. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mbox/mbox.js +0 -129
  207. data/vendor/assets/javascripts/codemirror/5.49.2/mode/meta.js +0 -219
  208. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mirc/index.html +0 -161
  209. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mirc/mirc.js +0 -193
  210. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mllike/index.html +0 -198
  211. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mllike/mllike.js +0 -359
  212. data/vendor/assets/javascripts/codemirror/5.49.2/mode/modelica/index.html +0 -67
  213. data/vendor/assets/javascripts/codemirror/5.49.2/mode/modelica/modelica.js +0 -245
  214. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/index.html +0 -151
  215. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/mscgen.js +0 -175
  216. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/mscgen_test.js +0 -84
  217. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/msgenny_test.js +0 -77
  218. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mscgen/xu_test.js +0 -87
  219. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mumps/index.html +0 -85
  220. data/vendor/assets/javascripts/codemirror/5.49.2/mode/mumps/mumps.js +0 -148
  221. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nginx/index.html +0 -181
  222. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nginx/nginx.js +0 -178
  223. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nsis/index.html +0 -80
  224. data/vendor/assets/javascripts/codemirror/5.49.2/mode/nsis/nsis.js +0 -95
  225. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ntriples/index.html +0 -70
  226. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ntriples/ntriples.js +0 -195
  227. data/vendor/assets/javascripts/codemirror/5.49.2/mode/octave/index.html +0 -84
  228. data/vendor/assets/javascripts/codemirror/5.49.2/mode/octave/octave.js +0 -139
  229. data/vendor/assets/javascripts/codemirror/5.49.2/mode/oz/index.html +0 -59
  230. data/vendor/assets/javascripts/codemirror/5.49.2/mode/oz/oz.js +0 -252
  231. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pascal/index.html +0 -61
  232. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pascal/pascal.js +0 -121
  233. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pegjs/index.html +0 -66
  234. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pegjs/pegjs.js +0 -114
  235. data/vendor/assets/javascripts/codemirror/5.49.2/mode/perl/index.html +0 -75
  236. data/vendor/assets/javascripts/codemirror/5.49.2/mode/perl/perl.js +0 -837
  237. data/vendor/assets/javascripts/codemirror/5.49.2/mode/php/index.html +0 -64
  238. data/vendor/assets/javascripts/codemirror/5.49.2/mode/php/php.js +0 -234
  239. data/vendor/assets/javascripts/codemirror/5.49.2/mode/php/test.js +0 -154
  240. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pig/index.html +0 -53
  241. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pig/pig.js +0 -178
  242. data/vendor/assets/javascripts/codemirror/5.49.2/mode/powershell/index.html +0 -205
  243. data/vendor/assets/javascripts/codemirror/5.49.2/mode/powershell/powershell.js +0 -398
  244. data/vendor/assets/javascripts/codemirror/5.49.2/mode/powershell/test.js +0 -74
  245. data/vendor/assets/javascripts/codemirror/5.49.2/mode/properties/index.html +0 -53
  246. data/vendor/assets/javascripts/codemirror/5.49.2/mode/properties/properties.js +0 -78
  247. data/vendor/assets/javascripts/codemirror/5.49.2/mode/protobuf/index.html +0 -104
  248. data/vendor/assets/javascripts/codemirror/5.49.2/mode/protobuf/protobuf.js +0 -69
  249. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pug/index.html +0 -70
  250. data/vendor/assets/javascripts/codemirror/5.49.2/mode/pug/pug.js +0 -591
  251. data/vendor/assets/javascripts/codemirror/5.49.2/mode/puppet/index.html +0 -121
  252. data/vendor/assets/javascripts/codemirror/5.49.2/mode/puppet/puppet.js +0 -220
  253. data/vendor/assets/javascripts/codemirror/5.49.2/mode/python/index.html +0 -207
  254. data/vendor/assets/javascripts/codemirror/5.49.2/mode/python/python.js +0 -399
  255. data/vendor/assets/javascripts/codemirror/5.49.2/mode/python/test.js +0 -44
  256. data/vendor/assets/javascripts/codemirror/5.49.2/mode/q/index.html +0 -144
  257. data/vendor/assets/javascripts/codemirror/5.49.2/mode/q/q.js +0 -139
  258. data/vendor/assets/javascripts/codemirror/5.49.2/mode/r/index.html +0 -88
  259. data/vendor/assets/javascripts/codemirror/5.49.2/mode/r/r.js +0 -190
  260. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rpm/changes/index.html +0 -66
  261. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rpm/index.html +0 -149
  262. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rpm/rpm.js +0 -109
  263. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rst/index.html +0 -535
  264. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rst/rst.js +0 -557
  265. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ruby/index.html +0 -183
  266. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ruby/ruby.js +0 -298
  267. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ruby/test.js +0 -23
  268. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rust/index.html +0 -64
  269. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rust/rust.js +0 -72
  270. data/vendor/assets/javascripts/codemirror/5.49.2/mode/rust/test.js +0 -39
  271. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sas/index.html +0 -81
  272. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sas/sas.js +0 -303
  273. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sass/index.html +0 -68
  274. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sass/sass.js +0 -454
  275. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sass/test.js +0 -122
  276. data/vendor/assets/javascripts/codemirror/5.49.2/mode/scheme/index.html +0 -77
  277. data/vendor/assets/javascripts/codemirror/5.49.2/mode/scheme/scheme.js +0 -265
  278. data/vendor/assets/javascripts/codemirror/5.49.2/mode/shell/index.html +0 -66
  279. data/vendor/assets/javascripts/codemirror/5.49.2/mode/shell/shell.js +0 -152
  280. data/vendor/assets/javascripts/codemirror/5.49.2/mode/shell/test.js +0 -73
  281. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sieve/index.html +0 -93
  282. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sieve/sieve.js +0 -193
  283. data/vendor/assets/javascripts/codemirror/5.49.2/mode/slim/index.html +0 -96
  284. data/vendor/assets/javascripts/codemirror/5.49.2/mode/slim/slim.js +0 -575
  285. data/vendor/assets/javascripts/codemirror/5.49.2/mode/slim/test.js +0 -96
  286. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smalltalk/index.html +0 -68
  287. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smalltalk/smalltalk.js +0 -168
  288. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smarty/index.html +0 -138
  289. data/vendor/assets/javascripts/codemirror/5.49.2/mode/smarty/smarty.js +0 -225
  290. data/vendor/assets/javascripts/codemirror/5.49.2/mode/solr/index.html +0 -57
  291. data/vendor/assets/javascripts/codemirror/5.49.2/mode/solr/solr.js +0 -104
  292. data/vendor/assets/javascripts/codemirror/5.49.2/mode/soy/index.html +0 -68
  293. data/vendor/assets/javascripts/codemirror/5.49.2/mode/soy/soy.js +0 -437
  294. data/vendor/assets/javascripts/codemirror/5.49.2/mode/soy/test.js +0 -204
  295. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sparql/index.html +0 -61
  296. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sparql/sparql.js +0 -180
  297. data/vendor/assets/javascripts/codemirror/5.49.2/mode/spreadsheet/index.html +0 -42
  298. data/vendor/assets/javascripts/codemirror/5.49.2/mode/spreadsheet/spreadsheet.js +0 -112
  299. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sql/index.html +0 -89
  300. data/vendor/assets/javascripts/codemirror/5.49.2/mode/sql/sql.js +0 -494
  301. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stex/index.html +0 -116
  302. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stex/stex.js +0 -264
  303. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stex/test.js +0 -132
  304. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stylus/index.html +0 -106
  305. data/vendor/assets/javascripts/codemirror/5.49.2/mode/stylus/stylus.js +0 -771
  306. data/vendor/assets/javascripts/codemirror/5.49.2/mode/swift/index.html +0 -70
  307. data/vendor/assets/javascripts/codemirror/5.49.2/mode/swift/swift.js +0 -223
  308. data/vendor/assets/javascripts/codemirror/5.49.2/mode/swift/test.js +0 -162
  309. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tcl/index.html +0 -142
  310. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tcl/tcl.js +0 -139
  311. data/vendor/assets/javascripts/codemirror/5.49.2/mode/textile/index.html +0 -191
  312. data/vendor/assets/javascripts/codemirror/5.49.2/mode/textile/test.js +0 -417
  313. data/vendor/assets/javascripts/codemirror/5.49.2/mode/textile/textile.js +0 -469
  314. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiddlywiki/index.html +0 -154
  315. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiddlywiki/tiddlywiki.css +0 -14
  316. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiddlywiki/tiddlywiki.js +0 -308
  317. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiki/index.html +0 -95
  318. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiki/tiki.css +0 -26
  319. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tiki/tiki.js +0 -312
  320. data/vendor/assets/javascripts/codemirror/5.49.2/mode/toml/index.html +0 -73
  321. data/vendor/assets/javascripts/codemirror/5.49.2/mode/toml/toml.js +0 -88
  322. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tornado/index.html +0 -63
  323. data/vendor/assets/javascripts/codemirror/5.49.2/mode/tornado/tornado.js +0 -68
  324. data/vendor/assets/javascripts/codemirror/5.49.2/mode/troff/index.html +0 -146
  325. data/vendor/assets/javascripts/codemirror/5.49.2/mode/troff/troff.js +0 -84
  326. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn/index.html +0 -119
  327. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn/ttcn.js +0 -283
  328. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn-cfg/index.html +0 -116
  329. data/vendor/assets/javascripts/codemirror/5.49.2/mode/ttcn-cfg/ttcn-cfg.js +0 -214
  330. data/vendor/assets/javascripts/codemirror/5.49.2/mode/turtle/index.html +0 -51
  331. data/vendor/assets/javascripts/codemirror/5.49.2/mode/turtle/turtle.js +0 -162
  332. data/vendor/assets/javascripts/codemirror/5.49.2/mode/twig/index.html +0 -45
  333. data/vendor/assets/javascripts/codemirror/5.49.2/mode/twig/twig.js +0 -141
  334. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vb/index.html +0 -49
  335. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vb/vb.js +0 -275
  336. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vbscript/index.html +0 -55
  337. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vbscript/vbscript.js +0 -350
  338. data/vendor/assets/javascripts/codemirror/5.49.2/mode/velocity/index.html +0 -120
  339. data/vendor/assets/javascripts/codemirror/5.49.2/mode/velocity/velocity.js +0 -201
  340. data/vendor/assets/javascripts/codemirror/5.49.2/mode/verilog/index.html +0 -120
  341. data/vendor/assets/javascripts/codemirror/5.49.2/mode/verilog/test.js +0 -273
  342. data/vendor/assets/javascripts/codemirror/5.49.2/mode/verilog/verilog.js +0 -675
  343. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vhdl/index.html +0 -95
  344. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vhdl/vhdl.js +0 -189
  345. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vue/index.html +0 -69
  346. data/vendor/assets/javascripts/codemirror/5.49.2/mode/vue/vue.js +0 -77
  347. data/vendor/assets/javascripts/codemirror/5.49.2/mode/webidl/index.html +0 -71
  348. data/vendor/assets/javascripts/codemirror/5.49.2/mode/webidl/webidl.js +0 -195
  349. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xml/index.html +0 -61
  350. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xml/test.js +0 -51
  351. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xml/xml.js +0 -413
  352. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xquery/index.html +0 -211
  353. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xquery/test.js +0 -67
  354. data/vendor/assets/javascripts/codemirror/5.49.2/mode/xquery/xquery.js +0 -448
  355. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yacas/index.html +0 -87
  356. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yacas/yacas.js +0 -204
  357. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml/index.html +0 -80
  358. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml/yaml.js +0 -120
  359. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml-frontmatter/index.html +0 -121
  360. data/vendor/assets/javascripts/codemirror/5.49.2/mode/yaml-frontmatter/yaml-frontmatter.js +0 -68
  361. data/vendor/assets/javascripts/codemirror/5.49.2/mode/z80/index.html +0 -53
  362. data/vendor/assets/javascripts/codemirror/5.49.2/mode/z80/z80.js +0 -116
  363. data/vendor/assets/stylesheets/codemirror/5.49.2/lib/codemirror.css +0 -349
  364. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/3024-day.css +0 -41
  365. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/3024-night.css +0 -39
  366. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/abcdef.css +0 -32
  367. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ambiance-mobile.css +0 -5
  368. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ambiance.css +0 -74
  369. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/base16-dark.css +0 -38
  370. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/base16-light.css +0 -38
  371. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/bespin.css +0 -34
  372. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/blackboard.css +0 -32
  373. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/cobalt.css +0 -25
  374. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/colorforth.css +0 -33
  375. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/darcula.css +0 -53
  376. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/dracula.css +0 -40
  377. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/duotone-dark.css +0 -35
  378. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/duotone-light.css +0 -36
  379. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/eclipse.css +0 -23
  380. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/elegant.css +0 -13
  381. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/erlang-dark.css +0 -34
  382. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/gruvbox-dark.css +0 -37
  383. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/hopscotch.css +0 -34
  384. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/icecoder.css +0 -43
  385. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/idea.css +0 -42
  386. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/isotope.css +0 -34
  387. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/lesser-dark.css +0 -47
  388. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/liquibyte.css +0 -95
  389. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/lucario.css +0 -37
  390. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material-darker.css +0 -135
  391. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material-ocean.css +0 -135
  392. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material-palenight.css +0 -135
  393. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/material.css +0 -135
  394. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/mbo.css +0 -37
  395. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/mdn-like.css +0 -46
  396. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/midnight.css +0 -39
  397. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/monokai.css +0 -41
  398. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/moxer.css +0 -143
  399. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/neat.css +0 -12
  400. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/neo.css +0 -43
  401. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/night.css +0 -27
  402. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/nord.css +0 -42
  403. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/oceanic-next.css +0 -44
  404. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/panda-syntax.css +0 -85
  405. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/paraiso-dark.css +0 -38
  406. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/paraiso-light.css +0 -38
  407. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/pastel-on-dark.css +0 -52
  408. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/railscasts.css +0 -34
  409. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/rubyblue.css +0 -25
  410. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/seti.css +0 -44
  411. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/shadowfox.css +0 -52
  412. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/solarized.css +0 -168
  413. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ssms.css +0 -16
  414. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/the-matrix.css +0 -30
  415. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/tomorrow-night-bright.css +0 -35
  416. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/tomorrow-night-eighties.css +0 -38
  417. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/ttcn.css +0 -64
  418. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/twilight.css +0 -32
  419. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/vibrant-ink.css +0 -34
  420. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/xq-dark.css +0 -53
  421. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/xq-light.css +0 -43
  422. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/yeti.css +0 -44
  423. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/yonce.css +0 -59
  424. data/vendor/assets/stylesheets/codemirror/5.49.2/theme/zenburn.css +0 -37
@@ -1,718 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: https://codemirror.net/LICENSE
3
-
4
- // Glue code between CodeMirror and Tern.
5
- //
6
- // Create a CodeMirror.TernServer to wrap an actual Tern server,
7
- // register open documents (CodeMirror.Doc instances) with it, and
8
- // call its methods to activate the assisting functions that Tern
9
- // provides.
10
- //
11
- // Options supported (all optional):
12
- // * defs: An array of JSON definition data structures.
13
- // * plugins: An object mapping plugin names to configuration
14
- // options.
15
- // * getFile: A function(name, c) that can be used to access files in
16
- // the project that haven't been loaded yet. Simply do c(null) to
17
- // indicate that a file is not available.
18
- // * fileFilter: A function(value, docName, doc) that will be applied
19
- // to documents before passing them on to Tern.
20
- // * switchToDoc: A function(name, doc) that should, when providing a
21
- // multi-file view, switch the view or focus to the named file.
22
- // * showError: A function(editor, message) that can be used to
23
- // override the way errors are displayed.
24
- // * completionTip: Customize the content in tooltips for completions.
25
- // Is passed a single argument—the completion's data as returned by
26
- // Tern—and may return a string, DOM node, or null to indicate that
27
- // no tip should be shown. By default the docstring is shown.
28
- // * typeTip: Like completionTip, but for the tooltips shown for type
29
- // queries.
30
- // * responseFilter: A function(doc, query, request, error, data) that
31
- // will be applied to the Tern responses before treating them
32
- //
33
- //
34
- // It is possible to run the Tern server in a web worker by specifying
35
- // these additional options:
36
- // * useWorker: Set to true to enable web worker mode. You'll probably
37
- // want to feature detect the actual value you use here, for example
38
- // !!window.Worker.
39
- // * workerScript: The main script of the worker. Point this to
40
- // wherever you are hosting worker.js from this directory.
41
- // * workerDeps: An array of paths pointing (relative to workerScript)
42
- // to the Acorn and Tern libraries and any Tern plugins you want to
43
- // load. Or, if you minified those into a single script and included
44
- // them in the workerScript, simply leave this undefined.
45
-
46
- (function(mod) {
47
- if (typeof exports == "object" && typeof module == "object") // CommonJS
48
- mod(require("../../lib/codemirror"));
49
- else if (typeof define == "function" && define.amd) // AMD
50
- define(["../../lib/codemirror"], mod);
51
- else // Plain browser env
52
- mod(CodeMirror);
53
- })(function(CodeMirror) {
54
- "use strict";
55
- // declare global: tern
56
-
57
- CodeMirror.TernServer = function(options) {
58
- var self = this;
59
- this.options = options || {};
60
- var plugins = this.options.plugins || (this.options.plugins = {});
61
- if (!plugins.doc_comment) plugins.doc_comment = true;
62
- this.docs = Object.create(null);
63
- if (this.options.useWorker) {
64
- this.server = new WorkerServer(this);
65
- } else {
66
- this.server = new tern.Server({
67
- getFile: function(name, c) { return getFile(self, name, c); },
68
- async: true,
69
- defs: this.options.defs || [],
70
- plugins: plugins
71
- });
72
- }
73
- this.trackChange = function(doc, change) { trackChange(self, doc, change); };
74
-
75
- this.cachedArgHints = null;
76
- this.activeArgHints = null;
77
- this.jumpStack = [];
78
-
79
- this.getHint = function(cm, c) { return hint(self, cm, c); };
80
- this.getHint.async = true;
81
- };
82
-
83
- CodeMirror.TernServer.prototype = {
84
- addDoc: function(name, doc) {
85
- var data = {doc: doc, name: name, changed: null};
86
- this.server.addFile(name, docValue(this, data));
87
- CodeMirror.on(doc, "change", this.trackChange);
88
- return this.docs[name] = data;
89
- },
90
-
91
- delDoc: function(id) {
92
- var found = resolveDoc(this, id);
93
- if (!found) return;
94
- CodeMirror.off(found.doc, "change", this.trackChange);
95
- delete this.docs[found.name];
96
- this.server.delFile(found.name);
97
- },
98
-
99
- hideDoc: function(id) {
100
- closeArgHints(this);
101
- var found = resolveDoc(this, id);
102
- if (found && found.changed) sendDoc(this, found);
103
- },
104
-
105
- complete: function(cm) {
106
- cm.showHint({hint: this.getHint});
107
- },
108
-
109
- showType: function(cm, pos, c) { showContextInfo(this, cm, pos, "type", c); },
110
-
111
- showDocs: function(cm, pos, c) { showContextInfo(this, cm, pos, "documentation", c); },
112
-
113
- updateArgHints: function(cm) { updateArgHints(this, cm); },
114
-
115
- jumpToDef: function(cm) { jumpToDef(this, cm); },
116
-
117
- jumpBack: function(cm) { jumpBack(this, cm); },
118
-
119
- rename: function(cm) { rename(this, cm); },
120
-
121
- selectName: function(cm) { selectName(this, cm); },
122
-
123
- request: function (cm, query, c, pos) {
124
- var self = this;
125
- var doc = findDoc(this, cm.getDoc());
126
- var request = buildRequest(this, doc, query, pos);
127
- var extraOptions = request.query && this.options.queryOptions && this.options.queryOptions[request.query.type]
128
- if (extraOptions) for (var prop in extraOptions) request.query[prop] = extraOptions[prop];
129
-
130
- this.server.request(request, function (error, data) {
131
- if (!error && self.options.responseFilter)
132
- data = self.options.responseFilter(doc, query, request, error, data);
133
- c(error, data);
134
- });
135
- },
136
-
137
- destroy: function () {
138
- closeArgHints(this)
139
- if (this.worker) {
140
- this.worker.terminate();
141
- this.worker = null;
142
- }
143
- }
144
- };
145
-
146
- var Pos = CodeMirror.Pos;
147
- var cls = "CodeMirror-Tern-";
148
- var bigDoc = 250;
149
-
150
- function getFile(ts, name, c) {
151
- var buf = ts.docs[name];
152
- if (buf)
153
- c(docValue(ts, buf));
154
- else if (ts.options.getFile)
155
- ts.options.getFile(name, c);
156
- else
157
- c(null);
158
- }
159
-
160
- function findDoc(ts, doc, name) {
161
- for (var n in ts.docs) {
162
- var cur = ts.docs[n];
163
- if (cur.doc == doc) return cur;
164
- }
165
- if (!name) for (var i = 0;; ++i) {
166
- n = "[doc" + (i || "") + "]";
167
- if (!ts.docs[n]) { name = n; break; }
168
- }
169
- return ts.addDoc(name, doc);
170
- }
171
-
172
- function resolveDoc(ts, id) {
173
- if (typeof id == "string") return ts.docs[id];
174
- if (id instanceof CodeMirror) id = id.getDoc();
175
- if (id instanceof CodeMirror.Doc) return findDoc(ts, id);
176
- }
177
-
178
- function trackChange(ts, doc, change) {
179
- var data = findDoc(ts, doc);
180
-
181
- var argHints = ts.cachedArgHints;
182
- if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) >= 0)
183
- ts.cachedArgHints = null;
184
-
185
- var changed = data.changed;
186
- if (changed == null)
187
- data.changed = changed = {from: change.from.line, to: change.from.line};
188
- var end = change.from.line + (change.text.length - 1);
189
- if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end);
190
- if (end >= changed.to) changed.to = end + 1;
191
- if (changed.from > change.from.line) changed.from = change.from.line;
192
-
193
- if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() {
194
- if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data);
195
- }, 200);
196
- }
197
-
198
- function sendDoc(ts, doc) {
199
- ts.server.request({files: [{type: "full", name: doc.name, text: docValue(ts, doc)}]}, function(error) {
200
- if (error) window.console.error(error);
201
- else doc.changed = null;
202
- });
203
- }
204
-
205
- // Completion
206
-
207
- function hint(ts, cm, c) {
208
- ts.request(cm, {type: "completions", types: true, docs: true, urls: true}, function(error, data) {
209
- if (error) return showError(ts, cm, error);
210
- var completions = [], after = "";
211
- var from = data.start, to = data.end;
212
- if (cm.getRange(Pos(from.line, from.ch - 2), from) == "[\"" &&
213
- cm.getRange(to, Pos(to.line, to.ch + 2)) != "\"]")
214
- after = "\"]";
215
-
216
- for (var i = 0; i < data.completions.length; ++i) {
217
- var completion = data.completions[i], className = typeToIcon(completion.type);
218
- if (data.guess) className += " " + cls + "guess";
219
- completions.push({text: completion.name + after,
220
- displayText: completion.displayName || completion.name,
221
- className: className,
222
- data: completion});
223
- }
224
-
225
- var obj = {from: from, to: to, list: completions};
226
- var tooltip = null;
227
- CodeMirror.on(obj, "close", function() { remove(tooltip); });
228
- CodeMirror.on(obj, "update", function() { remove(tooltip); });
229
- CodeMirror.on(obj, "select", function(cur, node) {
230
- remove(tooltip);
231
- var content = ts.options.completionTip ? ts.options.completionTip(cur.data) : cur.data.doc;
232
- if (content) {
233
- tooltip = makeTooltip(node.parentNode.getBoundingClientRect().right + window.pageXOffset,
234
- node.getBoundingClientRect().top + window.pageYOffset, content);
235
- tooltip.className += " " + cls + "hint-doc";
236
- }
237
- });
238
- c(obj);
239
- });
240
- }
241
-
242
- function typeToIcon(type) {
243
- var suffix;
244
- if (type == "?") suffix = "unknown";
245
- else if (type == "number" || type == "string" || type == "bool") suffix = type;
246
- else if (/^fn\(/.test(type)) suffix = "fn";
247
- else if (/^\[/.test(type)) suffix = "array";
248
- else suffix = "object";
249
- return cls + "completion " + cls + "completion-" + suffix;
250
- }
251
-
252
- // Type queries
253
-
254
- function showContextInfo(ts, cm, pos, queryName, c) {
255
- ts.request(cm, queryName, function(error, data) {
256
- if (error) return showError(ts, cm, error);
257
- if (ts.options.typeTip) {
258
- var tip = ts.options.typeTip(data);
259
- } else {
260
- var tip = elt("span", null, elt("strong", null, data.type || "not found"));
261
- if (data.doc)
262
- tip.appendChild(document.createTextNode(" — " + data.doc));
263
- if (data.url) {
264
- tip.appendChild(document.createTextNode(" "));
265
- var child = tip.appendChild(elt("a", null, "[docs]"));
266
- child.href = data.url;
267
- child.target = "_blank";
268
- }
269
- }
270
- tempTooltip(cm, tip, ts);
271
- if (c) c();
272
- }, pos);
273
- }
274
-
275
- // Maintaining argument hints
276
-
277
- function updateArgHints(ts, cm) {
278
- closeArgHints(ts);
279
-
280
- if (cm.somethingSelected()) return;
281
- var state = cm.getTokenAt(cm.getCursor()).state;
282
- var inner = CodeMirror.innerMode(cm.getMode(), state);
283
- if (inner.mode.name != "javascript") return;
284
- var lex = inner.state.lexical;
285
- if (lex.info != "call") return;
286
-
287
- var ch, argPos = lex.pos || 0, tabSize = cm.getOption("tabSize");
288
- for (var line = cm.getCursor().line, e = Math.max(0, line - 9), found = false; line >= e; --line) {
289
- var str = cm.getLine(line), extra = 0;
290
- for (var pos = 0;;) {
291
- var tab = str.indexOf("\t", pos);
292
- if (tab == -1) break;
293
- extra += tabSize - (tab + extra) % tabSize - 1;
294
- pos = tab + 1;
295
- }
296
- ch = lex.column - extra;
297
- if (str.charAt(ch) == "(") {found = true; break;}
298
- }
299
- if (!found) return;
300
-
301
- var start = Pos(line, ch);
302
- var cache = ts.cachedArgHints;
303
- if (cache && cache.doc == cm.getDoc() && cmpPos(start, cache.start) == 0)
304
- return showArgHints(ts, cm, argPos);
305
-
306
- ts.request(cm, {type: "type", preferFunction: true, end: start}, function(error, data) {
307
- if (error || !data.type || !(/^fn\(/).test(data.type)) return;
308
- ts.cachedArgHints = {
309
- start: start,
310
- type: parseFnType(data.type),
311
- name: data.exprName || data.name || "fn",
312
- guess: data.guess,
313
- doc: cm.getDoc()
314
- };
315
- showArgHints(ts, cm, argPos);
316
- });
317
- }
318
-
319
- function showArgHints(ts, cm, pos) {
320
- closeArgHints(ts);
321
-
322
- var cache = ts.cachedArgHints, tp = cache.type;
323
- var tip = elt("span", cache.guess ? cls + "fhint-guess" : null,
324
- elt("span", cls + "fname", cache.name), "(");
325
- for (var i = 0; i < tp.args.length; ++i) {
326
- if (i) tip.appendChild(document.createTextNode(", "));
327
- var arg = tp.args[i];
328
- tip.appendChild(elt("span", cls + "farg" + (i == pos ? " " + cls + "farg-current" : ""), arg.name || "?"));
329
- if (arg.type != "?") {
330
- tip.appendChild(document.createTextNode(":\u00a0"));
331
- tip.appendChild(elt("span", cls + "type", arg.type));
332
- }
333
- }
334
- tip.appendChild(document.createTextNode(tp.rettype ? ") ->\u00a0" : ")"));
335
- if (tp.rettype) tip.appendChild(elt("span", cls + "type", tp.rettype));
336
- var place = cm.cursorCoords(null, "page");
337
- var tooltip = ts.activeArgHints = makeTooltip(place.right + 1, place.bottom, tip)
338
- setTimeout(function() {
339
- tooltip.clear = onEditorActivity(cm, function() {
340
- if (ts.activeArgHints == tooltip) closeArgHints(ts) })
341
- }, 20)
342
- }
343
-
344
- function parseFnType(text) {
345
- var args = [], pos = 3;
346
-
347
- function skipMatching(upto) {
348
- var depth = 0, start = pos;
349
- for (;;) {
350
- var next = text.charAt(pos);
351
- if (upto.test(next) && !depth) return text.slice(start, pos);
352
- if (/[{\[\(]/.test(next)) ++depth;
353
- else if (/[}\]\)]/.test(next)) --depth;
354
- ++pos;
355
- }
356
- }
357
-
358
- // Parse arguments
359
- if (text.charAt(pos) != ")") for (;;) {
360
- var name = text.slice(pos).match(/^([^, \(\[\{]+): /);
361
- if (name) {
362
- pos += name[0].length;
363
- name = name[1];
364
- }
365
- args.push({name: name, type: skipMatching(/[\),]/)});
366
- if (text.charAt(pos) == ")") break;
367
- pos += 2;
368
- }
369
-
370
- var rettype = text.slice(pos).match(/^\) -> (.*)$/);
371
-
372
- return {args: args, rettype: rettype && rettype[1]};
373
- }
374
-
375
- // Moving to the definition of something
376
-
377
- function jumpToDef(ts, cm) {
378
- function inner(varName) {
379
- var req = {type: "definition", variable: varName || null};
380
- var doc = findDoc(ts, cm.getDoc());
381
- ts.server.request(buildRequest(ts, doc, req), function(error, data) {
382
- if (error) return showError(ts, cm, error);
383
- if (!data.file && data.url) { window.open(data.url); return; }
384
-
385
- if (data.file) {
386
- var localDoc = ts.docs[data.file], found;
387
- if (localDoc && (found = findContext(localDoc.doc, data))) {
388
- ts.jumpStack.push({file: doc.name,
389
- start: cm.getCursor("from"),
390
- end: cm.getCursor("to")});
391
- moveTo(ts, doc, localDoc, found.start, found.end);
392
- return;
393
- }
394
- }
395
- showError(ts, cm, "Could not find a definition.");
396
- });
397
- }
398
-
399
- if (!atInterestingExpression(cm))
400
- dialog(cm, "Jump to variable", function(name) { if (name) inner(name); });
401
- else
402
- inner();
403
- }
404
-
405
- function jumpBack(ts, cm) {
406
- var pos = ts.jumpStack.pop(), doc = pos && ts.docs[pos.file];
407
- if (!doc) return;
408
- moveTo(ts, findDoc(ts, cm.getDoc()), doc, pos.start, pos.end);
409
- }
410
-
411
- function moveTo(ts, curDoc, doc, start, end) {
412
- doc.doc.setSelection(start, end);
413
- if (curDoc != doc && ts.options.switchToDoc) {
414
- closeArgHints(ts);
415
- ts.options.switchToDoc(doc.name, doc.doc);
416
- }
417
- }
418
-
419
- // The {line,ch} representation of positions makes this rather awkward.
420
- function findContext(doc, data) {
421
- var before = data.context.slice(0, data.contextOffset).split("\n");
422
- var startLine = data.start.line - (before.length - 1);
423
- var start = Pos(startLine, (before.length == 1 ? data.start.ch : doc.getLine(startLine).length) - before[0].length);
424
-
425
- var text = doc.getLine(startLine).slice(start.ch);
426
- for (var cur = startLine + 1; cur < doc.lineCount() && text.length < data.context.length; ++cur)
427
- text += "\n" + doc.getLine(cur);
428
- if (text.slice(0, data.context.length) == data.context) return data;
429
-
430
- var cursor = doc.getSearchCursor(data.context, 0, false);
431
- var nearest, nearestDist = Infinity;
432
- while (cursor.findNext()) {
433
- var from = cursor.from(), dist = Math.abs(from.line - start.line) * 10000;
434
- if (!dist) dist = Math.abs(from.ch - start.ch);
435
- if (dist < nearestDist) { nearest = from; nearestDist = dist; }
436
- }
437
- if (!nearest) return null;
438
-
439
- if (before.length == 1)
440
- nearest.ch += before[0].length;
441
- else
442
- nearest = Pos(nearest.line + (before.length - 1), before[before.length - 1].length);
443
- if (data.start.line == data.end.line)
444
- var end = Pos(nearest.line, nearest.ch + (data.end.ch - data.start.ch));
445
- else
446
- var end = Pos(nearest.line + (data.end.line - data.start.line), data.end.ch);
447
- return {start: nearest, end: end};
448
- }
449
-
450
- function atInterestingExpression(cm) {
451
- var pos = cm.getCursor("end"), tok = cm.getTokenAt(pos);
452
- if (tok.start < pos.ch && tok.type == "comment") return false;
453
- return /[\w)\]]/.test(cm.getLine(pos.line).slice(Math.max(pos.ch - 1, 0), pos.ch + 1));
454
- }
455
-
456
- // Variable renaming
457
-
458
- function rename(ts, cm) {
459
- var token = cm.getTokenAt(cm.getCursor());
460
- if (!/\w/.test(token.string)) return showError(ts, cm, "Not at a variable");
461
- dialog(cm, "New name for " + token.string, function(newName) {
462
- ts.request(cm, {type: "rename", newName: newName, fullDocs: true}, function(error, data) {
463
- if (error) return showError(ts, cm, error);
464
- applyChanges(ts, data.changes);
465
- });
466
- });
467
- }
468
-
469
- function selectName(ts, cm) {
470
- var name = findDoc(ts, cm.doc).name;
471
- ts.request(cm, {type: "refs"}, function(error, data) {
472
- if (error) return showError(ts, cm, error);
473
- var ranges = [], cur = 0;
474
- var curPos = cm.getCursor();
475
- for (var i = 0; i < data.refs.length; i++) {
476
- var ref = data.refs[i];
477
- if (ref.file == name) {
478
- ranges.push({anchor: ref.start, head: ref.end});
479
- if (cmpPos(curPos, ref.start) >= 0 && cmpPos(curPos, ref.end) <= 0)
480
- cur = ranges.length - 1;
481
- }
482
- }
483
- cm.setSelections(ranges, cur);
484
- });
485
- }
486
-
487
- var nextChangeOrig = 0;
488
- function applyChanges(ts, changes) {
489
- var perFile = Object.create(null);
490
- for (var i = 0; i < changes.length; ++i) {
491
- var ch = changes[i];
492
- (perFile[ch.file] || (perFile[ch.file] = [])).push(ch);
493
- }
494
- for (var file in perFile) {
495
- var known = ts.docs[file], chs = perFile[file];;
496
- if (!known) continue;
497
- chs.sort(function(a, b) { return cmpPos(b.start, a.start); });
498
- var origin = "*rename" + (++nextChangeOrig);
499
- for (var i = 0; i < chs.length; ++i) {
500
- var ch = chs[i];
501
- known.doc.replaceRange(ch.text, ch.start, ch.end, origin);
502
- }
503
- }
504
- }
505
-
506
- // Generic request-building helper
507
-
508
- function buildRequest(ts, doc, query, pos) {
509
- var files = [], offsetLines = 0, allowFragments = !query.fullDocs;
510
- if (!allowFragments) delete query.fullDocs;
511
- if (typeof query == "string") query = {type: query};
512
- query.lineCharPositions = true;
513
- if (query.end == null) {
514
- query.end = pos || doc.doc.getCursor("end");
515
- if (doc.doc.somethingSelected())
516
- query.start = doc.doc.getCursor("start");
517
- }
518
- var startPos = query.start || query.end;
519
-
520
- if (doc.changed) {
521
- if (doc.doc.lineCount() > bigDoc && allowFragments !== false &&
522
- doc.changed.to - doc.changed.from < 100 &&
523
- doc.changed.from <= startPos.line && doc.changed.to > query.end.line) {
524
- files.push(getFragmentAround(doc, startPos, query.end));
525
- query.file = "#0";
526
- var offsetLines = files[0].offsetLines;
527
- if (query.start != null) query.start = Pos(query.start.line - -offsetLines, query.start.ch);
528
- query.end = Pos(query.end.line - offsetLines, query.end.ch);
529
- } else {
530
- files.push({type: "full",
531
- name: doc.name,
532
- text: docValue(ts, doc)});
533
- query.file = doc.name;
534
- doc.changed = null;
535
- }
536
- } else {
537
- query.file = doc.name;
538
- }
539
- for (var name in ts.docs) {
540
- var cur = ts.docs[name];
541
- if (cur.changed && cur != doc) {
542
- files.push({type: "full", name: cur.name, text: docValue(ts, cur)});
543
- cur.changed = null;
544
- }
545
- }
546
-
547
- return {query: query, files: files};
548
- }
549
-
550
- function getFragmentAround(data, start, end) {
551
- var doc = data.doc;
552
- var minIndent = null, minLine = null, endLine, tabSize = 4;
553
- for (var p = start.line - 1, min = Math.max(0, p - 50); p >= min; --p) {
554
- var line = doc.getLine(p), fn = line.search(/\bfunction\b/);
555
- if (fn < 0) continue;
556
- var indent = CodeMirror.countColumn(line, null, tabSize);
557
- if (minIndent != null && minIndent <= indent) continue;
558
- minIndent = indent;
559
- minLine = p;
560
- }
561
- if (minLine == null) minLine = min;
562
- var max = Math.min(doc.lastLine(), end.line + 20);
563
- if (minIndent == null || minIndent == CodeMirror.countColumn(doc.getLine(start.line), null, tabSize))
564
- endLine = max;
565
- else for (endLine = end.line + 1; endLine < max; ++endLine) {
566
- var indent = CodeMirror.countColumn(doc.getLine(endLine), null, tabSize);
567
- if (indent <= minIndent) break;
568
- }
569
- var from = Pos(minLine, 0);
570
-
571
- return {type: "part",
572
- name: data.name,
573
- offsetLines: from.line,
574
- text: doc.getRange(from, Pos(endLine, end.line == endLine ? null : 0))};
575
- }
576
-
577
- // Generic utilities
578
-
579
- var cmpPos = CodeMirror.cmpPos;
580
-
581
- function elt(tagname, cls /*, ... elts*/) {
582
- var e = document.createElement(tagname);
583
- if (cls) e.className = cls;
584
- for (var i = 2; i < arguments.length; ++i) {
585
- var elt = arguments[i];
586
- if (typeof elt == "string") elt = document.createTextNode(elt);
587
- e.appendChild(elt);
588
- }
589
- return e;
590
- }
591
-
592
- function dialog(cm, text, f) {
593
- if (cm.openDialog)
594
- cm.openDialog(text + ": <input type=text>", f);
595
- else
596
- f(prompt(text, ""));
597
- }
598
-
599
- // Tooltips
600
-
601
- function tempTooltip(cm, content, ts) {
602
- if (cm.state.ternTooltip) remove(cm.state.ternTooltip);
603
- var where = cm.cursorCoords();
604
- var tip = cm.state.ternTooltip = makeTooltip(where.right + 1, where.bottom, content);
605
- function maybeClear() {
606
- old = true;
607
- if (!mouseOnTip) clear();
608
- }
609
- function clear() {
610
- cm.state.ternTooltip = null;
611
- if (tip.parentNode) fadeOut(tip)
612
- clearActivity()
613
- }
614
- var mouseOnTip = false, old = false;
615
- CodeMirror.on(tip, "mousemove", function() { mouseOnTip = true; });
616
- CodeMirror.on(tip, "mouseout", function(e) {
617
- var related = e.relatedTarget || e.toElement
618
- if (!related || !CodeMirror.contains(tip, related)) {
619
- if (old) clear();
620
- else mouseOnTip = false;
621
- }
622
- });
623
- setTimeout(maybeClear, ts.options.hintDelay ? ts.options.hintDelay : 1700);
624
- var clearActivity = onEditorActivity(cm, clear)
625
- }
626
-
627
- function onEditorActivity(cm, f) {
628
- cm.on("cursorActivity", f)
629
- cm.on("blur", f)
630
- cm.on("scroll", f)
631
- cm.on("setDoc", f)
632
- return function() {
633
- cm.off("cursorActivity", f)
634
- cm.off("blur", f)
635
- cm.off("scroll", f)
636
- cm.off("setDoc", f)
637
- }
638
- }
639
-
640
- function makeTooltip(x, y, content) {
641
- var node = elt("div", cls + "tooltip", content);
642
- node.style.left = x + "px";
643
- node.style.top = y + "px";
644
- document.body.appendChild(node);
645
- return node;
646
- }
647
-
648
- function remove(node) {
649
- var p = node && node.parentNode;
650
- if (p) p.removeChild(node);
651
- }
652
-
653
- function fadeOut(tooltip) {
654
- tooltip.style.opacity = "0";
655
- setTimeout(function() { remove(tooltip); }, 1100);
656
- }
657
-
658
- function showError(ts, cm, msg) {
659
- if (ts.options.showError)
660
- ts.options.showError(cm, msg);
661
- else
662
- tempTooltip(cm, String(msg), ts);
663
- }
664
-
665
- function closeArgHints(ts) {
666
- if (ts.activeArgHints) {
667
- if (ts.activeArgHints.clear) ts.activeArgHints.clear()
668
- remove(ts.activeArgHints)
669
- ts.activeArgHints = null
670
- }
671
- }
672
-
673
- function docValue(ts, doc) {
674
- var val = doc.doc.getValue();
675
- if (ts.options.fileFilter) val = ts.options.fileFilter(val, doc.name, doc.doc);
676
- return val;
677
- }
678
-
679
- // Worker wrapper
680
-
681
- function WorkerServer(ts) {
682
- var worker = ts.worker = new Worker(ts.options.workerScript);
683
- worker.postMessage({type: "init",
684
- defs: ts.options.defs,
685
- plugins: ts.options.plugins,
686
- scripts: ts.options.workerDeps});
687
- var msgId = 0, pending = {};
688
-
689
- function send(data, c) {
690
- if (c) {
691
- data.id = ++msgId;
692
- pending[msgId] = c;
693
- }
694
- worker.postMessage(data);
695
- }
696
- worker.onmessage = function(e) {
697
- var data = e.data;
698
- if (data.type == "getFile") {
699
- getFile(ts, data.name, function(err, text) {
700
- send({type: "getFile", err: String(err), text: text, id: data.id});
701
- });
702
- } else if (data.type == "debug") {
703
- window.console.log(data.message);
704
- } else if (data.id && pending[data.id]) {
705
- pending[data.id](data.err, data.body);
706
- delete pending[data.id];
707
- }
708
- };
709
- worker.onerror = function(e) {
710
- for (var id in pending) pending[id](e);
711
- pending = {};
712
- };
713
-
714
- this.addFile = function(name, text) { send({type: "add", name: name, text: text}); };
715
- this.delFile = function(name) { send({type: "del", name: name}); };
716
- this.request = function(body, c) { send({type: "req", body: body}, c); };
717
- }
718
- });