chaskiq 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -0
  3. data/lib/chaskiq/version.rb +1 -1
  4. data/vendor/assets/images/animated-overlay.gif +0 -0
  5. data/vendor/assets/images/blueimp/img/error.png +0 -0
  6. data/vendor/assets/images/blueimp/img/error.svg +5 -0
  7. data/vendor/assets/images/blueimp/img/loading.gif +0 -0
  8. data/vendor/assets/images/blueimp/img/play-pause.png +0 -0
  9. data/vendor/assets/images/blueimp/img/play-pause.svg +6 -0
  10. data/vendor/assets/images/blueimp/img/video-play.png +0 -0
  11. data/vendor/assets/images/blueimp/img/video-play.svg +5 -0
  12. data/vendor/assets/images/bootstrap-colorpicker/alpha-horizontal.png +0 -0
  13. data/vendor/assets/images/bootstrap-colorpicker/alpha.png +0 -0
  14. data/vendor/assets/images/bootstrap-colorpicker/hue-horizontal.png +0 -0
  15. data/vendor/assets/images/bootstrap-colorpicker/hue.png +0 -0
  16. data/vendor/assets/images/bootstrap-colorpicker/saturation.png +0 -0
  17. data/vendor/assets/images/chosen-sprite.png +0 -0
  18. data/vendor/assets/images/chosen-sprite@2x.png +0 -0
  19. data/vendor/assets/images/green.png +0 -0
  20. data/vendor/assets/images/green@2x.png +0 -0
  21. data/vendor/assets/images/images/animated-overlay.gif +0 -0
  22. data/vendor/assets/images/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  23. data/vendor/assets/images/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  24. data/vendor/assets/images/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  25. data/vendor/assets/images/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  26. data/vendor/assets/images/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  27. data/vendor/assets/images/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  28. data/vendor/assets/images/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  29. data/vendor/assets/images/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  30. data/vendor/assets/images/images/ui-icons_222222_256x240.png +0 -0
  31. data/vendor/assets/images/images/ui-icons_2e83ff_256x240.png +0 -0
  32. data/vendor/assets/images/images/ui-icons_454545_256x240.png +0 -0
  33. data/vendor/assets/images/images/ui-icons_888888_256x240.png +0 -0
  34. data/vendor/assets/images/images/ui-icons_cd0a0a_256x240.png +0 -0
  35. data/vendor/assets/images/sort.png +0 -0
  36. data/vendor/assets/images/sort_asc.png +0 -0
  37. data/vendor/assets/images/sort_desc.png +0 -0
  38. data/vendor/assets/images/sprite-skin-flat.png +0 -0
  39. data/vendor/assets/images/sprite-skin-flat2.png +0 -0
  40. data/vendor/assets/images/sprite-skin-nice.png +0 -0
  41. data/vendor/assets/images/sprite-skin-simple.png +0 -0
  42. data/vendor/assets/images/spritemap.png +0 -0
  43. data/vendor/assets/images/spritemap@2x.png +0 -0
  44. data/vendor/assets/javascripts/backbone/backbone.min.js +2 -0
  45. data/vendor/assets/javascripts/backbone/underscore.min.js +6 -0
  46. data/vendor/assets/javascripts/chartjs/Chart.min.js +11 -0
  47. data/vendor/assets/javascripts/codemirror/codemirror.js +7830 -0
  48. data/vendor/assets/javascripts/codemirror/mode/apl/apl.js +175 -0
  49. data/vendor/assets/javascripts/codemirror/mode/apl/index.html +72 -0
  50. data/vendor/assets/javascripts/codemirror/mode/asterisk/asterisk.js +198 -0
  51. data/vendor/assets/javascripts/codemirror/mode/asterisk/index.html +154 -0
  52. data/vendor/assets/javascripts/codemirror/mode/clike/clike.js +474 -0
  53. data/vendor/assets/javascripts/codemirror/mode/clike/index.html +225 -0
  54. data/vendor/assets/javascripts/codemirror/mode/clike/scala.html +767 -0
  55. data/vendor/assets/javascripts/codemirror/mode/clojure/clojure.js +243 -0
  56. data/vendor/assets/javascripts/codemirror/mode/clojure/index.html +88 -0
  57. data/vendor/assets/javascripts/codemirror/mode/cobol/cobol.js +255 -0
  58. data/vendor/assets/javascripts/codemirror/mode/cobol/index.html +210 -0
  59. data/vendor/assets/javascripts/codemirror/mode/coffeescript/coffeescript.js +369 -0
  60. data/vendor/assets/javascripts/codemirror/mode/coffeescript/index.html +740 -0
  61. data/vendor/assets/javascripts/codemirror/mode/commonlisp/commonlisp.js +120 -0
  62. data/vendor/assets/javascripts/codemirror/mode/commonlisp/index.html +177 -0
  63. data/vendor/assets/javascripts/codemirror/mode/css/css.js +717 -0
  64. data/vendor/assets/javascripts/codemirror/mode/css/index.html +70 -0
  65. data/vendor/assets/javascripts/codemirror/mode/css/less.html +152 -0
  66. data/vendor/assets/javascripts/codemirror/mode/css/less_test.js +51 -0
  67. data/vendor/assets/javascripts/codemirror/mode/css/scss.html +157 -0
  68. data/vendor/assets/javascripts/codemirror/mode/css/scss_test.js +110 -0
  69. data/vendor/assets/javascripts/codemirror/mode/css/test.js +135 -0
  70. data/vendor/assets/javascripts/codemirror/mode/cypher/cypher.js +146 -0
  71. data/vendor/assets/javascripts/codemirror/mode/cypher/index.html +63 -0
  72. data/vendor/assets/javascripts/codemirror/mode/d/d.js +218 -0
  73. data/vendor/assets/javascripts/codemirror/mode/d/index.html +273 -0
  74. data/vendor/assets/javascripts/codemirror/mode/diff/diff.js +47 -0
  75. data/vendor/assets/javascripts/codemirror/mode/diff/index.html +117 -0
  76. data/vendor/assets/javascripts/codemirror/mode/django/django.js +67 -0
  77. data/vendor/assets/javascripts/codemirror/mode/django/index.html +63 -0
  78. data/vendor/assets/javascripts/codemirror/mode/dtd/dtd.js +142 -0
  79. data/vendor/assets/javascripts/codemirror/mode/dtd/index.html +89 -0
  80. data/vendor/assets/javascripts/codemirror/mode/dylan/dylan.js +299 -0
  81. data/vendor/assets/javascripts/codemirror/mode/dylan/index.html +407 -0
  82. data/vendor/assets/javascripts/codemirror/mode/ecl/ecl.js +207 -0
  83. data/vendor/assets/javascripts/codemirror/mode/ecl/index.html +52 -0
  84. data/vendor/assets/javascripts/codemirror/mode/eiffel/eiffel.js +162 -0
  85. data/vendor/assets/javascripts/codemirror/mode/eiffel/index.html +429 -0
  86. data/vendor/assets/javascripts/codemirror/mode/erlang/erlang.js +622 -0
  87. data/vendor/assets/javascripts/codemirror/mode/erlang/index.html +76 -0
  88. data/vendor/assets/javascripts/codemirror/mode/fortran/fortran.js +188 -0
  89. data/vendor/assets/javascripts/codemirror/mode/fortran/index.html +81 -0
  90. data/vendor/assets/javascripts/codemirror/mode/gas/gas.js +345 -0
  91. data/vendor/assets/javascripts/codemirror/mode/gas/index.html +68 -0
  92. data/vendor/assets/javascripts/codemirror/mode/gfm/gfm.js +122 -0
  93. data/vendor/assets/javascripts/codemirror/mode/gfm/index.html +82 -0
  94. data/vendor/assets/javascripts/codemirror/mode/gfm/test.js +164 -0
  95. data/vendor/assets/javascripts/codemirror/mode/gherkin/gherkin.js +178 -0
  96. data/vendor/assets/javascripts/codemirror/mode/gherkin/index.html +48 -0
  97. data/vendor/assets/javascripts/codemirror/mode/go/go.js +184 -0
  98. data/vendor/assets/javascripts/codemirror/mode/go/index.html +85 -0
  99. data/vendor/assets/javascripts/codemirror/mode/groovy/groovy.js +226 -0
  100. data/vendor/assets/javascripts/codemirror/mode/groovy/index.html +84 -0
  101. data/vendor/assets/javascripts/codemirror/mode/haml/haml.js +159 -0
  102. data/vendor/assets/javascripts/codemirror/mode/haml/index.html +79 -0
  103. data/vendor/assets/javascripts/codemirror/mode/haml/test.js +97 -0
  104. data/vendor/assets/javascripts/codemirror/mode/haskell/haskell.js +267 -0
  105. data/vendor/assets/javascripts/codemirror/mode/haskell/index.html +73 -0
  106. data/vendor/assets/javascripts/codemirror/mode/haxe/haxe.js +518 -0
  107. data/vendor/assets/javascripts/codemirror/mode/haxe/index.html +124 -0
  108. data/vendor/assets/javascripts/codemirror/mode/htmlembedded/htmlembedded.js +86 -0
  109. data/vendor/assets/javascripts/codemirror/mode/htmlembedded/index.html +58 -0
  110. data/vendor/assets/javascripts/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  111. data/vendor/assets/javascripts/codemirror/mode/htmlmixed/index.html +85 -0
  112. data/vendor/assets/javascripts/codemirror/mode/http/http.js +113 -0
  113. data/vendor/assets/javascripts/codemirror/mode/http/index.html +45 -0
  114. data/vendor/assets/javascripts/codemirror/mode/index.html +125 -0
  115. data/vendor/assets/javascripts/codemirror/mode/jade/index.html +70 -0
  116. data/vendor/assets/javascripts/codemirror/mode/jade/jade.js +590 -0
  117. data/vendor/assets/javascripts/codemirror/mode/javascript/index.html +114 -0
  118. data/vendor/assets/javascripts/codemirror/mode/javascript/javascript.js +684 -0
  119. data/vendor/assets/javascripts/codemirror/mode/javascript/json-ld.html +72 -0
  120. data/vendor/assets/javascripts/codemirror/mode/javascript/test.js +194 -0
  121. data/vendor/assets/javascripts/codemirror/mode/javascript/typescript.html +61 -0
  122. data/vendor/assets/javascripts/codemirror/mode/jinja2/index.html +54 -0
  123. data/vendor/assets/javascripts/codemirror/mode/jinja2/jinja2.js +142 -0
  124. data/vendor/assets/javascripts/codemirror/mode/julia/index.html +195 -0
  125. data/vendor/assets/javascripts/codemirror/mode/julia/julia.js +301 -0
  126. data/vendor/assets/javascripts/codemirror/mode/kotlin/index.html +89 -0
  127. data/vendor/assets/javascripts/codemirror/mode/kotlin/kotlin.js +280 -0
  128. data/vendor/assets/javascripts/codemirror/mode/livescript/index.html +459 -0
  129. data/vendor/assets/javascripts/codemirror/mode/livescript/livescript.js +280 -0
  130. data/vendor/assets/javascripts/codemirror/mode/lua/index.html +85 -0
  131. data/vendor/assets/javascripts/codemirror/mode/lua/lua.js +159 -0
  132. data/vendor/assets/javascripts/codemirror/mode/markdown/index.html +359 -0
  133. data/vendor/assets/javascripts/codemirror/mode/markdown/markdown.js +758 -0
  134. data/vendor/assets/javascripts/codemirror/mode/markdown/test.js +754 -0
  135. data/vendor/assets/javascripts/codemirror/mode/meta.js +144 -0
  136. data/vendor/assets/javascripts/codemirror/mode/mirc/index.html +160 -0
  137. data/vendor/assets/javascripts/codemirror/mode/mirc/mirc.js +193 -0
  138. data/vendor/assets/javascripts/codemirror/mode/mllike/index.html +179 -0
  139. data/vendor/assets/javascripts/codemirror/mode/mllike/mllike.js +205 -0
  140. data/vendor/assets/javascripts/codemirror/mode/modelica/index.html +67 -0
  141. data/vendor/assets/javascripts/codemirror/mode/modelica/modelica.js +245 -0
  142. data/vendor/assets/javascripts/codemirror/mode/nginx/index.html +181 -0
  143. data/vendor/assets/javascripts/codemirror/mode/nginx/nginx.js +178 -0
  144. data/vendor/assets/javascripts/codemirror/mode/ntriples/index.html +45 -0
  145. data/vendor/assets/javascripts/codemirror/mode/ntriples/ntriples.js +186 -0
  146. data/vendor/assets/javascripts/codemirror/mode/octave/index.html +83 -0
  147. data/vendor/assets/javascripts/codemirror/mode/octave/octave.js +135 -0
  148. data/vendor/assets/javascripts/codemirror/mode/pascal/index.html +61 -0
  149. data/vendor/assets/javascripts/codemirror/mode/pascal/pascal.js +109 -0
  150. data/vendor/assets/javascripts/codemirror/mode/pegjs/index.html +66 -0
  151. data/vendor/assets/javascripts/codemirror/mode/pegjs/pegjs.js +114 -0
  152. data/vendor/assets/javascripts/codemirror/mode/perl/index.html +75 -0
  153. data/vendor/assets/javascripts/codemirror/mode/perl/perl.js +832 -0
  154. data/vendor/assets/javascripts/codemirror/mode/php/index.html +64 -0
  155. data/vendor/assets/javascripts/codemirror/mode/php/php.js +226 -0
  156. data/vendor/assets/javascripts/codemirror/mode/php/test.js +154 -0
  157. data/vendor/assets/javascripts/codemirror/mode/pig/index.html +55 -0
  158. data/vendor/assets/javascripts/codemirror/mode/pig/pig.js +188 -0
  159. data/vendor/assets/javascripts/codemirror/mode/properties/index.html +53 -0
  160. data/vendor/assets/javascripts/codemirror/mode/properties/properties.js +78 -0
  161. data/vendor/assets/javascripts/codemirror/mode/puppet/index.html +121 -0
  162. data/vendor/assets/javascripts/codemirror/mode/puppet/puppet.js +220 -0
  163. data/vendor/assets/javascripts/codemirror/mode/python/index.html +198 -0
  164. data/vendor/assets/javascripts/codemirror/mode/python/python.js +359 -0
  165. data/vendor/assets/javascripts/codemirror/mode/q/index.html +144 -0
  166. data/vendor/assets/javascripts/codemirror/mode/q/q.js +139 -0
  167. data/vendor/assets/javascripts/codemirror/mode/r/index.html +85 -0
  168. data/vendor/assets/javascripts/codemirror/mode/r/r.js +162 -0
  169. data/vendor/assets/javascripts/codemirror/mode/rpm/changes/index.html +66 -0
  170. data/vendor/assets/javascripts/codemirror/mode/rpm/index.html +149 -0
  171. data/vendor/assets/javascripts/codemirror/mode/rpm/rpm.js +101 -0
  172. data/vendor/assets/javascripts/codemirror/mode/rst/index.html +535 -0
  173. data/vendor/assets/javascripts/codemirror/mode/rst/rst.js +557 -0
  174. data/vendor/assets/javascripts/codemirror/mode/ruby/index.html +184 -0
  175. data/vendor/assets/javascripts/codemirror/mode/ruby/ruby.js +285 -0
  176. data/vendor/assets/javascripts/codemirror/mode/ruby/test.js +14 -0
  177. data/vendor/assets/javascripts/codemirror/mode/rust/index.html +60 -0
  178. data/vendor/assets/javascripts/codemirror/mode/rust/rust.js +451 -0
  179. data/vendor/assets/javascripts/codemirror/mode/sass/index.html +66 -0
  180. data/vendor/assets/javascripts/codemirror/mode/sass/sass.js +327 -0
  181. data/vendor/assets/javascripts/codemirror/mode/scheme/index.html +77 -0
  182. data/vendor/assets/javascripts/codemirror/mode/scheme/scheme.js +248 -0
  183. data/vendor/assets/javascripts/codemirror/mode/shell/index.html +66 -0
  184. data/vendor/assets/javascripts/codemirror/mode/shell/shell.js +138 -0
  185. data/vendor/assets/javascripts/codemirror/mode/shell/test.js +58 -0
  186. data/vendor/assets/javascripts/codemirror/mode/sieve/index.html +93 -0
  187. data/vendor/assets/javascripts/codemirror/mode/sieve/sieve.js +193 -0
  188. data/vendor/assets/javascripts/codemirror/mode/slim/index.html +96 -0
  189. data/vendor/assets/javascripts/codemirror/mode/slim/slim.js +575 -0
  190. data/vendor/assets/javascripts/codemirror/mode/slim/test.js +96 -0
  191. data/vendor/assets/javascripts/codemirror/mode/smalltalk/index.html +68 -0
  192. data/vendor/assets/javascripts/codemirror/mode/smalltalk/smalltalk.js +168 -0
  193. data/vendor/assets/javascripts/codemirror/mode/smarty/index.html +136 -0
  194. data/vendor/assets/javascripts/codemirror/mode/smarty/smarty.js +221 -0
  195. data/vendor/assets/javascripts/codemirror/mode/smartymixed/index.html +114 -0
  196. data/vendor/assets/javascripts/codemirror/mode/smartymixed/smartymixed.js +197 -0
  197. data/vendor/assets/javascripts/codemirror/mode/solr/index.html +57 -0
  198. data/vendor/assets/javascripts/codemirror/mode/solr/solr.js +104 -0
  199. data/vendor/assets/javascripts/codemirror/mode/sparql/index.html +53 -0
  200. data/vendor/assets/javascripts/codemirror/mode/sparql/sparql.js +160 -0
  201. data/vendor/assets/javascripts/codemirror/mode/sql/index.html +84 -0
  202. data/vendor/assets/javascripts/codemirror/mode/sql/sql.js +393 -0
  203. data/vendor/assets/javascripts/codemirror/mode/stex/index.html +110 -0
  204. data/vendor/assets/javascripts/codemirror/mode/stex/stex.js +262 -0
  205. data/vendor/assets/javascripts/codemirror/mode/stex/test.js +123 -0
  206. data/vendor/assets/javascripts/codemirror/mode/tcl/index.html +142 -0
  207. data/vendor/assets/javascripts/codemirror/mode/tcl/tcl.js +147 -0
  208. data/vendor/assets/javascripts/codemirror/mode/textile/index.html +191 -0
  209. data/vendor/assets/javascripts/codemirror/mode/textile/test.js +406 -0
  210. data/vendor/assets/javascripts/codemirror/mode/textile/textile.js +553 -0
  211. data/vendor/assets/javascripts/codemirror/mode/tiddlywiki/index.html +154 -0
  212. data/vendor/assets/javascripts/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  213. data/vendor/assets/javascripts/codemirror/mode/tiddlywiki/tiddlywiki.js +369 -0
  214. data/vendor/assets/javascripts/codemirror/mode/tiki/index.html +95 -0
  215. data/vendor/assets/javascripts/codemirror/mode/tiki/tiki.css +26 -0
  216. data/vendor/assets/javascripts/codemirror/mode/tiki/tiki.js +323 -0
  217. data/vendor/assets/javascripts/codemirror/mode/toml/index.html +73 -0
  218. data/vendor/assets/javascripts/codemirror/mode/toml/toml.js +88 -0
  219. data/vendor/assets/javascripts/codemirror/mode/tornado/index.html +63 -0
  220. data/vendor/assets/javascripts/codemirror/mode/tornado/tornado.js +68 -0
  221. data/vendor/assets/javascripts/codemirror/mode/turtle/index.html +50 -0
  222. data/vendor/assets/javascripts/codemirror/mode/turtle/turtle.js +160 -0
  223. data/vendor/assets/javascripts/codemirror/mode/vb/index.html +102 -0
  224. data/vendor/assets/javascripts/codemirror/mode/vb/vb.js +274 -0
  225. data/vendor/assets/javascripts/codemirror/mode/vbscript/index.html +55 -0
  226. data/vendor/assets/javascripts/codemirror/mode/vbscript/vbscript.js +350 -0
  227. data/vendor/assets/javascripts/codemirror/mode/velocity/index.html +118 -0
  228. data/vendor/assets/javascripts/codemirror/mode/velocity/velocity.js +201 -0
  229. data/vendor/assets/javascripts/codemirror/mode/verilog/index.html +120 -0
  230. data/vendor/assets/javascripts/codemirror/mode/verilog/test.js +273 -0
  231. data/vendor/assets/javascripts/codemirror/mode/verilog/verilog.js +364 -0
  232. data/vendor/assets/javascripts/codemirror/mode/xml/index.html +57 -0
  233. data/vendor/assets/javascripts/codemirror/mode/xml/test.js +51 -0
  234. data/vendor/assets/javascripts/codemirror/mode/xml/xml.js +384 -0
  235. data/vendor/assets/javascripts/codemirror/mode/xquery/index.html +210 -0
  236. data/vendor/assets/javascripts/codemirror/mode/xquery/test.js +67 -0
  237. data/vendor/assets/javascripts/codemirror/mode/xquery/xquery.js +447 -0
  238. data/vendor/assets/javascripts/codemirror/mode/yaml/index.html +80 -0
  239. data/vendor/assets/javascripts/codemirror/mode/yaml/yaml.js +112 -0
  240. data/vendor/assets/javascripts/codemirror/mode/z80/index.html +52 -0
  241. data/vendor/assets/javascripts/codemirror/mode/z80/z80.js +100 -0
  242. data/vendor/assets/javascripts/datapicker/bootstrap-datepicker.js +1671 -0
  243. data/vendor/assets/javascripts/flot/curvedLines.js +315 -0
  244. data/vendor/assets/javascripts/flot/excanvas.min.js +1 -0
  245. data/vendor/assets/javascripts/flot/jquery.flot.js +3168 -0
  246. data/vendor/assets/javascripts/flot/jquery.flot.pie.js +820 -0
  247. data/vendor/assets/javascripts/flot/jquery.flot.resize.js +59 -0
  248. data/vendor/assets/javascripts/flot/jquery.flot.spline.js +212 -0
  249. data/vendor/assets/javascripts/flot/jquery.flot.symbol.js +71 -0
  250. data/vendor/assets/javascripts/flot/jquery.flot.time.js +432 -0
  251. data/vendor/assets/javascripts/flot/jquery.flot.tooltip.min.js +12 -0
  252. data/vendor/assets/javascripts/jquery/jquery-2.1.1.js +4 -0
  253. data/vendor/assets/javascripts/jquery-ui/i18n/jquery-ui-i18n.min.js +6 -0
  254. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-af.min.js +4 -0
  255. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ar-DZ.min.js +4 -0
  256. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ar.min.js +4 -0
  257. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-az.min.js +4 -0
  258. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-be.min.js +4 -0
  259. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-bg.min.js +4 -0
  260. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-bs.min.js +4 -0
  261. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ca.min.js +4 -0
  262. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-cs.min.js +4 -0
  263. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-cy-GB.min.js +4 -0
  264. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-da.min.js +4 -0
  265. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-de.min.js +4 -0
  266. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-el.min.js +4 -0
  267. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-en-AU.min.js +4 -0
  268. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-en-GB.min.js +4 -0
  269. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-en-NZ.min.js +4 -0
  270. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-eo.min.js +4 -0
  271. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-es.min.js +4 -0
  272. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-et.min.js +4 -0
  273. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-eu.min.js +4 -0
  274. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fa.min.js +4 -0
  275. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fi.min.js +4 -0
  276. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fo.min.js +4 -0
  277. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fr-CA.min.js +4 -0
  278. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fr-CH.min.js +4 -0
  279. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fr.min.js +4 -0
  280. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-gl.min.js +4 -0
  281. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-he.min.js +4 -0
  282. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hi.min.js +4 -0
  283. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hr.min.js +4 -0
  284. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hu.min.js +4 -0
  285. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hy.min.js +4 -0
  286. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-id.min.js +4 -0
  287. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-is.min.js +4 -0
  288. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-it.min.js +4 -0
  289. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ja.min.js +4 -0
  290. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ka.min.js +4 -0
  291. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-kk.min.js +4 -0
  292. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-km.min.js +4 -0
  293. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ko.min.js +4 -0
  294. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ky.min.js +4 -0
  295. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-lb.min.js +4 -0
  296. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-lt.min.js +4 -0
  297. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-lv.min.js +4 -0
  298. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-mk.min.js +4 -0
  299. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ml.min.js +4 -0
  300. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ms.min.js +4 -0
  301. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nb.min.js +4 -0
  302. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nl-BE.min.js +4 -0
  303. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nl.min.js +4 -0
  304. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nn.min.js +4 -0
  305. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-no.min.js +4 -0
  306. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-pl.min.js +4 -0
  307. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-pt-BR.min.js +4 -0
  308. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-pt.min.js +4 -0
  309. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-rm.min.js +4 -0
  310. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ro.min.js +4 -0
  311. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ru.min.js +4 -0
  312. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sk.min.js +4 -0
  313. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sl.min.js +4 -0
  314. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sq.min.js +4 -0
  315. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sr-SR.min.js +4 -0
  316. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sr.min.js +4 -0
  317. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sv.min.js +4 -0
  318. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ta.min.js +4 -0
  319. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-th.min.js +4 -0
  320. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-tj.min.js +4 -0
  321. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-tr.min.js +4 -0
  322. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-uk.min.js +4 -0
  323. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-vi.min.js +4 -0
  324. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-zh-CN.min.js +4 -0
  325. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-zh-HK.min.js +4 -0
  326. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-zh-TW.min.js +4 -0
  327. data/vendor/assets/javascripts/jquery-ui/images/animated-overlay.gif +0 -0
  328. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  329. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  330. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  331. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  332. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  333. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  334. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  335. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  336. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  337. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  338. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
  339. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
  340. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  341. data/vendor/assets/javascripts/jquery-ui/jquery-ui-1.10.4.custom.min.css +7 -0
  342. data/vendor/assets/javascripts/jquery-ui/jquery-ui-1.10.4.min.js +7 -0
  343. data/vendor/assets/javascripts/jquery-ui/jquery-ui.css +1189 -0
  344. data/vendor/assets/javascripts/jquery-ui/jquery-ui.js +15040 -0
  345. data/vendor/assets/javascripts/jquery-ui/jquery-ui.min.css +4 -0
  346. data/vendor/assets/javascripts/jquery-ui/jquery-ui.min.js +12 -0
  347. data/vendor/assets/javascripts/metisMenu/jquery.metisMenu.js +120 -0
  348. data/vendor/assets/javascripts/morris/morris.js +1888 -0
  349. data/vendor/assets/javascripts/morris/raphael-2.1.0.min.js +10 -0
  350. data/vendor/assets/javascripts/pace/pace.min.js +2 -0
  351. data/vendor/assets/javascripts/peity/jquery.peity.min.js +13 -0
  352. data/vendor/assets/javascripts/radioactive/radioactive.min.js +1 -0
  353. data/vendor/assets/javascripts/rickshaw/rickshaw.min.js +3 -0
  354. data/vendor/assets/javascripts/rickshaw/vendor/d3.v3.js +5 -0
  355. data/vendor/assets/javascripts/sparkline/jquery.sparkline.min.js +5 -0
  356. data/vendor/assets/javascripts/summernote/summernote.min.js +6331 -0
  357. data/vendor/assets/javascripts/toastr/toastr.min.js +2 -0
  358. data/vendor/assets/stylesheets/codemirror/codemirror.css +309 -0
  359. data/vendor/assets/stylesheets/codemirror/elegant.css +13 -0
  360. data/vendor/assets/stylesheets/datapicker/datepicker3.css +789 -0
  361. data/vendor/assets/stylesheets/summernote/summernote-bs3.css +5970 -0
  362. data/vendor/assets/stylesheets/summernote/summernote.css +446 -0
  363. data/vendor/assets/stylesheets/toastr/toastr.css +222 -0
  364. metadata +362 -3
  365. data/spec/dummy/tmp/pids/server.pid +0 -1
@@ -0,0 +1,198 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Python mode</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="../../doc/docs.css">
6
+
7
+ <link rel="stylesheet" href="../../lib/codemirror.css">
8
+ <script src="../../lib/codemirror.js"></script>
9
+ <script src="../../addon/edit/matchbrackets.js"></script>
10
+ <script src="python.js"></script>
11
+ <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
12
+ <div id=nav>
13
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
14
+
15
+ <ul>
16
+ <li><a href="../../index.html">Home</a>
17
+ <li><a href="../../doc/manual.html">Manual</a>
18
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
19
+ </ul>
20
+ <ul>
21
+ <li><a href="../index.html">Language modes</a>
22
+ <li><a class=active href="#">Python</a>
23
+ </ul>
24
+ </div>
25
+
26
+ <article>
27
+ <h2>Python mode</h2>
28
+
29
+ <div><textarea id="code" name="code">
30
+ # Literals
31
+ 1234
32
+ 0.0e101
33
+ .123
34
+ 0b01010011100
35
+ 0o01234567
36
+ 0x0987654321abcdef
37
+ 7
38
+ 2147483647
39
+ 3L
40
+ 79228162514264337593543950336L
41
+ 0x100000000L
42
+ 79228162514264337593543950336
43
+ 0xdeadbeef
44
+ 3.14j
45
+ 10.j
46
+ 10j
47
+ .001j
48
+ 1e100j
49
+ 3.14e-10j
50
+
51
+
52
+ # String Literals
53
+ 'For\''
54
+ "God\""
55
+ """so loved
56
+ the world"""
57
+ '''that he gave
58
+ his only begotten\' '''
59
+ 'that whosoever believeth \
60
+ in him'
61
+ ''
62
+
63
+ # Identifiers
64
+ __a__
65
+ a.b
66
+ a.b.c
67
+
68
+ #Unicode identifiers on Python3
69
+ # a = x\ddot
70
+ a⃗ = ẍ
71
+ # a = v\dot
72
+ a⃗ = v̇
73
+
74
+ #F\vec = m \cdot a\vec
75
+ F⃗ = m•a⃗
76
+
77
+ # Operators
78
+ + - * / % & | ^ ~ < >
79
+ == != <= >= <> << >> // **
80
+ and or not in is
81
+
82
+ #infix matrix multiplication operator (PEP 465)
83
+ A @ B
84
+
85
+ # Delimiters
86
+ () [] {} , : ` = ; @ . # Note that @ and . require the proper context on Python 2.
87
+ += -= *= /= %= &= |= ^=
88
+ //= >>= <<= **=
89
+
90
+ # Keywords
91
+ as assert break class continue def del elif else except
92
+ finally for from global if import lambda pass raise
93
+ return try while with yield
94
+
95
+ # Python 2 Keywords (otherwise Identifiers)
96
+ exec print
97
+
98
+ # Python 3 Keywords (otherwise Identifiers)
99
+ nonlocal
100
+
101
+ # Types
102
+ bool classmethod complex dict enumerate float frozenset int list object
103
+ property reversed set slice staticmethod str super tuple type
104
+
105
+ # Python 2 Types (otherwise Identifiers)
106
+ basestring buffer file long unicode xrange
107
+
108
+ # Python 3 Types (otherwise Identifiers)
109
+ bytearray bytes filter map memoryview open range zip
110
+
111
+ # Some Example code
112
+ import os
113
+ from package import ParentClass
114
+
115
+ @nonsenseDecorator
116
+ def doesNothing():
117
+ pass
118
+
119
+ class ExampleClass(ParentClass):
120
+ @staticmethod
121
+ def example(inputStr):
122
+ a = list(inputStr)
123
+ a.reverse()
124
+ return ''.join(a)
125
+
126
+ def __init__(self, mixin = 'Hello'):
127
+ self.mixin = mixin
128
+
129
+ </textarea></div>
130
+
131
+
132
+ <h2>Cython mode</h2>
133
+
134
+ <div><textarea id="code-cython" name="code-cython">
135
+
136
+ import numpy as np
137
+ cimport cython
138
+ from libc.math cimport sqrt
139
+
140
+ @cython.boundscheck(False)
141
+ @cython.wraparound(False)
142
+ def pairwise_cython(double[:, ::1] X):
143
+ cdef int M = X.shape[0]
144
+ cdef int N = X.shape[1]
145
+ cdef double tmp, d
146
+ cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
147
+ for i in range(M):
148
+ for j in range(M):
149
+ d = 0.0
150
+ for k in range(N):
151
+ tmp = X[i, k] - X[j, k]
152
+ d += tmp * tmp
153
+ D[i, j] = sqrt(d)
154
+ return np.asarray(D)
155
+
156
+ </textarea></div>
157
+
158
+ <script>
159
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
160
+ mode: {name: "python",
161
+ version: 3,
162
+ singleLineStringErrors: false},
163
+ lineNumbers: true,
164
+ indentUnit: 4,
165
+ matchBrackets: true
166
+ });
167
+
168
+ CodeMirror.fromTextArea(document.getElementById("code-cython"), {
169
+ mode: {name: "text/x-cython",
170
+ version: 2,
171
+ singleLineStringErrors: false},
172
+ lineNumbers: true,
173
+ indentUnit: 4,
174
+ matchBrackets: true
175
+ });
176
+ </script>
177
+ <h2>Configuration Options for Python mode:</h2>
178
+ <ul>
179
+ <li>version - 2/3 - The version of Python to recognize. Default is 2.</li>
180
+ <li>singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.</li>
181
+ <li>hangingIndent - int - If you want to write long arguments to a function starting on a new line, how much that line should be indented. Defaults to one normal indentation unit.</li>
182
+ </ul>
183
+ <h2>Advanced Configuration Options:</h2>
184
+ <p>Usefull for superset of python syntax like Enthought enaml, IPython magics and questionmark help</p>
185
+ <ul>
186
+ <li>singleOperators - RegEx - Regular Expression for single operator matching, default : <pre>^[\\+\\-\\*/%&amp;|\\^~&lt;&gt;!]</pre> including <pre>@</pre> on Python 3</li>
187
+ <li>singleDelimiters - RegEx - Regular Expression for single delimiter matching, default : <pre>^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]</pre></li>
188
+ <li>doubleOperators - RegEx - Regular Expression for double operators matching, default : <pre>^((==)|(!=)|(&lt;=)|(&gt;=)|(&lt;&gt;)|(&lt;&lt;)|(&gt;&gt;)|(//)|(\\*\\*))</pre></li>
189
+ <li>doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default : <pre>^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&amp;=)|(\\|=)|(\\^=))</pre></li>
190
+ <li>tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default : <pre>^((//=)|(&gt;&gt;=)|(&lt;&lt;=)|(\\*\\*=))</pre></li>
191
+ <li>identifiers - RegEx - Regular Expression for identifier, default : <pre>^[_A-Za-z][_A-Za-z0-9]*</pre> on Python 2 and <pre>^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*</pre> on Python 3.</li>
192
+ <li>extra_keywords - list of string - List of extra words ton consider as keywords</li>
193
+ <li>extra_builtins - list of string - List of extra words ton consider as builtins</li>
194
+ </ul>
195
+
196
+
197
+ <p><strong>MIME types defined:</strong> <code>text/x-python</code> and <code>text/x-cython</code>.</p>
198
+ </article>
@@ -0,0 +1,359 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: http://codemirror.net/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ function wordRegexp(words) {
15
+ return new RegExp("^((" + words.join(")|(") + "))\\b");
16
+ }
17
+
18
+ var wordOperators = wordRegexp(["and", "or", "not", "is"]);
19
+ var commonKeywords = ["as", "assert", "break", "class", "continue",
20
+ "def", "del", "elif", "else", "except", "finally",
21
+ "for", "from", "global", "if", "import",
22
+ "lambda", "pass", "raise", "return",
23
+ "try", "while", "with", "yield", "in"];
24
+ var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr",
25
+ "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod",
26
+ "enumerate", "eval", "filter", "float", "format", "frozenset",
27
+ "getattr", "globals", "hasattr", "hash", "help", "hex", "id",
28
+ "input", "int", "isinstance", "issubclass", "iter", "len",
29
+ "list", "locals", "map", "max", "memoryview", "min", "next",
30
+ "object", "oct", "open", "ord", "pow", "property", "range",
31
+ "repr", "reversed", "round", "set", "setattr", "slice",
32
+ "sorted", "staticmethod", "str", "sum", "super", "tuple",
33
+ "type", "vars", "zip", "__import__", "NotImplemented",
34
+ "Ellipsis", "__debug__"];
35
+ var py2 = {builtins: ["apply", "basestring", "buffer", "cmp", "coerce", "execfile",
36
+ "file", "intern", "long", "raw_input", "reduce", "reload",
37
+ "unichr", "unicode", "xrange", "False", "True", "None"],
38
+ keywords: ["exec", "print"]};
39
+ var py3 = {builtins: ["ascii", "bytes", "exec", "print"],
40
+ keywords: ["nonlocal", "False", "True", "None"]};
41
+
42
+ CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins));
43
+
44
+ function top(state) {
45
+ return state.scopes[state.scopes.length - 1];
46
+ }
47
+
48
+ CodeMirror.defineMode("python", function(conf, parserConf) {
49
+ var ERRORCLASS = "error";
50
+
51
+ var singleDelimiters = parserConf.singleDelimiters || new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]");
52
+ var doubleOperators = parserConf.doubleOperators || new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))");
53
+ var doubleDelimiters = parserConf.doubleDelimiters || new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))");
54
+ var tripleDelimiters = parserConf.tripleDelimiters || new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");
55
+
56
+ if (parserConf.version && parseInt(parserConf.version, 10) == 3){
57
+ // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator
58
+ var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!@]");
59
+ var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*");
60
+ } else {
61
+ var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!]");
62
+ var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z][_A-Za-z0-9]*");
63
+ }
64
+
65
+ var hangingIndent = parserConf.hangingIndent || conf.indentUnit;
66
+
67
+ var myKeywords = commonKeywords, myBuiltins = commonBuiltins;
68
+ if(parserConf.extra_keywords != undefined){
69
+ myKeywords = myKeywords.concat(parserConf.extra_keywords);
70
+ }
71
+ if(parserConf.extra_builtins != undefined){
72
+ myBuiltins = myBuiltins.concat(parserConf.extra_builtins);
73
+ }
74
+ if (parserConf.version && parseInt(parserConf.version, 10) == 3) {
75
+ myKeywords = myKeywords.concat(py3.keywords);
76
+ myBuiltins = myBuiltins.concat(py3.builtins);
77
+ var stringPrefixes = new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))", "i");
78
+ } else {
79
+ myKeywords = myKeywords.concat(py2.keywords);
80
+ myBuiltins = myBuiltins.concat(py2.builtins);
81
+ var stringPrefixes = new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
82
+ }
83
+ var keywords = wordRegexp(myKeywords);
84
+ var builtins = wordRegexp(myBuiltins);
85
+
86
+ // tokenizers
87
+ function tokenBase(stream, state) {
88
+ // Handle scope changes
89
+ if (stream.sol() && top(state).type == "py") {
90
+ var scopeOffset = top(state).offset;
91
+ if (stream.eatSpace()) {
92
+ var lineOffset = stream.indentation();
93
+ if (lineOffset > scopeOffset)
94
+ pushScope(stream, state, "py");
95
+ else if (lineOffset < scopeOffset && dedent(stream, state))
96
+ state.errorToken = true;
97
+ return null;
98
+ } else {
99
+ var style = tokenBaseInner(stream, state);
100
+ if (scopeOffset > 0 && dedent(stream, state))
101
+ style += " " + ERRORCLASS;
102
+ return style;
103
+ }
104
+ }
105
+ return tokenBaseInner(stream, state);
106
+ }
107
+
108
+ function tokenBaseInner(stream, state) {
109
+ if (stream.eatSpace()) return null;
110
+
111
+ var ch = stream.peek();
112
+
113
+ // Handle Comments
114
+ if (ch == "#") {
115
+ stream.skipToEnd();
116
+ return "comment";
117
+ }
118
+
119
+ // Handle Number Literals
120
+ if (stream.match(/^[0-9\.]/, false)) {
121
+ var floatLiteral = false;
122
+ // Floats
123
+ if (stream.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; }
124
+ if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; }
125
+ if (stream.match(/^\.\d+/)) { floatLiteral = true; }
126
+ if (floatLiteral) {
127
+ // Float literals may be "imaginary"
128
+ stream.eat(/J/i);
129
+ return "number";
130
+ }
131
+ // Integers
132
+ var intLiteral = false;
133
+ // Hex
134
+ if (stream.match(/^0x[0-9a-f]+/i)) intLiteral = true;
135
+ // Binary
136
+ if (stream.match(/^0b[01]+/i)) intLiteral = true;
137
+ // Octal
138
+ if (stream.match(/^0o[0-7]+/i)) intLiteral = true;
139
+ // Decimal
140
+ if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) {
141
+ // Decimal literals may be "imaginary"
142
+ stream.eat(/J/i);
143
+ // TODO - Can you have imaginary longs?
144
+ intLiteral = true;
145
+ }
146
+ // Zero by itself with no other piece of number.
147
+ if (stream.match(/^0(?![\dx])/i)) intLiteral = true;
148
+ if (intLiteral) {
149
+ // Integer literals may be "long"
150
+ stream.eat(/L/i);
151
+ return "number";
152
+ }
153
+ }
154
+
155
+ // Handle Strings
156
+ if (stream.match(stringPrefixes)) {
157
+ state.tokenize = tokenStringFactory(stream.current());
158
+ return state.tokenize(stream, state);
159
+ }
160
+
161
+ // Handle operators and Delimiters
162
+ if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters))
163
+ return null;
164
+
165
+ if (stream.match(doubleOperators)
166
+ || stream.match(singleOperators)
167
+ || stream.match(wordOperators))
168
+ return "operator";
169
+
170
+ if (stream.match(singleDelimiters))
171
+ return null;
172
+
173
+ if (stream.match(keywords))
174
+ return "keyword";
175
+
176
+ if (stream.match(builtins))
177
+ return "builtin";
178
+
179
+ if (stream.match(/^(self|cls)\b/))
180
+ return "variable-2";
181
+
182
+ if (stream.match(identifiers)) {
183
+ if (state.lastToken == "def" || state.lastToken == "class")
184
+ return "def";
185
+ return "variable";
186
+ }
187
+
188
+ // Handle non-detected items
189
+ stream.next();
190
+ return ERRORCLASS;
191
+ }
192
+
193
+ function tokenStringFactory(delimiter) {
194
+ while ("rub".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
195
+ delimiter = delimiter.substr(1);
196
+
197
+ var singleline = delimiter.length == 1;
198
+ var OUTCLASS = "string";
199
+
200
+ function tokenString(stream, state) {
201
+ while (!stream.eol()) {
202
+ stream.eatWhile(/[^'"\\]/);
203
+ if (stream.eat("\\")) {
204
+ stream.next();
205
+ if (singleline && stream.eol())
206
+ return OUTCLASS;
207
+ } else if (stream.match(delimiter)) {
208
+ state.tokenize = tokenBase;
209
+ return OUTCLASS;
210
+ } else {
211
+ stream.eat(/['"]/);
212
+ }
213
+ }
214
+ if (singleline) {
215
+ if (parserConf.singleLineStringErrors)
216
+ return ERRORCLASS;
217
+ else
218
+ state.tokenize = tokenBase;
219
+ }
220
+ return OUTCLASS;
221
+ }
222
+ tokenString.isString = true;
223
+ return tokenString;
224
+ }
225
+
226
+ function pushScope(stream, state, type) {
227
+ var offset = 0, align = null;
228
+ if (type == "py") {
229
+ while (top(state).type != "py")
230
+ state.scopes.pop();
231
+ }
232
+ offset = top(state).offset + (type == "py" ? conf.indentUnit : hangingIndent);
233
+ if (type != "py" && !stream.match(/^(\s|#.*)*$/, false))
234
+ align = stream.column() + 1;
235
+ state.scopes.push({offset: offset, type: type, align: align});
236
+ }
237
+
238
+ function dedent(stream, state) {
239
+ var indented = stream.indentation();
240
+ while (top(state).offset > indented) {
241
+ if (top(state).type != "py") return true;
242
+ state.scopes.pop();
243
+ }
244
+ return top(state).offset != indented;
245
+ }
246
+
247
+ function tokenLexer(stream, state) {
248
+ var style = state.tokenize(stream, state);
249
+ var current = stream.current();
250
+
251
+ // Handle '.' connected identifiers
252
+ if (current == ".") {
253
+ style = stream.match(identifiers, false) ? null : ERRORCLASS;
254
+ if (style == null && state.lastStyle == "meta") {
255
+ // Apply 'meta' style to '.' connected identifiers when
256
+ // appropriate.
257
+ style = "meta";
258
+ }
259
+ return style;
260
+ }
261
+
262
+ // Handle decorators
263
+ if (current == "@"){
264
+ if(parserConf.version && parseInt(parserConf.version, 10) == 3){
265
+ return stream.match(identifiers, false) ? "meta" : "operator";
266
+ } else {
267
+ return stream.match(identifiers, false) ? "meta" : ERRORCLASS;
268
+ }
269
+ }
270
+
271
+ if ((style == "variable" || style == "builtin")
272
+ && state.lastStyle == "meta")
273
+ style = "meta";
274
+
275
+ // Handle scope changes.
276
+ if (current == "pass" || current == "return")
277
+ state.dedent += 1;
278
+
279
+ if (current == "lambda") state.lambda = true;
280
+ if (current == ":" && !state.lambda && top(state).type == "py")
281
+ pushScope(stream, state, "py");
282
+
283
+ var delimiter_index = current.length == 1 ? "[({".indexOf(current) : -1;
284
+ if (delimiter_index != -1)
285
+ pushScope(stream, state, "])}".slice(delimiter_index, delimiter_index+1));
286
+
287
+ delimiter_index = "])}".indexOf(current);
288
+ if (delimiter_index != -1) {
289
+ if (top(state).type == current) state.scopes.pop();
290
+ else return ERRORCLASS;
291
+ }
292
+ if (state.dedent > 0 && stream.eol() && top(state).type == "py") {
293
+ if (state.scopes.length > 1) state.scopes.pop();
294
+ state.dedent -= 1;
295
+ }
296
+
297
+ return style;
298
+ }
299
+
300
+ var external = {
301
+ startState: function(basecolumn) {
302
+ return {
303
+ tokenize: tokenBase,
304
+ scopes: [{offset: basecolumn || 0, type: "py", align: null}],
305
+ lastStyle: null,
306
+ lastToken: null,
307
+ lambda: false,
308
+ dedent: 0
309
+ };
310
+ },
311
+
312
+ token: function(stream, state) {
313
+ var addErr = state.errorToken;
314
+ if (addErr) state.errorToken = false;
315
+ var style = tokenLexer(stream, state);
316
+
317
+ state.lastStyle = style;
318
+
319
+ var current = stream.current();
320
+ if (current && style)
321
+ state.lastToken = current;
322
+
323
+ if (stream.eol() && state.lambda)
324
+ state.lambda = false;
325
+ return addErr ? style + " " + ERRORCLASS : style;
326
+ },
327
+
328
+ indent: function(state, textAfter) {
329
+ if (state.tokenize != tokenBase)
330
+ return state.tokenize.isString ? CodeMirror.Pass : 0;
331
+
332
+ var scope = top(state);
333
+ var closing = textAfter && textAfter.charAt(0) == scope.type;
334
+ if (scope.align != null)
335
+ return scope.align - (closing ? 1 : 0);
336
+ else if (closing && state.scopes.length > 1)
337
+ return state.scopes[state.scopes.length - 2].offset;
338
+ else
339
+ return scope.offset;
340
+ },
341
+
342
+ lineComment: "#",
343
+ fold: "indent"
344
+ };
345
+ return external;
346
+ });
347
+
348
+ CodeMirror.defineMIME("text/x-python", "python");
349
+
350
+ var words = function(str) { return str.split(" "); };
351
+
352
+ CodeMirror.defineMIME("text/x-cython", {
353
+ name: "python",
354
+ extra_keywords: words("by cdef cimport cpdef ctypedef enum except"+
355
+ "extern gil include nogil property public"+
356
+ "readonly struct union DEF IF ELIF ELSE")
357
+ });
358
+
359
+ });