fluentd-ui 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd-ui might be problematic. Click here for more details.

Files changed (287) hide show
  1. data/ChangeLog +9 -0
  2. data/Gemfile.lock +47 -44
  3. data/README.md +4 -4
  4. data/app/assets/javascripts/vue/in_tail_format.js +7 -2
  5. data/app/assets/stylesheets/common.css.scss +16 -0
  6. data/app/controllers/concerns/setting_history_concern.rb +6 -0
  7. data/app/controllers/fluentd/settings_controller.rb +37 -8
  8. data/app/models/fluent_gem.rb +6 -3
  9. data/app/models/fluentd/agent.rb +1 -0
  10. data/app/models/fluentd/agent/common.rb +4 -0
  11. data/app/models/fluentd/agent/fluentd_gem.rb +9 -13
  12. data/app/models/fluentd/agent/local_common.rb +23 -0
  13. data/app/models/fluentd/agent/td_agent.rb +4 -0
  14. data/app/models/fluentd/agent/td_agent/macosx.rb +0 -4
  15. data/app/models/fluentd/agent/td_agent/unix.rb +0 -4
  16. data/app/views/fluentd/settings/edit.html.haml +1 -3
  17. data/app/views/fluentd/settings/histories/show.html.haml +10 -0
  18. data/app/views/fluentd/settings/running_backup/show.html.haml +11 -0
  19. data/app/views/shared/settings/_diff.html.erb +21 -0
  20. data/circle.yml +5 -0
  21. data/config/application.rb +1 -0
  22. data/config/locales/translation_en.yml +7 -0
  23. data/config/locales/translation_ja.yml +7 -0
  24. data/fluentd-ui.gemspec +1 -0
  25. data/lib/fluentd-ui.rb +5 -1
  26. data/lib/fluentd-ui/version.rb +1 -1
  27. data/spec/features/fluentd/setting/histories_spec.rb +23 -1
  28. data/spec/features/fluentd/setting/running_backup_spec.rb +22 -1
  29. data/spec/models/fluentd/agent/local_common_spec.rb +4 -2
  30. data/spec/models/fluentd/agent_spec.rb +1 -48
  31. data/spec/models/plugin_spec.rb +2 -2
  32. data/spec/spec_helper.rb +10 -0
  33. data/spec/support/fluentd_agent_common_behavior.rb +53 -0
  34. data/vendor/assets/javascripts/bower/.gitignore +10 -0
  35. data/vendor/assets/javascripts/bower/vue/.bower.json +4 -4
  36. data/vendor/assets/javascripts/bower/vue/bower.json +17 -0
  37. data/vendor/assets/javascripts/bower/vue/dist/vue.js +329 -198
  38. data/vendor/assets/javascripts/bower/vue/dist/vue.min.js +3 -3
  39. metadata +107 -291
  40. checksums.yaml +0 -7
  41. data/vendor/assets/javascripts/bower/codemirror/AUTHORS +0 -423
  42. data/vendor/assets/javascripts/bower/codemirror/CONTRIBUTING.md +0 -76
  43. data/vendor/assets/javascripts/bower/codemirror/LICENSE +0 -19
  44. data/vendor/assets/javascripts/bower/codemirror/README.md +0 -11
  45. data/vendor/assets/javascripts/bower/codemirror/addon/comment/comment.js +0 -183
  46. data/vendor/assets/javascripts/bower/codemirror/addon/comment/continuecomment.js +0 -85
  47. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.css +0 -32
  48. data/vendor/assets/javascripts/bower/codemirror/addon/dialog/dialog.js +0 -155
  49. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.css +0 -6
  50. data/vendor/assets/javascripts/bower/codemirror/addon/display/fullscreen.js +0 -41
  51. data/vendor/assets/javascripts/bower/codemirror/addon/display/panel.js +0 -94
  52. data/vendor/assets/javascripts/bower/codemirror/addon/display/placeholder.js +0 -58
  53. data/vendor/assets/javascripts/bower/codemirror/addon/display/rulers.js +0 -64
  54. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closebrackets.js +0 -159
  55. data/vendor/assets/javascripts/bower/codemirror/addon/edit/closetag.js +0 -159
  56. data/vendor/assets/javascripts/bower/codemirror/addon/edit/continuelist.js +0 -51
  57. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchbrackets.js +0 -120
  58. data/vendor/assets/javascripts/bower/codemirror/addon/edit/matchtags.js +0 -66
  59. data/vendor/assets/javascripts/bower/codemirror/addon/edit/trailingspace.js +0 -27
  60. data/vendor/assets/javascripts/bower/codemirror/addon/fold/brace-fold.js +0 -105
  61. data/vendor/assets/javascripts/bower/codemirror/addon/fold/comment-fold.js +0 -57
  62. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldcode.js +0 -145
  63. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.css +0 -20
  64. data/vendor/assets/javascripts/bower/codemirror/addon/fold/foldgutter.js +0 -134
  65. data/vendor/assets/javascripts/bower/codemirror/addon/fold/indent-fold.js +0 -44
  66. data/vendor/assets/javascripts/bower/codemirror/addon/fold/markdown-fold.js +0 -49
  67. data/vendor/assets/javascripts/bower/codemirror/addon/fold/xml-fold.js +0 -182
  68. data/vendor/assets/javascripts/bower/codemirror/addon/hint/anyword-hint.js +0 -41
  69. data/vendor/assets/javascripts/bower/codemirror/addon/hint/css-hint.js +0 -56
  70. data/vendor/assets/javascripts/bower/codemirror/addon/hint/html-hint.js +0 -348
  71. data/vendor/assets/javascripts/bower/codemirror/addon/hint/javascript-hint.js +0 -146
  72. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.css +0 -38
  73. data/vendor/assets/javascripts/bower/codemirror/addon/hint/show-hint.js +0 -389
  74. data/vendor/assets/javascripts/bower/codemirror/addon/hint/sql-hint.js +0 -197
  75. data/vendor/assets/javascripts/bower/codemirror/addon/hint/xml-hint.js +0 -110
  76. data/vendor/assets/javascripts/bower/codemirror/addon/lint/coffeescript-lint.js +0 -41
  77. data/vendor/assets/javascripts/bower/codemirror/addon/lint/css-lint.js +0 -35
  78. data/vendor/assets/javascripts/bower/codemirror/addon/lint/javascript-lint.js +0 -136
  79. data/vendor/assets/javascripts/bower/codemirror/addon/lint/json-lint.js +0 -31
  80. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.css +0 -73
  81. data/vendor/assets/javascripts/bower/codemirror/addon/lint/lint.js +0 -204
  82. data/vendor/assets/javascripts/bower/codemirror/addon/lint/yaml-lint.js +0 -28
  83. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.css +0 -112
  84. data/vendor/assets/javascripts/bower/codemirror/addon/merge/merge.js +0 -643
  85. data/vendor/assets/javascripts/bower/codemirror/addon/mode/loadmode.js +0 -64
  86. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex.js +0 -118
  87. data/vendor/assets/javascripts/bower/codemirror/addon/mode/multiplex_test.js +0 -33
  88. data/vendor/assets/javascripts/bower/codemirror/addon/mode/overlay.js +0 -85
  89. data/vendor/assets/javascripts/bower/codemirror/addon/mode/simple.js +0 -213
  90. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/colorize.js +0 -40
  91. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode-standalone.js +0 -157
  92. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.js +0 -72
  93. data/vendor/assets/javascripts/bower/codemirror/addon/runmode/runmode.node.js +0 -120
  94. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/annotatescrollbar.js +0 -76
  95. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/scrollpastend.js +0 -46
  96. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.css +0 -66
  97. data/vendor/assets/javascripts/bower/codemirror/addon/scroll/simplescrollbars.js +0 -139
  98. data/vendor/assets/javascripts/bower/codemirror/addon/search/match-highlighter.js +0 -128
  99. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.css +0 -8
  100. data/vendor/assets/javascripts/bower/codemirror/addon/search/matchesonscrollbar.js +0 -90
  101. data/vendor/assets/javascripts/bower/codemirror/addon/search/search.js +0 -164
  102. data/vendor/assets/javascripts/bower/codemirror/addon/search/searchcursor.js +0 -189
  103. data/vendor/assets/javascripts/bower/codemirror/addon/selection/active-line.js +0 -71
  104. data/vendor/assets/javascripts/bower/codemirror/addon/selection/mark-selection.js +0 -118
  105. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.css +0 -86
  106. data/vendor/assets/javascripts/bower/codemirror/addon/tern/tern.js +0 -670
  107. data/vendor/assets/javascripts/bower/codemirror/addon/tern/worker.js +0 -44
  108. data/vendor/assets/javascripts/bower/codemirror/addon/wrap/hardwrap.js +0 -139
  109. data/vendor/assets/javascripts/bower/codemirror/keymap/emacs.js +0 -411
  110. data/vendor/assets/javascripts/bower/codemirror/keymap/sublime.js +0 -540
  111. data/vendor/assets/javascripts/bower/codemirror/keymap/vim.js +0 -4901
  112. data/vendor/assets/javascripts/bower/codemirror/mode/apl/apl.js +0 -175
  113. data/vendor/assets/javascripts/bower/codemirror/mode/asterisk/asterisk.js +0 -198
  114. data/vendor/assets/javascripts/bower/codemirror/mode/clike/clike.js +0 -489
  115. data/vendor/assets/javascripts/bower/codemirror/mode/clike/scala.html +0 -767
  116. data/vendor/assets/javascripts/bower/codemirror/mode/clojure/clojure.js +0 -243
  117. data/vendor/assets/javascripts/bower/codemirror/mode/cobol/cobol.js +0 -255
  118. data/vendor/assets/javascripts/bower/codemirror/mode/coffeescript/coffeescript.js +0 -369
  119. data/vendor/assets/javascripts/bower/codemirror/mode/commonlisp/commonlisp.js +0 -122
  120. data/vendor/assets/javascripts/bower/codemirror/mode/css/css.js +0 -717
  121. data/vendor/assets/javascripts/bower/codemirror/mode/css/less.html +0 -152
  122. data/vendor/assets/javascripts/bower/codemirror/mode/css/less_test.js +0 -51
  123. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss.html +0 -157
  124. data/vendor/assets/javascripts/bower/codemirror/mode/css/scss_test.js +0 -110
  125. data/vendor/assets/javascripts/bower/codemirror/mode/css/test.js +0 -135
  126. data/vendor/assets/javascripts/bower/codemirror/mode/cypher/cypher.js +0 -146
  127. data/vendor/assets/javascripts/bower/codemirror/mode/d/d.js +0 -218
  128. data/vendor/assets/javascripts/bower/codemirror/mode/dart/dart.js +0 -50
  129. data/vendor/assets/javascripts/bower/codemirror/mode/diff/diff.js +0 -47
  130. data/vendor/assets/javascripts/bower/codemirror/mode/django/django.js +0 -67
  131. data/vendor/assets/javascripts/bower/codemirror/mode/dockerfile/dockerfile.js +0 -76
  132. data/vendor/assets/javascripts/bower/codemirror/mode/dtd/dtd.js +0 -142
  133. data/vendor/assets/javascripts/bower/codemirror/mode/dylan/dylan.js +0 -299
  134. data/vendor/assets/javascripts/bower/codemirror/mode/ebnf/ebnf.js +0 -195
  135. data/vendor/assets/javascripts/bower/codemirror/mode/ecl/ecl.js +0 -207
  136. data/vendor/assets/javascripts/bower/codemirror/mode/eiffel/eiffel.js +0 -162
  137. data/vendor/assets/javascripts/bower/codemirror/mode/erlang/erlang.js +0 -622
  138. data/vendor/assets/javascripts/bower/codemirror/mode/fortran/fortran.js +0 -188
  139. data/vendor/assets/javascripts/bower/codemirror/mode/gas/gas.js +0 -345
  140. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/gfm.js +0 -123
  141. data/vendor/assets/javascripts/bower/codemirror/mode/gfm/test.js +0 -213
  142. data/vendor/assets/javascripts/bower/codemirror/mode/gherkin/gherkin.js +0 -178
  143. data/vendor/assets/javascripts/bower/codemirror/mode/go/go.js +0 -184
  144. data/vendor/assets/javascripts/bower/codemirror/mode/groovy/groovy.js +0 -226
  145. data/vendor/assets/javascripts/bower/codemirror/mode/haml/haml.js +0 -159
  146. data/vendor/assets/javascripts/bower/codemirror/mode/haml/test.js +0 -97
  147. data/vendor/assets/javascripts/bower/codemirror/mode/haskell/haskell.js +0 -267
  148. data/vendor/assets/javascripts/bower/codemirror/mode/haxe/haxe.js +0 -518
  149. data/vendor/assets/javascripts/bower/codemirror/mode/htmlembedded/htmlembedded.js +0 -86
  150. data/vendor/assets/javascripts/bower/codemirror/mode/htmlmixed/htmlmixed.js +0 -121
  151. data/vendor/assets/javascripts/bower/codemirror/mode/http/http.js +0 -113
  152. data/vendor/assets/javascripts/bower/codemirror/mode/idl/idl.js +0 -290
  153. data/vendor/assets/javascripts/bower/codemirror/mode/jade/jade.js +0 -590
  154. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/javascript.js +0 -686
  155. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/json-ld.html +0 -72
  156. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/test.js +0 -200
  157. data/vendor/assets/javascripts/bower/codemirror/mode/javascript/typescript.html +0 -61
  158. data/vendor/assets/javascripts/bower/codemirror/mode/jinja2/jinja2.js +0 -142
  159. data/vendor/assets/javascripts/bower/codemirror/mode/julia/julia.js +0 -301
  160. data/vendor/assets/javascripts/bower/codemirror/mode/kotlin/kotlin.js +0 -280
  161. data/vendor/assets/javascripts/bower/codemirror/mode/livescript/livescript.js +0 -280
  162. data/vendor/assets/javascripts/bower/codemirror/mode/lua/lua.js +0 -159
  163. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/markdown.js +0 -765
  164. data/vendor/assets/javascripts/bower/codemirror/mode/markdown/test.js +0 -754
  165. data/vendor/assets/javascripts/bower/codemirror/mode/meta.js +0 -165
  166. data/vendor/assets/javascripts/bower/codemirror/mode/mirc/mirc.js +0 -193
  167. data/vendor/assets/javascripts/bower/codemirror/mode/mllike/mllike.js +0 -205
  168. data/vendor/assets/javascripts/bower/codemirror/mode/modelica/modelica.js +0 -245
  169. data/vendor/assets/javascripts/bower/codemirror/mode/nginx/nginx.js +0 -178
  170. data/vendor/assets/javascripts/bower/codemirror/mode/ntriples/ntriples.js +0 -186
  171. data/vendor/assets/javascripts/bower/codemirror/mode/octave/octave.js +0 -135
  172. data/vendor/assets/javascripts/bower/codemirror/mode/pascal/pascal.js +0 -109
  173. data/vendor/assets/javascripts/bower/codemirror/mode/pegjs/pegjs.js +0 -114
  174. data/vendor/assets/javascripts/bower/codemirror/mode/perl/perl.js +0 -832
  175. data/vendor/assets/javascripts/bower/codemirror/mode/php/php.js +0 -226
  176. data/vendor/assets/javascripts/bower/codemirror/mode/php/test.js +0 -154
  177. data/vendor/assets/javascripts/bower/codemirror/mode/pig/pig.js +0 -188
  178. data/vendor/assets/javascripts/bower/codemirror/mode/properties/properties.js +0 -78
  179. data/vendor/assets/javascripts/bower/codemirror/mode/puppet/puppet.js +0 -220
  180. data/vendor/assets/javascripts/bower/codemirror/mode/python/python.js +0 -359
  181. data/vendor/assets/javascripts/bower/codemirror/mode/q/q.js +0 -139
  182. data/vendor/assets/javascripts/bower/codemirror/mode/r/r.js +0 -162
  183. data/vendor/assets/javascripts/bower/codemirror/mode/rpm/rpm.js +0 -101
  184. data/vendor/assets/javascripts/bower/codemirror/mode/rst/rst.js +0 -557
  185. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/ruby.js +0 -285
  186. data/vendor/assets/javascripts/bower/codemirror/mode/ruby/test.js +0 -14
  187. data/vendor/assets/javascripts/bower/codemirror/mode/rust/rust.js +0 -451
  188. data/vendor/assets/javascripts/bower/codemirror/mode/sass/sass.js +0 -327
  189. data/vendor/assets/javascripts/bower/codemirror/mode/scheme/scheme.js +0 -248
  190. data/vendor/assets/javascripts/bower/codemirror/mode/shell/shell.js +0 -139
  191. data/vendor/assets/javascripts/bower/codemirror/mode/shell/test.js +0 -58
  192. data/vendor/assets/javascripts/bower/codemirror/mode/sieve/sieve.js +0 -193
  193. data/vendor/assets/javascripts/bower/codemirror/mode/slim/slim.js +0 -575
  194. data/vendor/assets/javascripts/bower/codemirror/mode/slim/test.js +0 -96
  195. data/vendor/assets/javascripts/bower/codemirror/mode/smalltalk/smalltalk.js +0 -168
  196. data/vendor/assets/javascripts/bower/codemirror/mode/smarty/smarty.js +0 -221
  197. data/vendor/assets/javascripts/bower/codemirror/mode/smartymixed/smartymixed.js +0 -197
  198. data/vendor/assets/javascripts/bower/codemirror/mode/solr/solr.js +0 -104
  199. data/vendor/assets/javascripts/bower/codemirror/mode/soy/soy.js +0 -198
  200. data/vendor/assets/javascripts/bower/codemirror/mode/sparql/sparql.js +0 -174
  201. data/vendor/assets/javascripts/bower/codemirror/mode/spreadsheet/spreadsheet.js +0 -109
  202. data/vendor/assets/javascripts/bower/codemirror/mode/sql/sql.js +0 -391
  203. data/vendor/assets/javascripts/bower/codemirror/mode/stex/stex.js +0 -251
  204. data/vendor/assets/javascripts/bower/codemirror/mode/stex/test.js +0 -123
  205. data/vendor/assets/javascripts/bower/codemirror/mode/tcl/tcl.js +0 -147
  206. data/vendor/assets/javascripts/bower/codemirror/mode/textile/test.js +0 -417
  207. data/vendor/assets/javascripts/bower/codemirror/mode/textile/textile.js +0 -469
  208. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  209. data/vendor/assets/javascripts/bower/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -369
  210. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.css +0 -26
  211. data/vendor/assets/javascripts/bower/codemirror/mode/tiki/tiki.js +0 -323
  212. data/vendor/assets/javascripts/bower/codemirror/mode/toml/toml.js +0 -88
  213. data/vendor/assets/javascripts/bower/codemirror/mode/tornado/tornado.js +0 -68
  214. data/vendor/assets/javascripts/bower/codemirror/mode/turtle/turtle.js +0 -162
  215. data/vendor/assets/javascripts/bower/codemirror/mode/vb/vb.js +0 -274
  216. data/vendor/assets/javascripts/bower/codemirror/mode/vbscript/vbscript.js +0 -350
  217. data/vendor/assets/javascripts/bower/codemirror/mode/velocity/velocity.js +0 -201
  218. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/test.js +0 -273
  219. data/vendor/assets/javascripts/bower/codemirror/mode/verilog/verilog.js +0 -364
  220. data/vendor/assets/javascripts/bower/codemirror/mode/xml/test.js +0 -51
  221. data/vendor/assets/javascripts/bower/codemirror/mode/xml/xml.js +0 -384
  222. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/test.js +0 -67
  223. data/vendor/assets/javascripts/bower/codemirror/mode/xquery/xquery.js +0 -447
  224. data/vendor/assets/javascripts/bower/codemirror/mode/yaml/yaml.js +0 -117
  225. data/vendor/assets/javascripts/bower/codemirror/mode/z80/z80.js +0 -100
  226. data/vendor/assets/javascripts/bower/vue/LICENSE +0 -21
  227. data/vendor/assets/javascripts/bower/vue/src/api/child.js +0 -53
  228. data/vendor/assets/javascripts/bower/vue/src/api/data.js +0 -161
  229. data/vendor/assets/javascripts/bower/vue/src/api/dom.js +0 -211
  230. data/vendor/assets/javascripts/bower/vue/src/api/events.js +0 -176
  231. data/vendor/assets/javascripts/bower/vue/src/api/global.js +0 -146
  232. data/vendor/assets/javascripts/bower/vue/src/api/lifecycle.js +0 -72
  233. data/vendor/assets/javascripts/bower/vue/src/batcher.js +0 -65
  234. data/vendor/assets/javascripts/bower/vue/src/cache.js +0 -112
  235. data/vendor/assets/javascripts/bower/vue/src/compiler/compile.js +0 -549
  236. data/vendor/assets/javascripts/bower/vue/src/compiler/transclude.js +0 -146
  237. data/vendor/assets/javascripts/bower/vue/src/config.js +0 -79
  238. data/vendor/assets/javascripts/bower/vue/src/directive.js +0 -219
  239. data/vendor/assets/javascripts/bower/vue/src/directives/attr.js +0 -32
  240. data/vendor/assets/javascripts/bower/vue/src/directives/class.js +0 -18
  241. data/vendor/assets/javascripts/bower/vue/src/directives/cloak.js +0 -12
  242. data/vendor/assets/javascripts/bower/vue/src/directives/component.js +0 -196
  243. data/vendor/assets/javascripts/bower/vue/src/directives/el.js +0 -13
  244. data/vendor/assets/javascripts/bower/vue/src/directives/html.js +0 -38
  245. data/vendor/assets/javascripts/bower/vue/src/directives/if.js +0 -87
  246. data/vendor/assets/javascripts/bower/vue/src/directives/index.js +0 -22
  247. data/vendor/assets/javascripts/bower/vue/src/directives/model/checkbox.js +0 -25
  248. data/vendor/assets/javascripts/bower/vue/src/directives/model/default.js +0 -123
  249. data/vendor/assets/javascripts/bower/vue/src/directives/model/index.js +0 -56
  250. data/vendor/assets/javascripts/bower/vue/src/directives/model/radio.js +0 -26
  251. data/vendor/assets/javascripts/bower/vue/src/directives/model/select.js +0 -166
  252. data/vendor/assets/javascripts/bower/vue/src/directives/on.js +0 -59
  253. data/vendor/assets/javascripts/bower/vue/src/directives/partial.js +0 -44
  254. data/vendor/assets/javascripts/bower/vue/src/directives/ref.js +0 -24
  255. data/vendor/assets/javascripts/bower/vue/src/directives/repeat.js +0 -503
  256. data/vendor/assets/javascripts/bower/vue/src/directives/show.js +0 -8
  257. data/vendor/assets/javascripts/bower/vue/src/directives/style.js +0 -58
  258. data/vendor/assets/javascripts/bower/vue/src/directives/text.js +0 -15
  259. data/vendor/assets/javascripts/bower/vue/src/directives/transition.js +0 -12
  260. data/vendor/assets/javascripts/bower/vue/src/directives/with.js +0 -47
  261. data/vendor/assets/javascripts/bower/vue/src/filters/array-filters.js +0 -87
  262. data/vendor/assets/javascripts/bower/vue/src/filters/index.js +0 -135
  263. data/vendor/assets/javascripts/bower/vue/src/instance/compile.js +0 -179
  264. data/vendor/assets/javascripts/bower/vue/src/instance/events.js +0 -122
  265. data/vendor/assets/javascripts/bower/vue/src/instance/init.js +0 -76
  266. data/vendor/assets/javascripts/bower/vue/src/instance/scope.js +0 -217
  267. data/vendor/assets/javascripts/bower/vue/src/observer/array.js +0 -90
  268. data/vendor/assets/javascripts/bower/vue/src/observer/dep.js +0 -50
  269. data/vendor/assets/javascripts/bower/vue/src/observer/index.js +0 -235
  270. data/vendor/assets/javascripts/bower/vue/src/observer/object.js +0 -66
  271. data/vendor/assets/javascripts/bower/vue/src/parsers/directive.js +0 -159
  272. data/vendor/assets/javascripts/bower/vue/src/parsers/expression.js +0 -226
  273. data/vendor/assets/javascripts/bower/vue/src/parsers/path.js +0 -300
  274. data/vendor/assets/javascripts/bower/vue/src/parsers/template.js +0 -248
  275. data/vendor/assets/javascripts/bower/vue/src/parsers/text.js +0 -178
  276. data/vendor/assets/javascripts/bower/vue/src/transition/css.js +0 -189
  277. data/vendor/assets/javascripts/bower/vue/src/transition/index.js +0 -151
  278. data/vendor/assets/javascripts/bower/vue/src/transition/js.js +0 -43
  279. data/vendor/assets/javascripts/bower/vue/src/util/debug.js +0 -50
  280. data/vendor/assets/javascripts/bower/vue/src/util/dom.js +0 -197
  281. data/vendor/assets/javascripts/bower/vue/src/util/env.js +0 -74
  282. data/vendor/assets/javascripts/bower/vue/src/util/filter.js +0 -72
  283. data/vendor/assets/javascripts/bower/vue/src/util/index.js +0 -8
  284. data/vendor/assets/javascripts/bower/vue/src/util/lang.js +0 -175
  285. data/vendor/assets/javascripts/bower/vue/src/util/merge-option.js +0 -255
  286. data/vendor/assets/javascripts/bower/vue/src/vue.js +0 -84
  287. data/vendor/assets/javascripts/bower/vue/src/watcher.js +0 -240
@@ -1,135 +0,0 @@
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
- CodeMirror.defineMode("octave", function() {
15
- function wordRegexp(words) {
16
- return new RegExp("^((" + words.join(")|(") + "))\\b");
17
- }
18
-
19
- var singleOperators = new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]");
20
- var singleDelimiters = new RegExp('^[\\(\\[\\{\\},:=;]');
21
- var doubleOperators = new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))");
22
- var doubleDelimiters = new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))");
23
- var tripleDelimiters = new RegExp("^((>>=)|(<<=))");
24
- var expressionEnd = new RegExp("^[\\]\\)]");
25
- var identifiers = new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*");
26
-
27
- var builtins = wordRegexp([
28
- 'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos',
29
- 'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh',
30
- 'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones',
31
- 'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov',
32
- 'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot',
33
- 'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str',
34
- 'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember'
35
- ]);
36
-
37
- var keywords = wordRegexp([
38
- 'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction',
39
- 'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events',
40
- 'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until',
41
- 'continue', 'pkg'
42
- ]);
43
-
44
-
45
- // tokenizers
46
- function tokenTranspose(stream, state) {
47
- if (!stream.sol() && stream.peek() === '\'') {
48
- stream.next();
49
- state.tokenize = tokenBase;
50
- return 'operator';
51
- }
52
- state.tokenize = tokenBase;
53
- return tokenBase(stream, state);
54
- }
55
-
56
-
57
- function tokenComment(stream, state) {
58
- if (stream.match(/^.*%}/)) {
59
- state.tokenize = tokenBase;
60
- return 'comment';
61
- };
62
- stream.skipToEnd();
63
- return 'comment';
64
- }
65
-
66
- function tokenBase(stream, state) {
67
- // whitespaces
68
- if (stream.eatSpace()) return null;
69
-
70
- // Handle one line Comments
71
- if (stream.match('%{')){
72
- state.tokenize = tokenComment;
73
- stream.skipToEnd();
74
- return 'comment';
75
- }
76
-
77
- if (stream.match(/^[%#]/)){
78
- stream.skipToEnd();
79
- return 'comment';
80
- }
81
-
82
- // Handle Number Literals
83
- if (stream.match(/^[0-9\.+-]/, false)) {
84
- if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) {
85
- stream.tokenize = tokenBase;
86
- return 'number'; };
87
- if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; };
88
- if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; };
89
- }
90
- if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; };
91
-
92
- // Handle Strings
93
- if (stream.match(/^"([^"]|(""))*"/)) { return 'string'; } ;
94
- if (stream.match(/^'([^']|(''))*'/)) { return 'string'; } ;
95
-
96
- // Handle words
97
- if (stream.match(keywords)) { return 'keyword'; } ;
98
- if (stream.match(builtins)) { return 'builtin'; } ;
99
- if (stream.match(identifiers)) { return 'variable'; } ;
100
-
101
- if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; };
102
- if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; };
103
-
104
- if (stream.match(expressionEnd)) {
105
- state.tokenize = tokenTranspose;
106
- return null;
107
- };
108
-
109
-
110
- // Handle non-detected items
111
- stream.next();
112
- return 'error';
113
- };
114
-
115
-
116
- return {
117
- startState: function() {
118
- return {
119
- tokenize: tokenBase
120
- };
121
- },
122
-
123
- token: function(stream, state) {
124
- var style = state.tokenize(stream, state);
125
- if (style === 'number' || style === 'variable'){
126
- state.tokenize = tokenTranspose;
127
- }
128
- return style;
129
- }
130
- };
131
- });
132
-
133
- CodeMirror.defineMIME("text/x-octave", "octave");
134
-
135
- });
@@ -1,109 +0,0 @@
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
- CodeMirror.defineMode("pascal", function() {
15
- function words(str) {
16
- var obj = {}, words = str.split(" ");
17
- for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
18
- return obj;
19
- }
20
- var keywords = words("and array begin case const div do downto else end file for forward integer " +
21
- "boolean char function goto if in label mod nil not of or packed procedure " +
22
- "program record repeat set string then to type until var while with");
23
- var atoms = {"null": true};
24
-
25
- var isOperatorChar = /[+\-*&%=<>!?|\/]/;
26
-
27
- function tokenBase(stream, state) {
28
- var ch = stream.next();
29
- if (ch == "#" && state.startOfLine) {
30
- stream.skipToEnd();
31
- return "meta";
32
- }
33
- if (ch == '"' || ch == "'") {
34
- state.tokenize = tokenString(ch);
35
- return state.tokenize(stream, state);
36
- }
37
- if (ch == "(" && stream.eat("*")) {
38
- state.tokenize = tokenComment;
39
- return tokenComment(stream, state);
40
- }
41
- if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
42
- return null;
43
- }
44
- if (/\d/.test(ch)) {
45
- stream.eatWhile(/[\w\.]/);
46
- return "number";
47
- }
48
- if (ch == "/") {
49
- if (stream.eat("/")) {
50
- stream.skipToEnd();
51
- return "comment";
52
- }
53
- }
54
- if (isOperatorChar.test(ch)) {
55
- stream.eatWhile(isOperatorChar);
56
- return "operator";
57
- }
58
- stream.eatWhile(/[\w\$_]/);
59
- var cur = stream.current();
60
- if (keywords.propertyIsEnumerable(cur)) return "keyword";
61
- if (atoms.propertyIsEnumerable(cur)) return "atom";
62
- return "variable";
63
- }
64
-
65
- function tokenString(quote) {
66
- return function(stream, state) {
67
- var escaped = false, next, end = false;
68
- while ((next = stream.next()) != null) {
69
- if (next == quote && !escaped) {end = true; break;}
70
- escaped = !escaped && next == "\\";
71
- }
72
- if (end || !escaped) state.tokenize = null;
73
- return "string";
74
- };
75
- }
76
-
77
- function tokenComment(stream, state) {
78
- var maybeEnd = false, ch;
79
- while (ch = stream.next()) {
80
- if (ch == ")" && maybeEnd) {
81
- state.tokenize = null;
82
- break;
83
- }
84
- maybeEnd = (ch == "*");
85
- }
86
- return "comment";
87
- }
88
-
89
- // Interface
90
-
91
- return {
92
- startState: function() {
93
- return {tokenize: null};
94
- },
95
-
96
- token: function(stream, state) {
97
- if (stream.eatSpace()) return null;
98
- var style = (state.tokenize || tokenBase)(stream, state);
99
- if (style == "comment" || style == "meta") return style;
100
- return style;
101
- },
102
-
103
- electricChars: "{}"
104
- };
105
- });
106
-
107
- CodeMirror.defineMIME("text/x-pascal", "pascal");
108
-
109
- });
@@ -1,114 +0,0 @@
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"), require("../javascript/javascript"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror", "../javascript/javascript"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- "use strict";
13
-
14
- CodeMirror.defineMode("pegjs", function (config) {
15
- var jsMode = CodeMirror.getMode(config, "javascript");
16
-
17
- function identifier(stream) {
18
- return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);
19
- }
20
-
21
- return {
22
- startState: function () {
23
- return {
24
- inString: false,
25
- stringType: null,
26
- inComment: false,
27
- inChracterClass: false,
28
- braced: 0,
29
- lhs: true,
30
- localState: null
31
- };
32
- },
33
- token: function (stream, state) {
34
- if (stream)
35
-
36
- //check for state changes
37
- if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) {
38
- state.stringType = stream.peek();
39
- stream.next(); // Skip quote
40
- state.inString = true; // Update state
41
- }
42
- if (!state.inString && !state.inComment && stream.match(/^\/\*/)) {
43
- state.inComment = true;
44
- }
45
-
46
- //return state
47
- if (state.inString) {
48
- while (state.inString && !stream.eol()) {
49
- if (stream.peek() === state.stringType) {
50
- stream.next(); // Skip quote
51
- state.inString = false; // Clear flag
52
- } else if (stream.peek() === '\\') {
53
- stream.next();
54
- stream.next();
55
- } else {
56
- stream.match(/^.[^\\\"\']*/);
57
- }
58
- }
59
- return state.lhs ? "property string" : "string"; // Token style
60
- } else if (state.inComment) {
61
- while (state.inComment && !stream.eol()) {
62
- if (stream.match(/\*\//)) {
63
- state.inComment = false; // Clear flag
64
- } else {
65
- stream.match(/^.[^\*]*/);
66
- }
67
- }
68
- return "comment";
69
- } else if (state.inChracterClass) {
70
- while (state.inChracterClass && !stream.eol()) {
71
- if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) {
72
- state.inChracterClass = false;
73
- }
74
- }
75
- } else if (stream.peek() === '[') {
76
- stream.next();
77
- state.inChracterClass = true;
78
- return 'bracket';
79
- } else if (stream.match(/^\/\//)) {
80
- stream.skipToEnd();
81
- return "comment";
82
- } else if (state.braced || stream.peek() === '{') {
83
- if (state.localState === null) {
84
- state.localState = jsMode.startState();
85
- }
86
- var token = jsMode.token(stream, state.localState);
87
- var text = stream.current();
88
- if (!token) {
89
- for (var i = 0; i < text.length; i++) {
90
- if (text[i] === '{') {
91
- state.braced++;
92
- } else if (text[i] === '}') {
93
- state.braced--;
94
- }
95
- };
96
- }
97
- return token;
98
- } else if (identifier(stream)) {
99
- if (stream.peek() === ':') {
100
- return 'variable';
101
- }
102
- return 'variable-2';
103
- } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) {
104
- stream.next();
105
- return 'bracket';
106
- } else if (!stream.eatSpace()) {
107
- stream.next();
108
- }
109
- return null;
110
- }
111
- };
112
- }, "javascript");
113
-
114
- });
@@ -1,832 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
-
4
- // CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08)
5
- // This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com)
6
-
7
- (function(mod) {
8
- if (typeof exports == "object" && typeof module == "object") // CommonJS
9
- mod(require("../../lib/codemirror"));
10
- else if (typeof define == "function" && define.amd) // AMD
11
- define(["../../lib/codemirror"], mod);
12
- else // Plain browser env
13
- mod(CodeMirror);
14
- })(function(CodeMirror) {
15
- "use strict";
16
-
17
- CodeMirror.defineMode("perl",function(){
18
- // http://perldoc.perl.org
19
- var PERL={ // null - magic touch
20
- // 1 - keyword
21
- // 2 - def
22
- // 3 - atom
23
- // 4 - operator
24
- // 5 - variable-2 (predefined)
25
- // [x,y] - x=1,2,3; y=must be defined if x{...}
26
- // PERL operators
27
- '->' : 4,
28
- '++' : 4,
29
- '--' : 4,
30
- '**' : 4,
31
- // ! ~ \ and unary + and -
32
- '=~' : 4,
33
- '!~' : 4,
34
- '*' : 4,
35
- '/' : 4,
36
- '%' : 4,
37
- 'x' : 4,
38
- '+' : 4,
39
- '-' : 4,
40
- '.' : 4,
41
- '<<' : 4,
42
- '>>' : 4,
43
- // named unary operators
44
- '<' : 4,
45
- '>' : 4,
46
- '<=' : 4,
47
- '>=' : 4,
48
- 'lt' : 4,
49
- 'gt' : 4,
50
- 'le' : 4,
51
- 'ge' : 4,
52
- '==' : 4,
53
- '!=' : 4,
54
- '<=>' : 4,
55
- 'eq' : 4,
56
- 'ne' : 4,
57
- 'cmp' : 4,
58
- '~~' : 4,
59
- '&' : 4,
60
- '|' : 4,
61
- '^' : 4,
62
- '&&' : 4,
63
- '||' : 4,
64
- '//' : 4,
65
- '..' : 4,
66
- '...' : 4,
67
- '?' : 4,
68
- ':' : 4,
69
- '=' : 4,
70
- '+=' : 4,
71
- '-=' : 4,
72
- '*=' : 4, // etc. ???
73
- ',' : 4,
74
- '=>' : 4,
75
- '::' : 4,
76
- // list operators (rightward)
77
- 'not' : 4,
78
- 'and' : 4,
79
- 'or' : 4,
80
- 'xor' : 4,
81
- // PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;)
82
- 'BEGIN' : [5,1],
83
- 'END' : [5,1],
84
- 'PRINT' : [5,1],
85
- 'PRINTF' : [5,1],
86
- 'GETC' : [5,1],
87
- 'READ' : [5,1],
88
- 'READLINE' : [5,1],
89
- 'DESTROY' : [5,1],
90
- 'TIE' : [5,1],
91
- 'TIEHANDLE' : [5,1],
92
- 'UNTIE' : [5,1],
93
- 'STDIN' : 5,
94
- 'STDIN_TOP' : 5,
95
- 'STDOUT' : 5,
96
- 'STDOUT_TOP' : 5,
97
- 'STDERR' : 5,
98
- 'STDERR_TOP' : 5,
99
- '$ARG' : 5,
100
- '$_' : 5,
101
- '@ARG' : 5,
102
- '@_' : 5,
103
- '$LIST_SEPARATOR' : 5,
104
- '$"' : 5,
105
- '$PROCESS_ID' : 5,
106
- '$PID' : 5,
107
- '$$' : 5,
108
- '$REAL_GROUP_ID' : 5,
109
- '$GID' : 5,
110
- '$(' : 5,
111
- '$EFFECTIVE_GROUP_ID' : 5,
112
- '$EGID' : 5,
113
- '$)' : 5,
114
- '$PROGRAM_NAME' : 5,
115
- '$0' : 5,
116
- '$SUBSCRIPT_SEPARATOR' : 5,
117
- '$SUBSEP' : 5,
118
- '$;' : 5,
119
- '$REAL_USER_ID' : 5,
120
- '$UID' : 5,
121
- '$<' : 5,
122
- '$EFFECTIVE_USER_ID' : 5,
123
- '$EUID' : 5,
124
- '$>' : 5,
125
- '$a' : 5,
126
- '$b' : 5,
127
- '$COMPILING' : 5,
128
- '$^C' : 5,
129
- '$DEBUGGING' : 5,
130
- '$^D' : 5,
131
- '${^ENCODING}' : 5,
132
- '$ENV' : 5,
133
- '%ENV' : 5,
134
- '$SYSTEM_FD_MAX' : 5,
135
- '$^F' : 5,
136
- '@F' : 5,
137
- '${^GLOBAL_PHASE}' : 5,
138
- '$^H' : 5,
139
- '%^H' : 5,
140
- '@INC' : 5,
141
- '%INC' : 5,
142
- '$INPLACE_EDIT' : 5,
143
- '$^I' : 5,
144
- '$^M' : 5,
145
- '$OSNAME' : 5,
146
- '$^O' : 5,
147
- '${^OPEN}' : 5,
148
- '$PERLDB' : 5,
149
- '$^P' : 5,
150
- '$SIG' : 5,
151
- '%SIG' : 5,
152
- '$BASETIME' : 5,
153
- '$^T' : 5,
154
- '${^TAINT}' : 5,
155
- '${^UNICODE}' : 5,
156
- '${^UTF8CACHE}' : 5,
157
- '${^UTF8LOCALE}' : 5,
158
- '$PERL_VERSION' : 5,
159
- '$^V' : 5,
160
- '${^WIN32_SLOPPY_STAT}' : 5,
161
- '$EXECUTABLE_NAME' : 5,
162
- '$^X' : 5,
163
- '$1' : 5, // - regexp $1, $2...
164
- '$MATCH' : 5,
165
- '$&' : 5,
166
- '${^MATCH}' : 5,
167
- '$PREMATCH' : 5,
168
- '$`' : 5,
169
- '${^PREMATCH}' : 5,
170
- '$POSTMATCH' : 5,
171
- "$'" : 5,
172
- '${^POSTMATCH}' : 5,
173
- '$LAST_PAREN_MATCH' : 5,
174
- '$+' : 5,
175
- '$LAST_SUBMATCH_RESULT' : 5,
176
- '$^N' : 5,
177
- '@LAST_MATCH_END' : 5,
178
- '@+' : 5,
179
- '%LAST_PAREN_MATCH' : 5,
180
- '%+' : 5,
181
- '@LAST_MATCH_START' : 5,
182
- '@-' : 5,
183
- '%LAST_MATCH_START' : 5,
184
- '%-' : 5,
185
- '$LAST_REGEXP_CODE_RESULT' : 5,
186
- '$^R' : 5,
187
- '${^RE_DEBUG_FLAGS}' : 5,
188
- '${^RE_TRIE_MAXBUF}' : 5,
189
- '$ARGV' : 5,
190
- '@ARGV' : 5,
191
- 'ARGV' : 5,
192
- 'ARGVOUT' : 5,
193
- '$OUTPUT_FIELD_SEPARATOR' : 5,
194
- '$OFS' : 5,
195
- '$,' : 5,
196
- '$INPUT_LINE_NUMBER' : 5,
197
- '$NR' : 5,
198
- '$.' : 5,
199
- '$INPUT_RECORD_SEPARATOR' : 5,
200
- '$RS' : 5,
201
- '$/' : 5,
202
- '$OUTPUT_RECORD_SEPARATOR' : 5,
203
- '$ORS' : 5,
204
- '$\\' : 5,
205
- '$OUTPUT_AUTOFLUSH' : 5,
206
- '$|' : 5,
207
- '$ACCUMULATOR' : 5,
208
- '$^A' : 5,
209
- '$FORMAT_FORMFEED' : 5,
210
- '$^L' : 5,
211
- '$FORMAT_PAGE_NUMBER' : 5,
212
- '$%' : 5,
213
- '$FORMAT_LINES_LEFT' : 5,
214
- '$-' : 5,
215
- '$FORMAT_LINE_BREAK_CHARACTERS' : 5,
216
- '$:' : 5,
217
- '$FORMAT_LINES_PER_PAGE' : 5,
218
- '$=' : 5,
219
- '$FORMAT_TOP_NAME' : 5,
220
- '$^' : 5,
221
- '$FORMAT_NAME' : 5,
222
- '$~' : 5,
223
- '${^CHILD_ERROR_NATIVE}' : 5,
224
- '$EXTENDED_OS_ERROR' : 5,
225
- '$^E' : 5,
226
- '$EXCEPTIONS_BEING_CAUGHT' : 5,
227
- '$^S' : 5,
228
- '$WARNING' : 5,
229
- '$^W' : 5,
230
- '${^WARNING_BITS}' : 5,
231
- '$OS_ERROR' : 5,
232
- '$ERRNO' : 5,
233
- '$!' : 5,
234
- '%OS_ERROR' : 5,
235
- '%ERRNO' : 5,
236
- '%!' : 5,
237
- '$CHILD_ERROR' : 5,
238
- '$?' : 5,
239
- '$EVAL_ERROR' : 5,
240
- '$@' : 5,
241
- '$OFMT' : 5,
242
- '$#' : 5,
243
- '$*' : 5,
244
- '$ARRAY_BASE' : 5,
245
- '$[' : 5,
246
- '$OLD_PERL_VERSION' : 5,
247
- '$]' : 5,
248
- // PERL blocks
249
- 'if' :[1,1],
250
- elsif :[1,1],
251
- 'else' :[1,1],
252
- 'while' :[1,1],
253
- unless :[1,1],
254
- 'for' :[1,1],
255
- foreach :[1,1],
256
- // PERL functions
257
- 'abs' :1, // - absolute value function
258
- accept :1, // - accept an incoming socket connect
259
- alarm :1, // - schedule a SIGALRM
260
- 'atan2' :1, // - arctangent of Y/X in the range -PI to PI
261
- bind :1, // - binds an address to a socket
262
- binmode :1, // - prepare binary files for I/O
263
- bless :1, // - create an object
264
- bootstrap :1, //
265
- 'break' :1, // - break out of a "given" block
266
- caller :1, // - get context of the current subroutine call
267
- chdir :1, // - change your current working directory
268
- chmod :1, // - changes the permissions on a list of files
269
- chomp :1, // - remove a trailing record separator from a string
270
- chop :1, // - remove the last character from a string
271
- chown :1, // - change the owership on a list of files
272
- chr :1, // - get character this number represents
273
- chroot :1, // - make directory new root for path lookups
274
- close :1, // - close file (or pipe or socket) handle
275
- closedir :1, // - close directory handle
276
- connect :1, // - connect to a remote socket
277
- 'continue' :[1,1], // - optional trailing block in a while or foreach
278
- 'cos' :1, // - cosine function
279
- crypt :1, // - one-way passwd-style encryption
280
- dbmclose :1, // - breaks binding on a tied dbm file
281
- dbmopen :1, // - create binding on a tied dbm file
282
- 'default' :1, //
283
- defined :1, // - test whether a value, variable, or function is defined
284
- 'delete' :1, // - deletes a value from a hash
285
- die :1, // - raise an exception or bail out
286
- 'do' :1, // - turn a BLOCK into a TERM
287
- dump :1, // - create an immediate core dump
288
- each :1, // - retrieve the next key/value pair from a hash
289
- endgrent :1, // - be done using group file
290
- endhostent :1, // - be done using hosts file
291
- endnetent :1, // - be done using networks file
292
- endprotoent :1, // - be done using protocols file
293
- endpwent :1, // - be done using passwd file
294
- endservent :1, // - be done using services file
295
- eof :1, // - test a filehandle for its end
296
- 'eval' :1, // - catch exceptions or compile and run code
297
- 'exec' :1, // - abandon this program to run another
298
- exists :1, // - test whether a hash key is present
299
- exit :1, // - terminate this program
300
- 'exp' :1, // - raise I to a power
301
- fcntl :1, // - file control system call
302
- fileno :1, // - return file descriptor from filehandle
303
- flock :1, // - lock an entire file with an advisory lock
304
- fork :1, // - create a new process just like this one
305
- format :1, // - declare a picture format with use by the write() function
306
- formline :1, // - internal function used for formats
307
- getc :1, // - get the next character from the filehandle
308
- getgrent :1, // - get next group record
309
- getgrgid :1, // - get group record given group user ID
310
- getgrnam :1, // - get group record given group name
311
- gethostbyaddr :1, // - get host record given its address
312
- gethostbyname :1, // - get host record given name
313
- gethostent :1, // - get next hosts record
314
- getlogin :1, // - return who logged in at this tty
315
- getnetbyaddr :1, // - get network record given its address
316
- getnetbyname :1, // - get networks record given name
317
- getnetent :1, // - get next networks record
318
- getpeername :1, // - find the other end of a socket connection
319
- getpgrp :1, // - get process group
320
- getppid :1, // - get parent process ID
321
- getpriority :1, // - get current nice value
322
- getprotobyname :1, // - get protocol record given name
323
- getprotobynumber :1, // - get protocol record numeric protocol
324
- getprotoent :1, // - get next protocols record
325
- getpwent :1, // - get next passwd record
326
- getpwnam :1, // - get passwd record given user login name
327
- getpwuid :1, // - get passwd record given user ID
328
- getservbyname :1, // - get services record given its name
329
- getservbyport :1, // - get services record given numeric port
330
- getservent :1, // - get next services record
331
- getsockname :1, // - retrieve the sockaddr for a given socket
332
- getsockopt :1, // - get socket options on a given socket
333
- given :1, //
334
- glob :1, // - expand filenames using wildcards
335
- gmtime :1, // - convert UNIX time into record or string using Greenwich time
336
- 'goto' :1, // - create spaghetti code
337
- grep :1, // - locate elements in a list test true against a given criterion
338
- hex :1, // - convert a string to a hexadecimal number
339
- 'import' :1, // - patch a module's namespace into your own
340
- index :1, // - find a substring within a string
341
- 'int' :1, // - get the integer portion of a number
342
- ioctl :1, // - system-dependent device control system call
343
- 'join' :1, // - join a list into a string using a separator
344
- keys :1, // - retrieve list of indices from a hash
345
- kill :1, // - send a signal to a process or process group
346
- last :1, // - exit a block prematurely
347
- lc :1, // - return lower-case version of a string
348
- lcfirst :1, // - return a string with just the next letter in lower case
349
- length :1, // - return the number of bytes in a string
350
- 'link' :1, // - create a hard link in the filesytem
351
- listen :1, // - register your socket as a server
352
- local : 2, // - create a temporary value for a global variable (dynamic scoping)
353
- localtime :1, // - convert UNIX time into record or string using local time
354
- lock :1, // - get a thread lock on a variable, subroutine, or method
355
- 'log' :1, // - retrieve the natural logarithm for a number
356
- lstat :1, // - stat a symbolic link
357
- m :null, // - match a string with a regular expression pattern
358
- map :1, // - apply a change to a list to get back a new list with the changes
359
- mkdir :1, // - create a directory
360
- msgctl :1, // - SysV IPC message control operations
361
- msgget :1, // - get SysV IPC message queue
362
- msgrcv :1, // - receive a SysV IPC message from a message queue
363
- msgsnd :1, // - send a SysV IPC message to a message queue
364
- my : 2, // - declare and assign a local variable (lexical scoping)
365
- 'new' :1, //
366
- next :1, // - iterate a block prematurely
367
- no :1, // - unimport some module symbols or semantics at compile time
368
- oct :1, // - convert a string to an octal number
369
- open :1, // - open a file, pipe, or descriptor
370
- opendir :1, // - open a directory
371
- ord :1, // - find a character's numeric representation
372
- our : 2, // - declare and assign a package variable (lexical scoping)
373
- pack :1, // - convert a list into a binary representation
374
- 'package' :1, // - declare a separate global namespace
375
- pipe :1, // - open a pair of connected filehandles
376
- pop :1, // - remove the last element from an array and return it
377
- pos :1, // - find or set the offset for the last/next m//g search
378
- print :1, // - output a list to a filehandle
379
- printf :1, // - output a formatted list to a filehandle
380
- prototype :1, // - get the prototype (if any) of a subroutine
381
- push :1, // - append one or more elements to an array
382
- q :null, // - singly quote a string
383
- qq :null, // - doubly quote a string
384
- qr :null, // - Compile pattern
385
- quotemeta :null, // - quote regular expression magic characters
386
- qw :null, // - quote a list of words
387
- qx :null, // - backquote quote a string
388
- rand :1, // - retrieve the next pseudorandom number
389
- read :1, // - fixed-length buffered input from a filehandle
390
- readdir :1, // - get a directory from a directory handle
391
- readline :1, // - fetch a record from a file
392
- readlink :1, // - determine where a symbolic link is pointing
393
- readpipe :1, // - execute a system command and collect standard output
394
- recv :1, // - receive a message over a Socket
395
- redo :1, // - start this loop iteration over again
396
- ref :1, // - find out the type of thing being referenced
397
- rename :1, // - change a filename
398
- require :1, // - load in external functions from a library at runtime
399
- reset :1, // - clear all variables of a given name
400
- 'return' :1, // - get out of a function early
401
- reverse :1, // - flip a string or a list
402
- rewinddir :1, // - reset directory handle
403
- rindex :1, // - right-to-left substring search
404
- rmdir :1, // - remove a directory
405
- s :null, // - replace a pattern with a string
406
- say :1, // - print with newline
407
- scalar :1, // - force a scalar context
408
- seek :1, // - reposition file pointer for random-access I/O
409
- seekdir :1, // - reposition directory pointer
410
- select :1, // - reset default output or do I/O multiplexing
411
- semctl :1, // - SysV semaphore control operations
412
- semget :1, // - get set of SysV semaphores
413
- semop :1, // - SysV semaphore operations
414
- send :1, // - send a message over a socket
415
- setgrent :1, // - prepare group file for use
416
- sethostent :1, // - prepare hosts file for use
417
- setnetent :1, // - prepare networks file for use
418
- setpgrp :1, // - set the process group of a process
419
- setpriority :1, // - set a process's nice value
420
- setprotoent :1, // - prepare protocols file for use
421
- setpwent :1, // - prepare passwd file for use
422
- setservent :1, // - prepare services file for use
423
- setsockopt :1, // - set some socket options
424
- shift :1, // - remove the first element of an array, and return it
425
- shmctl :1, // - SysV shared memory operations
426
- shmget :1, // - get SysV shared memory segment identifier
427
- shmread :1, // - read SysV shared memory
428
- shmwrite :1, // - write SysV shared memory
429
- shutdown :1, // - close down just half of a socket connection
430
- 'sin' :1, // - return the sine of a number
431
- sleep :1, // - block for some number of seconds
432
- socket :1, // - create a socket
433
- socketpair :1, // - create a pair of sockets
434
- 'sort' :1, // - sort a list of values
435
- splice :1, // - add or remove elements anywhere in an array
436
- 'split' :1, // - split up a string using a regexp delimiter
437
- sprintf :1, // - formatted print into a string
438
- 'sqrt' :1, // - square root function
439
- srand :1, // - seed the random number generator
440
- stat :1, // - get a file's status information
441
- state :1, // - declare and assign a state variable (persistent lexical scoping)
442
- study :1, // - optimize input data for repeated searches
443
- 'sub' :1, // - declare a subroutine, possibly anonymously
444
- 'substr' :1, // - get or alter a portion of a stirng
445
- symlink :1, // - create a symbolic link to a file
446
- syscall :1, // - execute an arbitrary system call
447
- sysopen :1, // - open a file, pipe, or descriptor
448
- sysread :1, // - fixed-length unbuffered input from a filehandle
449
- sysseek :1, // - position I/O pointer on handle used with sysread and syswrite
450
- system :1, // - run a separate program
451
- syswrite :1, // - fixed-length unbuffered output to a filehandle
452
- tell :1, // - get current seekpointer on a filehandle
453
- telldir :1, // - get current seekpointer on a directory handle
454
- tie :1, // - bind a variable to an object class
455
- tied :1, // - get a reference to the object underlying a tied variable
456
- time :1, // - return number of seconds since 1970
457
- times :1, // - return elapsed time for self and child processes
458
- tr :null, // - transliterate a string
459
- truncate :1, // - shorten a file
460
- uc :1, // - return upper-case version of a string
461
- ucfirst :1, // - return a string with just the next letter in upper case
462
- umask :1, // - set file creation mode mask
463
- undef :1, // - remove a variable or function definition
464
- unlink :1, // - remove one link to a file
465
- unpack :1, // - convert binary structure into normal perl variables
466
- unshift :1, // - prepend more elements to the beginning of a list
467
- untie :1, // - break a tie binding to a variable
468
- use :1, // - load in a module at compile time
469
- utime :1, // - set a file's last access and modify times
470
- values :1, // - return a list of the values in a hash
471
- vec :1, // - test or set particular bits in a string
472
- wait :1, // - wait for any child process to die
473
- waitpid :1, // - wait for a particular child process to die
474
- wantarray :1, // - get void vs scalar vs list context of current subroutine call
475
- warn :1, // - print debugging info
476
- when :1, //
477
- write :1, // - print a picture record
478
- y :null}; // - transliterate a string
479
-
480
- var RXstyle="string-2";
481
- var RXmodifiers=/[goseximacplud]/; // NOTE: "m", "s", "y" and "tr" need to correct real modifiers for each regexp type
482
-
483
- function tokenChain(stream,state,chain,style,tail){ // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;)
484
- state.chain=null; // 12 3tail
485
- state.style=null;
486
- state.tail=null;
487
- state.tokenize=function(stream,state){
488
- var e=false,c,i=0;
489
- while(c=stream.next()){
490
- if(c===chain[i]&&!e){
491
- if(chain[++i]!==undefined){
492
- state.chain=chain[i];
493
- state.style=style;
494
- state.tail=tail;}
495
- else if(tail)
496
- stream.eatWhile(tail);
497
- state.tokenize=tokenPerl;
498
- return style;}
499
- e=!e&&c=="\\";}
500
- return style;};
501
- return state.tokenize(stream,state);}
502
-
503
- function tokenSOMETHING(stream,state,string){
504
- state.tokenize=function(stream,state){
505
- if(stream.string==string)
506
- state.tokenize=tokenPerl;
507
- stream.skipToEnd();
508
- return "string";};
509
- return state.tokenize(stream,state);}
510
-
511
- function tokenPerl(stream,state){
512
- if(stream.eatSpace())
513
- return null;
514
- if(state.chain)
515
- return tokenChain(stream,state,state.chain,state.style,state.tail);
516
- if(stream.match(/^\-?[\d\.]/,false))
517
- if(stream.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/))
518
- return 'number';
519
- if(stream.match(/^<<(?=\w)/)){ // NOTE: <<SOMETHING\n...\nSOMETHING\n
520
- stream.eatWhile(/\w/);
521
- return tokenSOMETHING(stream,state,stream.current().substr(2));}
522
- if(stream.sol()&&stream.match(/^\=item(?!\w)/)){// NOTE: \n=item...\n=cut\n
523
- return tokenSOMETHING(stream,state,'=cut');}
524
- var ch=stream.next();
525
- if(ch=='"'||ch=="'"){ // NOTE: ' or " or <<'SOMETHING'\n...\nSOMETHING\n or <<"SOMETHING"\n...\nSOMETHING\n
526
- if(prefix(stream, 3)=="<<"+ch){
527
- var p=stream.pos;
528
- stream.eatWhile(/\w/);
529
- var n=stream.current().substr(1);
530
- if(n&&stream.eat(ch))
531
- return tokenSOMETHING(stream,state,n);
532
- stream.pos=p;}
533
- return tokenChain(stream,state,[ch],"string");}
534
- if(ch=="q"){
535
- var c=look(stream, -2);
536
- if(!(c&&/\w/.test(c))){
537
- c=look(stream, 0);
538
- if(c=="x"){
539
- c=look(stream, 1);
540
- if(c=="("){
541
- eatSuffix(stream, 2);
542
- return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
543
- if(c=="["){
544
- eatSuffix(stream, 2);
545
- return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
546
- if(c=="{"){
547
- eatSuffix(stream, 2);
548
- return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
549
- if(c=="<"){
550
- eatSuffix(stream, 2);
551
- return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
552
- if(/[\^'"!~\/]/.test(c)){
553
- eatSuffix(stream, 1);
554
- return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
555
- else if(c=="q"){
556
- c=look(stream, 1);
557
- if(c=="("){
558
- eatSuffix(stream, 2);
559
- return tokenChain(stream,state,[")"],"string");}
560
- if(c=="["){
561
- eatSuffix(stream, 2);
562
- return tokenChain(stream,state,["]"],"string");}
563
- if(c=="{"){
564
- eatSuffix(stream, 2);
565
- return tokenChain(stream,state,["}"],"string");}
566
- if(c=="<"){
567
- eatSuffix(stream, 2);
568
- return tokenChain(stream,state,[">"],"string");}
569
- if(/[\^'"!~\/]/.test(c)){
570
- eatSuffix(stream, 1);
571
- return tokenChain(stream,state,[stream.eat(c)],"string");}}
572
- else if(c=="w"){
573
- c=look(stream, 1);
574
- if(c=="("){
575
- eatSuffix(stream, 2);
576
- return tokenChain(stream,state,[")"],"bracket");}
577
- if(c=="["){
578
- eatSuffix(stream, 2);
579
- return tokenChain(stream,state,["]"],"bracket");}
580
- if(c=="{"){
581
- eatSuffix(stream, 2);
582
- return tokenChain(stream,state,["}"],"bracket");}
583
- if(c=="<"){
584
- eatSuffix(stream, 2);
585
- return tokenChain(stream,state,[">"],"bracket");}
586
- if(/[\^'"!~\/]/.test(c)){
587
- eatSuffix(stream, 1);
588
- return tokenChain(stream,state,[stream.eat(c)],"bracket");}}
589
- else if(c=="r"){
590
- c=look(stream, 1);
591
- if(c=="("){
592
- eatSuffix(stream, 2);
593
- return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
594
- if(c=="["){
595
- eatSuffix(stream, 2);
596
- return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
597
- if(c=="{"){
598
- eatSuffix(stream, 2);
599
- return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
600
- if(c=="<"){
601
- eatSuffix(stream, 2);
602
- return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}
603
- if(/[\^'"!~\/]/.test(c)){
604
- eatSuffix(stream, 1);
605
- return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}
606
- else if(/[\^'"!~\/(\[{<]/.test(c)){
607
- if(c=="("){
608
- eatSuffix(stream, 1);
609
- return tokenChain(stream,state,[")"],"string");}
610
- if(c=="["){
611
- eatSuffix(stream, 1);
612
- return tokenChain(stream,state,["]"],"string");}
613
- if(c=="{"){
614
- eatSuffix(stream, 1);
615
- return tokenChain(stream,state,["}"],"string");}
616
- if(c=="<"){
617
- eatSuffix(stream, 1);
618
- return tokenChain(stream,state,[">"],"string");}
619
- if(/[\^'"!~\/]/.test(c)){
620
- return tokenChain(stream,state,[stream.eat(c)],"string");}}}}
621
- if(ch=="m"){
622
- var c=look(stream, -2);
623
- if(!(c&&/\w/.test(c))){
624
- c=stream.eat(/[(\[{<\^'"!~\/]/);
625
- if(c){
626
- if(/[\^'"!~\/]/.test(c)){
627
- return tokenChain(stream,state,[c],RXstyle,RXmodifiers);}
628
- if(c=="("){
629
- return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);}
630
- if(c=="["){
631
- return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);}
632
- if(c=="{"){
633
- return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);}
634
- if(c=="<"){
635
- return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}}}}
636
- if(ch=="s"){
637
- var c=/[\/>\]})\w]/.test(look(stream, -2));
638
- if(!c){
639
- c=stream.eat(/[(\[{<\^'"!~\/]/);
640
- if(c){
641
- if(c=="[")
642
- return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
643
- if(c=="{")
644
- return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
645
- if(c=="<")
646
- return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
647
- if(c=="(")
648
- return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
649
- return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
650
- if(ch=="y"){
651
- var c=/[\/>\]})\w]/.test(look(stream, -2));
652
- if(!c){
653
- c=stream.eat(/[(\[{<\^'"!~\/]/);
654
- if(c){
655
- if(c=="[")
656
- return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
657
- if(c=="{")
658
- return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
659
- if(c=="<")
660
- return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
661
- if(c=="(")
662
- return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
663
- return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}
664
- if(ch=="t"){
665
- var c=/[\/>\]})\w]/.test(look(stream, -2));
666
- if(!c){
667
- c=stream.eat("r");if(c){
668
- c=stream.eat(/[(\[{<\^'"!~\/]/);
669
- if(c){
670
- if(c=="[")
671
- return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers);
672
- if(c=="{")
673
- return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers);
674
- if(c=="<")
675
- return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers);
676
- if(c=="(")
677
- return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers);
678
- return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}}
679
- if(ch=="`"){
680
- return tokenChain(stream,state,[ch],"variable-2");}
681
- if(ch=="/"){
682
- if(!/~\s*$/.test(prefix(stream)))
683
- return "operator";
684
- else
685
- return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);}
686
- if(ch=="$"){
687
- var p=stream.pos;
688
- if(stream.eatWhile(/\d/)||stream.eat("{")&&stream.eatWhile(/\d/)&&stream.eat("}"))
689
- return "variable-2";
690
- else
691
- stream.pos=p;}
692
- if(/[$@%]/.test(ch)){
693
- var p=stream.pos;
694
- if(stream.eat("^")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){
695
- var c=stream.current();
696
- if(PERL[c])
697
- return "variable-2";}
698
- stream.pos=p;}
699
- if(/[$@%&]/.test(ch)){
700
- if(stream.eatWhile(/[\w$\[\]]/)||stream.eat("{")&&stream.eatWhile(/[\w$\[\]]/)&&stream.eat("}")){
701
- var c=stream.current();
702
- if(PERL[c])
703
- return "variable-2";
704
- else
705
- return "variable";}}
706
- if(ch=="#"){
707
- if(look(stream, -2)!="$"){
708
- stream.skipToEnd();
709
- return "comment";}}
710
- if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(ch)){
711
- var p=stream.pos;
712
- stream.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/);
713
- if(PERL[stream.current()])
714
- return "operator";
715
- else
716
- stream.pos=p;}
717
- if(ch=="_"){
718
- if(stream.pos==1){
719
- if(suffix(stream, 6)=="_END__"){
720
- return tokenChain(stream,state,['\0'],"comment");}
721
- else if(suffix(stream, 7)=="_DATA__"){
722
- return tokenChain(stream,state,['\0'],"variable-2");}
723
- else if(suffix(stream, 7)=="_C__"){
724
- return tokenChain(stream,state,['\0'],"string");}}}
725
- if(/\w/.test(ch)){
726
- var p=stream.pos;
727
- if(look(stream, -2)=="{"&&(look(stream, 0)=="}"||stream.eatWhile(/\w/)&&look(stream, 0)=="}"))
728
- return "string";
729
- else
730
- stream.pos=p;}
731
- if(/[A-Z]/.test(ch)){
732
- var l=look(stream, -2);
733
- var p=stream.pos;
734
- stream.eatWhile(/[A-Z_]/);
735
- if(/[\da-z]/.test(look(stream, 0))){
736
- stream.pos=p;}
737
- else{
738
- var c=PERL[stream.current()];
739
- if(!c)
740
- return "meta";
741
- if(c[1])
742
- c=c[0];
743
- if(l!=":"){
744
- if(c==1)
745
- return "keyword";
746
- else if(c==2)
747
- return "def";
748
- else if(c==3)
749
- return "atom";
750
- else if(c==4)
751
- return "operator";
752
- else if(c==5)
753
- return "variable-2";
754
- else
755
- return "meta";}
756
- else
757
- return "meta";}}
758
- if(/[a-zA-Z_]/.test(ch)){
759
- var l=look(stream, -2);
760
- stream.eatWhile(/\w/);
761
- var c=PERL[stream.current()];
762
- if(!c)
763
- return "meta";
764
- if(c[1])
765
- c=c[0];
766
- if(l!=":"){
767
- if(c==1)
768
- return "keyword";
769
- else if(c==2)
770
- return "def";
771
- else if(c==3)
772
- return "atom";
773
- else if(c==4)
774
- return "operator";
775
- else if(c==5)
776
- return "variable-2";
777
- else
778
- return "meta";}
779
- else
780
- return "meta";}
781
- return null;}
782
-
783
- return{
784
- startState:function(){
785
- return{
786
- tokenize:tokenPerl,
787
- chain:null,
788
- style:null,
789
- tail:null};},
790
- token:function(stream,state){
791
- return (state.tokenize||tokenPerl)(stream,state);}
792
- };});
793
-
794
- CodeMirror.registerHelper("wordChars", "perl", /[\w$]/);
795
-
796
- CodeMirror.defineMIME("text/x-perl", "perl");
797
-
798
- // it's like "peek", but need for look-ahead or look-behind if index < 0
799
- function look(stream, c){
800
- return stream.string.charAt(stream.pos+(c||0));
801
- }
802
-
803
- // return a part of prefix of current stream from current position
804
- function prefix(stream, c){
805
- if(c){
806
- var x=stream.pos-c;
807
- return stream.string.substr((x>=0?x:0),c);}
808
- else{
809
- return stream.string.substr(0,stream.pos-1);
810
- }
811
- }
812
-
813
- // return a part of suffix of current stream from current position
814
- function suffix(stream, c){
815
- var y=stream.string.length;
816
- var x=y-stream.pos+1;
817
- return stream.string.substr(stream.pos,(c&&c<y?c:x));
818
- }
819
-
820
- // eating and vomiting a part of stream from current position
821
- function eatSuffix(stream, c){
822
- var x=stream.pos+c;
823
- var y;
824
- if(x<=0)
825
- stream.pos=0;
826
- else if(x>=(y=stream.string.length-1))
827
- stream.pos=y;
828
- else
829
- stream.pos=x;
830
- }
831
-
832
- });