marty 2.4.7 → 2.4.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile.dummy +8 -5
  3. data/Gemfile.lock +1 -1
  4. data/README.md +8 -0
  5. data/app/assets/javascripts/marty/application.js +1 -0
  6. data/app/assets/javascripts/marty/codemirror/codemirror.js +9730 -0
  7. data/app/{components/marty/script_form/client → assets/javascripts/marty/codemirror}/mode/delorean/delorean.js +0 -0
  8. data/app/assets/javascripts/marty/codemirror/mode/javascript/javascript.js +900 -0
  9. data/app/assets/javascripts/marty/codemirror/mode/python/python.js +399 -0
  10. data/app/{components/marty/script_form/client → assets/javascripts/marty/codemirror}/mode/ruby/ruby.js +135 -34
  11. data/app/{components/marty/script_form/client/Ext.ux.form.field.CodeMirror.js → assets/javascripts/marty/extjs/extensions/marty.js} +87 -6
  12. data/app/assets/stylesheets/marty/application.css +1 -13
  13. data/app/assets/stylesheets/marty/codemirror/codemirror.css +346 -0
  14. data/app/{components/marty/script_form/client → assets/stylesheets/marty/codemirror}/delorean.css +0 -0
  15. data/app/components/marty/auth_app/client/auth_app.js +82 -80
  16. data/app/components/marty/data_grid_view.rb +1 -54
  17. data/app/components/marty/data_grid_view/client/data_grid_view.js +49 -0
  18. data/app/components/marty/form.rb +1 -5
  19. data/app/components/marty/form/client/form.js +5 -0
  20. data/app/components/marty/grid.rb +1 -146
  21. data/app/components/marty/grid/client/grid.js +146 -0
  22. data/app/components/marty/import_view.rb +1 -32
  23. data/app/components/marty/import_view/client/import_view.js +32 -0
  24. data/app/components/marty/live_search_grid_panel.rb +1 -21
  25. data/app/components/marty/live_search_grid_panel/client/live_search_grid_panel.js +27 -0
  26. data/app/components/marty/main_auth_app.rb +4 -145
  27. data/app/components/marty/main_auth_app/client/main_auth_app.js +124 -0
  28. data/app/components/marty/mcfly_grid_panel.rb +1 -17
  29. data/app/components/marty/mcfly_grid_panel/client/mcfly_grid_panel.js +37 -0
  30. data/app/components/marty/new_posting_form.rb +1 -6
  31. data/app/components/marty/new_posting_form/client/new_posting_form.js +6 -0
  32. data/app/components/marty/panel.rb +1 -5
  33. data/app/components/marty/panel/client/panel.js +5 -0
  34. data/app/components/marty/posting_grid.rb +4 -55
  35. data/app/components/marty/posting_grid/client/posting_grid.js +50 -0
  36. data/app/components/marty/promise_view.rb +2 -75
  37. data/app/components/marty/promise_view/client/promise_view.css +12 -9
  38. data/app/components/marty/promise_view/client/promise_view.js +57 -0
  39. data/app/components/marty/report_form.rb +3 -69
  40. data/app/components/marty/report_form/client/report_form.js +78 -0
  41. data/app/components/marty/report_select.rb +1 -45
  42. data/app/components/marty/report_select/client/report_select.js +50 -0
  43. data/app/components/marty/reporting.rb +1 -8
  44. data/app/components/marty/reporting/client/reporting.js +8 -0
  45. data/app/components/marty/script_form.rb +2 -63
  46. data/app/components/marty/script_form/client/script_form.js +44 -0
  47. data/app/components/marty/script_tester.rb +1 -7
  48. data/app/components/marty/script_tester/client/script_tester.js +7 -0
  49. data/app/components/marty/scripting.rb +1 -55
  50. data/app/components/marty/scripting/client/scripting.js +62 -0
  51. data/app/components/marty/simple_app/client/simple_app.js +21 -13
  52. data/app/models/marty/promise.rb +22 -1
  53. data/app/views/layouts/marty/application.html.erb +8 -6
  54. data/docker-compose.dummy.yml +2 -0
  55. data/lib/marty/monkey.rb +0 -16
  56. data/lib/marty/version.rb +1 -1
  57. data/spec/dummy/config/initializers/assets.rb +1 -0
  58. data/spec/features/reporting_spec.rb +1 -0
  59. data/spec/features/scripting_spec.rb +4 -4
  60. data/spec/spec_helper.rb +1 -0
  61. data/spec/support/chromedriver.rb +5 -1
  62. data/spec/support/shared_connection_db_helpers.rb +42 -2
  63. metadata +29 -168
  64. data/app/assets/images/marty/.gitkeep +0 -0
  65. data/app/components/marty/mcfly_grid_panel/client/dup_in_form.js +0 -20
  66. data/app/components/marty/script_form/client/codemirror.css +0 -172
  67. data/app/components/marty/script_form/client/codemirror.js +0 -3130
  68. data/app/components/marty/script_form/client/mode/clike/clike.js +0 -284
  69. data/app/components/marty/script_form/client/mode/clike/index.html +0 -102
  70. data/app/components/marty/script_form/client/mode/clike/scala.html +0 -766
  71. data/app/components/marty/script_form/client/mode/clojure/clojure.js +0 -206
  72. data/app/components/marty/script_form/client/mode/clojure/index.html +0 -67
  73. data/app/components/marty/script_form/client/mode/coffeescript/LICENSE +0 -22
  74. data/app/components/marty/script_form/client/mode/coffeescript/coffeescript.js +0 -346
  75. data/app/components/marty/script_form/client/mode/coffeescript/index.html +0 -728
  76. data/app/components/marty/script_form/client/mode/commonlisp/commonlisp.js +0 -101
  77. data/app/components/marty/script_form/client/mode/commonlisp/index.html +0 -165
  78. data/app/components/marty/script_form/client/mode/css/css.js +0 -448
  79. data/app/components/marty/script_form/client/mode/css/index.html +0 -58
  80. data/app/components/marty/script_form/client/mode/css/test.js +0 -501
  81. data/app/components/marty/script_form/client/mode/diff/diff.js +0 -32
  82. data/app/components/marty/script_form/client/mode/diff/index.html +0 -105
  83. data/app/components/marty/script_form/client/mode/ecl/ecl.js +0 -203
  84. data/app/components/marty/script_form/client/mode/ecl/index.html +0 -42
  85. data/app/components/marty/script_form/client/mode/erlang/erlang.js +0 -463
  86. data/app/components/marty/script_form/client/mode/erlang/index.html +0 -63
  87. data/app/components/marty/script_form/client/mode/gfm/gfm.js +0 -150
  88. data/app/components/marty/script_form/client/mode/gfm/index.html +0 -48
  89. data/app/components/marty/script_form/client/mode/go/go.js +0 -170
  90. data/app/components/marty/script_form/client/mode/go/index.html +0 -73
  91. data/app/components/marty/script_form/client/mode/groovy/groovy.js +0 -210
  92. data/app/components/marty/script_form/client/mode/groovy/index.html +0 -72
  93. data/app/components/marty/script_form/client/mode/haskell/haskell.js +0 -242
  94. data/app/components/marty/script_form/client/mode/haskell/index.html +0 -61
  95. data/app/components/marty/script_form/client/mode/haxe/haxe.js +0 -429
  96. data/app/components/marty/script_form/client/mode/haxe/index.html +0 -91
  97. data/app/components/marty/script_form/client/mode/htmlembedded/htmlembedded.js +0 -72
  98. data/app/components/marty/script_form/client/mode/htmlembedded/index.html +0 -50
  99. data/app/components/marty/script_form/client/mode/htmlmixed/htmlmixed.js +0 -84
  100. data/app/components/marty/script_form/client/mode/htmlmixed/index.html +0 -52
  101. data/app/components/marty/script_form/client/mode/javascript/index.html +0 -78
  102. data/app/components/marty/script_form/client/mode/javascript/javascript.js +0 -361
  103. data/app/components/marty/script_form/client/mode/jinja2/index.html +0 -38
  104. data/app/components/marty/script_form/client/mode/jinja2/jinja2.js +0 -42
  105. data/app/components/marty/script_form/client/mode/less/index.html +0 -740
  106. data/app/components/marty/script_form/client/mode/less/less.js +0 -266
  107. data/app/components/marty/script_form/client/mode/lua/index.html +0 -73
  108. data/app/components/marty/script_form/client/mode/lua/lua.js +0 -140
  109. data/app/components/marty/script_form/client/mode/markdown/index.html +0 -343
  110. data/app/components/marty/script_form/client/mode/markdown/markdown.js +0 -382
  111. data/app/components/marty/script_form/client/mode/markdown/test.js +0 -1084
  112. data/app/components/marty/script_form/client/mode/mysql/index.html +0 -42
  113. data/app/components/marty/script_form/client/mode/mysql/mysql.js +0 -186
  114. data/app/components/marty/script_form/client/mode/ntriples/index.html +0 -33
  115. data/app/components/marty/script_form/client/mode/ntriples/ntriples.js +0 -172
  116. data/app/components/marty/script_form/client/mode/ocaml/index.html +0 -130
  117. data/app/components/marty/script_form/client/mode/ocaml/ocaml.js +0 -114
  118. data/app/components/marty/script_form/client/mode/pascal/LICENSE +0 -7
  119. data/app/components/marty/script_form/client/mode/pascal/index.html +0 -49
  120. data/app/components/marty/script_form/client/mode/pascal/pascal.js +0 -94
  121. data/app/components/marty/script_form/client/mode/perl/LICENSE +0 -19
  122. data/app/components/marty/script_form/client/mode/perl/index.html +0 -63
  123. data/app/components/marty/script_form/client/mode/perl/perl.js +0 -816
  124. data/app/components/marty/script_form/client/mode/php/index.html +0 -49
  125. data/app/components/marty/script_form/client/mode/php/php.js +0 -148
  126. data/app/components/marty/script_form/client/mode/pig/index.html +0 -43
  127. data/app/components/marty/script_form/client/mode/pig/pig.js +0 -172
  128. data/app/components/marty/script_form/client/mode/plsql/index.html +0 -63
  129. data/app/components/marty/script_form/client/mode/plsql/plsql.js +0 -217
  130. data/app/components/marty/script_form/client/mode/properties/index.html +0 -41
  131. data/app/components/marty/script_form/client/mode/properties/properties.js +0 -63
  132. data/app/components/marty/script_form/client/mode/python/LICENSE.txt +0 -21
  133. data/app/components/marty/script_form/client/mode/python/index.html +0 -123
  134. data/app/components/marty/script_form/client/mode/python/python.js +0 -338
  135. data/app/components/marty/script_form/client/mode/r/LICENSE +0 -24
  136. data/app/components/marty/script_form/client/mode/r/index.html +0 -74
  137. data/app/components/marty/script_form/client/mode/r/r.js +0 -141
  138. data/app/components/marty/script_form/client/mode/rpm/changes/changes.js +0 -19
  139. data/app/components/marty/script_form/client/mode/rpm/changes/index.html +0 -54
  140. data/app/components/marty/script_form/client/mode/rpm/spec/index.html +0 -100
  141. data/app/components/marty/script_form/client/mode/rpm/spec/spec.css +0 -5
  142. data/app/components/marty/script_form/client/mode/rpm/spec/spec.js +0 -66
  143. data/app/components/marty/script_form/client/mode/rst/index.html +0 -526
  144. data/app/components/marty/script_form/client/mode/rst/rst.js +0 -326
  145. data/app/components/marty/script_form/client/mode/ruby/LICENSE +0 -24
  146. data/app/components/marty/script_form/client/mode/ruby/index.html +0 -172
  147. data/app/components/marty/script_form/client/mode/rust/index.html +0 -49
  148. data/app/components/marty/script_form/client/mode/rust/rust.js +0 -432
  149. data/app/components/marty/script_form/client/mode/scheme/index.html +0 -65
  150. data/app/components/marty/script_form/client/mode/scheme/scheme.js +0 -230
  151. data/app/components/marty/script_form/client/mode/shell/index.html +0 -50
  152. data/app/components/marty/script_form/client/mode/shell/shell.js +0 -118
  153. data/app/components/marty/script_form/client/mode/sieve/LICENSE +0 -23
  154. data/app/components/marty/script_form/client/mode/sieve/index.html +0 -81
  155. data/app/components/marty/script_form/client/mode/sieve/sieve.js +0 -156
  156. data/app/components/marty/script_form/client/mode/smalltalk/index.html +0 -56
  157. data/app/components/marty/script_form/client/mode/smalltalk/smalltalk.js +0 -139
  158. data/app/components/marty/script_form/client/mode/smarty/index.html +0 -83
  159. data/app/components/marty/script_form/client/mode/smarty/smarty.js +0 -148
  160. data/app/components/marty/script_form/client/mode/sparql/index.html +0 -41
  161. data/app/components/marty/script_form/client/mode/sparql/sparql.js +0 -143
  162. data/app/components/marty/script_form/client/mode/stex/index.html +0 -98
  163. data/app/components/marty/script_form/client/mode/stex/stex.js +0 -182
  164. data/app/components/marty/script_form/client/mode/stex/test.js +0 -343
  165. data/app/components/marty/script_form/client/mode/tiddlywiki/index.html +0 -141
  166. data/app/components/marty/script_form/client/mode/tiddlywiki/tiddlywiki.css +0 -14
  167. data/app/components/marty/script_form/client/mode/tiddlywiki/tiddlywiki.js +0 -384
  168. data/app/components/marty/script_form/client/mode/tiki/index.html +0 -83
  169. data/app/components/marty/script_form/client/mode/tiki/tiki.css +0 -26
  170. data/app/components/marty/script_form/client/mode/tiki/tiki.js +0 -309
  171. data/app/components/marty/script_form/client/mode/vb/LICENSE.txt +0 -21
  172. data/app/components/marty/script_form/client/mode/vb/index.html +0 -89
  173. data/app/components/marty/script_form/client/mode/vb/vb.js +0 -260
  174. data/app/components/marty/script_form/client/mode/vbscript/index.html +0 -43
  175. data/app/components/marty/script_form/client/mode/vbscript/vbscript.js +0 -26
  176. data/app/components/marty/script_form/client/mode/velocity/index.html +0 -104
  177. data/app/components/marty/script_form/client/mode/velocity/velocity.js +0 -146
  178. data/app/components/marty/script_form/client/mode/verilog/index.html +0 -211
  179. data/app/components/marty/script_form/client/mode/verilog/verilog.js +0 -194
  180. data/app/components/marty/script_form/client/mode/xml/index.html +0 -45
  181. data/app/components/marty/script_form/client/mode/xml/xml.js +0 -318
  182. data/app/components/marty/script_form/client/mode/xquery/LICENSE +0 -20
  183. data/app/components/marty/script_form/client/mode/xquery/index.html +0 -223
  184. data/app/components/marty/script_form/client/mode/xquery/test/index.html +0 -27
  185. data/app/components/marty/script_form/client/mode/xquery/test/testBase.js +0 -42
  186. data/app/components/marty/script_form/client/mode/xquery/test/testEmptySequenceKeyword.js +0 -16
  187. data/app/components/marty/script_form/client/mode/xquery/test/testMultiAttr.js +0 -16
  188. data/app/components/marty/script_form/client/mode/xquery/test/testNamespaces.js +0 -91
  189. data/app/components/marty/script_form/client/mode/xquery/test/testProcessingInstructions.js +0 -16
  190. data/app/components/marty/script_form/client/mode/xquery/test/testQuotes.js +0 -19
  191. data/app/components/marty/script_form/client/mode/xquery/xquery.js +0 -451
  192. data/app/components/marty/script_form/client/mode/yaml/index.html +0 -68
  193. data/app/components/marty/script_form/client/mode/yaml/yaml.js +0 -95
  194. data/app/components/marty/script_form/client/theme/ambiance.css +0 -81
  195. data/app/components/marty/script_form/client/theme/blackboard.css +0 -25
  196. data/app/components/marty/script_form/client/theme/cobalt.css +0 -18
  197. data/app/components/marty/script_form/client/theme/eclipse.css +0 -25
  198. data/app/components/marty/script_form/client/theme/elegant.css +0 -10
  199. data/app/components/marty/script_form/client/theme/erlang-dark.css +0 -21
  200. data/app/components/marty/script_form/client/theme/lesser-dark.css +0 -44
  201. data/app/components/marty/script_form/client/theme/monokai.css +0 -28
  202. data/app/components/marty/script_form/client/theme/neat.css +0 -9
  203. data/app/components/marty/script_form/client/theme/night.css +0 -21
  204. data/app/components/marty/script_form/client/theme/rubyblue.css +0 -21
  205. data/app/components/marty/script_form/client/theme/vibrant-ink.css +0 -27
  206. data/app/components/marty/script_form/client/theme/xq-dark.css +0 -46
  207. data/app/components/marty/script_form/client/util/closetag.js +0 -164
  208. data/app/components/marty/script_form/client/util/dialog.css +0 -27
  209. data/app/components/marty/script_form/client/util/dialog.js +0 -70
  210. data/app/components/marty/script_form/client/util/foldcode.js +0 -196
  211. data/app/components/marty/script_form/client/util/formatting.js +0 -193
  212. data/app/components/marty/script_form/client/util/javascript-hint.js +0 -134
  213. data/app/components/marty/script_form/client/util/loadmode.js +0 -51
  214. data/app/components/marty/script_form/client/util/match-highlighter.js +0 -44
  215. data/app/components/marty/script_form/client/util/multiplex.js +0 -77
  216. data/app/components/marty/script_form/client/util/overlay.js +0 -54
  217. data/app/components/marty/script_form/client/util/pig-hint.js +0 -123
  218. data/app/components/marty/script_form/client/util/runmode-standalone.js +0 -90
  219. data/app/components/marty/script_form/client/util/runmode.js +0 -53
  220. data/app/components/marty/script_form/client/util/search.js +0 -118
  221. data/app/components/marty/script_form/client/util/searchcursor.js +0 -119
  222. data/app/components/marty/script_form/client/util/simple-hint.css +0 -16
  223. data/app/components/marty/script_form/client/util/simple-hint.js +0 -97
  224. data/app/components/marty/script_form/client/util/xml-hint.js +0 -137
  225. data/lib/marty/javascript/grid_view_in_form.js +0 -81
@@ -1,21 +0,0 @@
1
- .cm-s-rubyblue { font:13px/1.4em Trebuchet, Verdana, sans-serif; } /* - customized editor font - */
2
-
3
- .cm-s-rubyblue { background: #112435; color: white; }
4
- .cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; }
5
- .cm-s-rubyblue .CodeMirror-gutter { background: #1F4661; border-right: 7px solid #3E7087; min-width:2.5em; }
6
- .cm-s-rubyblue .CodeMirror-gutter-text { color: white; }
7
- .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; }
8
-
9
- .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }
10
- .cm-s-rubyblue span.cm-atom { color: #F4C20B; }
11
- .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }
12
- .cm-s-rubyblue span.cm-keyword { color: #F0F; }
13
- .cm-s-rubyblue span.cm-string { color: #F08047; }
14
- .cm-s-rubyblue span.cm-meta { color: #F0F; }
15
- .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
16
- .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }
17
- .cm-s-rubyblue span.cm-error { color: #AF2018; }
18
- .cm-s-rubyblue span.cm-bracket { color: #F0F; }
19
- .cm-s-rubyblue span.cm-link { color: #F4C20B; }
20
- .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
21
- .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
@@ -1,27 +0,0 @@
1
- /* Taken from the popular Visual Studio Vibrant Ink Schema */
2
-
3
- .cm-s-vibrant-ink { background: black; color: white; }
4
- .cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; }
5
-
6
- .cm-s-vibrant-ink .CodeMirror-gutter { background: #002240; border-right: 1px solid #aaa; }
7
- .cm-s-vibrant-ink .CodeMirror-gutter-text { color: #d0d0d0; }
8
- .cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; }
9
-
10
- .cm-s-vibrant-ink .cm-keyword { color: #CC7832; }
11
- .cm-s-vibrant-ink .cm-atom { color: #FC0; }
12
- .cm-s-vibrant-ink .cm-number { color: #FFEE98; }
13
- .cm-s-vibrant-ink .cm-def { color: #8DA6CE; }
14
- .cm-s-vibrant-ink span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #FFC66D }
15
- .cm-s-vibrant-ink span.cm-variable-3, .cm-s-cobalt span.cm-def { color: #FFC66D }
16
- .cm-s-vibrant-ink .cm-operator { color: #888; }
17
- .cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }
18
- .cm-s-vibrant-ink .cm-string { color: #A5C25C }
19
- .cm-s-vibrant-ink .cm-string-2 { color: red }
20
- .cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
21
- .cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
22
- .cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
23
- .cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
24
- .cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
25
- .cm-s-vibrant-ink .cm-header { color: #FF6400; }
26
- .cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
27
- .cm-s-vibrant-ink .cm-link { color: blue; }
@@ -1,46 +0,0 @@
1
- /*
2
- Copyright (C) 2011 by MarkLogic Corporation
3
- Author: Mike Brevoort <mike@brevoort.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
22
- */
23
- .cm-s-xq-dark { background: #0a001f; color: #f8f8f8; }
24
- .cm-s-xq-dark span.CodeMirror-selected { background: #a8f !important; }
25
- .cm-s-xq-dark .CodeMirror-gutter { background: #0a001f; border-right: 1px solid #aaa; }
26
- .cm-s-xq-dark .CodeMirror-gutter-text { color: #f8f8f8; }
27
- .cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
28
-
29
- .cm-s-xq-dark span.cm-keyword {color: #FFBD40;}
30
- .cm-s-xq-dark span.cm-atom {color: #6C8CD5;}
31
- .cm-s-xq-dark span.cm-number {color: #164;}
32
- .cm-s-xq-dark span.cm-def {color: #FFF; text-decoration:underline;}
33
- .cm-s-xq-dark span.cm-variable {color: #FFF;}
34
- .cm-s-xq-dark span.cm-variable-2 {color: #EEE;}
35
- .cm-s-xq-dark span.cm-variable-3 {color: #DDD;}
36
- .cm-s-xq-dark span.cm-property {}
37
- .cm-s-xq-dark span.cm-operator {}
38
- .cm-s-xq-dark span.cm-comment {color: gray;}
39
- .cm-s-xq-dark span.cm-string {color: #9FEE00;}
40
- .cm-s-xq-dark span.cm-meta {color: yellow;}
41
- .cm-s-xq-dark span.cm-error {color: #f00;}
42
- .cm-s-xq-dark span.cm-qualifier {color: #FFF700;}
43
- .cm-s-xq-dark span.cm-builtin {color: #30a;}
44
- .cm-s-xq-dark span.cm-bracket {color: #cc7;}
45
- .cm-s-xq-dark span.cm-tag {color: #FFBD40;}
46
- .cm-s-xq-dark span.cm-attribute {color: #FFF700;}
@@ -1,164 +0,0 @@
1
- /**
2
- * Tag-closer extension for CodeMirror.
3
- *
4
- * This extension adds a "closeTag" utility function that can be used with key bindings to
5
- * insert a matching end tag after the ">" character of a start tag has been typed. It can
6
- * also complete "</" if a matching start tag is found. It will correctly ignore signal
7
- * characters for empty tags, comments, CDATA, etc.
8
- *
9
- * The function depends on internal parser state to identify tags. It is compatible with the
10
- * following CodeMirror modes and will ignore all others:
11
- * - htmlmixed
12
- * - xml
13
- *
14
- * See demos/closetag.html for a usage example.
15
- *
16
- * @author Nathan Williams <nathan@nlwillia.net>
17
- * Contributed under the same license terms as CodeMirror.
18
- */
19
- (function() {
20
- /** Option that allows tag closing behavior to be toggled. Default is true. */
21
- CodeMirror.defaults['closeTagEnabled'] = true;
22
-
23
- /** Array of tag names to add indentation after the start tag for. Default is the list of block-level html tags. */
24
- CodeMirror.defaults['closeTagIndent'] = ['applet', 'blockquote', 'body', 'button', 'div', 'dl', 'fieldset', 'form', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'html', 'iframe', 'layer', 'legend', 'object', 'ol', 'p', 'select', 'table', 'ul'];
25
-
26
- /** Array of tag names where an end tag is forbidden. */
27
- CodeMirror.defaults['closeTagVoid'] = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];
28
-
29
- function innerState(cm, state) {
30
- return CodeMirror.innerMode(cm.getMode(), state).state;
31
- }
32
-
33
-
34
- /**
35
- * Call during key processing to close tags. Handles the key event if the tag is closed, otherwise throws CodeMirror.Pass.
36
- * - cm: The editor instance.
37
- * - ch: The character being processed.
38
- * - indent: Optional. An array of tag names to indent when closing. Omit or pass true to use the default indentation tag list defined in the 'closeTagIndent' option.
39
- * Pass false to disable indentation. Pass an array to override the default list of tag names.
40
- * - vd: Optional. An array of tag names that should not be closed. Omit to use the default void (end tag forbidden) tag list defined in the 'closeTagVoid' option. Ignored in xml mode.
41
- */
42
- CodeMirror.defineExtension("closeTag", function(cm, ch, indent, vd) {
43
- if (!cm.getOption('closeTagEnabled')) {
44
- throw CodeMirror.Pass;
45
- }
46
-
47
- /*
48
- * Relevant structure of token:
49
- *
50
- * htmlmixed
51
- * className
52
- * state
53
- * htmlState
54
- * type
55
- * tagName
56
- * context
57
- * tagName
58
- * mode
59
- *
60
- * xml
61
- * className
62
- * state
63
- * tagName
64
- * type
65
- */
66
-
67
- var pos = cm.getCursor();
68
- var tok = cm.getTokenAt(pos);
69
- var state = innerState(cm, tok.state);
70
-
71
- if (state) {
72
-
73
- if (ch == '>') {
74
- var type = state.type;
75
-
76
- if (tok.className == 'tag' && type == 'closeTag') {
77
- throw CodeMirror.Pass; // Don't process the '>' at the end of an end-tag.
78
- }
79
-
80
- cm.replaceSelection('>'); // Mode state won't update until we finish the tag.
81
- pos = {line: pos.line, ch: pos.ch + 1};
82
- cm.setCursor(pos);
83
-
84
- tok = cm.getTokenAt(cm.getCursor());
85
- state = innerState(cm, tok.state);
86
- if (!state) throw CodeMirror.Pass;
87
- var type = state.type;
88
-
89
- if (tok.className == 'tag' && type != 'selfcloseTag') {
90
- var tagName = state.tagName;
91
- if (tagName.length > 0 && shouldClose(cm, vd, tagName)) {
92
- insertEndTag(cm, indent, pos, tagName);
93
- }
94
- return;
95
- }
96
-
97
- // Undo the '>' insert and allow cm to handle the key instead.
98
- cm.setSelection({line: pos.line, ch: pos.ch - 1}, pos);
99
- cm.replaceSelection("");
100
-
101
- } else if (ch == '/') {
102
- if (tok.className == 'tag' && tok.string == '<') {
103
- var ctx = state.context, tagName = ctx ? ctx.tagName : '';
104
- if (tagName.length > 0) {
105
- completeEndTag(cm, pos, tagName);
106
- return;
107
- }
108
- }
109
- }
110
-
111
- }
112
-
113
- throw CodeMirror.Pass; // Bubble if not handled
114
- });
115
-
116
- function insertEndTag(cm, indent, pos, tagName) {
117
- if (shouldIndent(cm, indent, tagName)) {
118
- cm.replaceSelection('\n\n</' + tagName + '>', 'end');
119
- cm.indentLine(pos.line + 1);
120
- cm.indentLine(pos.line + 2);
121
- cm.setCursor({line: pos.line + 1, ch: cm.getLine(pos.line + 1).length});
122
- } else {
123
- cm.replaceSelection('</' + tagName + '>');
124
- cm.setCursor(pos);
125
- }
126
- }
127
-
128
- function shouldIndent(cm, indent, tagName) {
129
- if (typeof indent == 'undefined' || indent == null || indent == true) {
130
- indent = cm.getOption('closeTagIndent');
131
- }
132
- if (!indent) {
133
- indent = [];
134
- }
135
- return indexOf(indent, tagName.toLowerCase()) != -1;
136
- }
137
-
138
- function shouldClose(cm, vd, tagName) {
139
- if (cm.getOption('mode') == 'xml') {
140
- return true; // always close xml tags
141
- }
142
- if (typeof vd == 'undefined' || vd == null) {
143
- vd = cm.getOption('closeTagVoid');
144
- }
145
- if (!vd) {
146
- vd = [];
147
- }
148
- return indexOf(vd, tagName.toLowerCase()) == -1;
149
- }
150
-
151
- // C&P from codemirror.js...would be nice if this were visible to utilities.
152
- function indexOf(collection, elt) {
153
- if (collection.indexOf) return collection.indexOf(elt);
154
- for (var i = 0, e = collection.length; i < e; ++i)
155
- if (collection[i] == elt) return i;
156
- return -1;
157
- }
158
-
159
- function completeEndTag(cm, pos, tagName) {
160
- cm.replaceSelection('/' + tagName + '>');
161
- cm.setCursor({line: pos.line, ch: pos.ch + tagName.length + 2 });
162
- }
163
-
164
- })();
@@ -1,27 +0,0 @@
1
- .CodeMirror-dialog {
2
- position: relative;
3
- }
4
-
5
- .CodeMirror-dialog > div {
6
- position: absolute;
7
- top: 0; left: 0; right: 0;
8
- background: white;
9
- border-bottom: 1px solid #eee;
10
- z-index: 15;
11
- padding: .1em .8em;
12
- overflow: hidden;
13
- color: #333;
14
- }
15
-
16
- .CodeMirror-dialog input {
17
- border: none;
18
- outline: none;
19
- background: transparent;
20
- width: 20em;
21
- color: inherit;
22
- font-family: monospace;
23
- }
24
-
25
- .CodeMirror-dialog button {
26
- font-size: 70%;
27
- }
@@ -1,70 +0,0 @@
1
- // Open simple dialogs on top of an editor. Relies on dialog.css.
2
-
3
- (function() {
4
- function dialogDiv(cm, template) {
5
- var wrap = cm.getWrapperElement();
6
- var dialog = wrap.insertBefore(document.createElement("div"), wrap.firstChild);
7
- dialog.className = "CodeMirror-dialog";
8
- dialog.innerHTML = '<div>' + template + '</div>';
9
- return dialog;
10
- }
11
-
12
- CodeMirror.defineExtension("openDialog", function(template, callback) {
13
- var dialog = dialogDiv(this, template);
14
- var closed = false, me = this;
15
- function close() {
16
- if (closed) return;
17
- closed = true;
18
- dialog.parentNode.removeChild(dialog);
19
- }
20
- var inp = dialog.getElementsByTagName("input")[0], button;
21
- if (inp) {
22
- CodeMirror.connect(inp, "keydown", function(e) {
23
- if (e.keyCode == 13 || e.keyCode == 27) {
24
- CodeMirror.e_stop(e);
25
- close();
26
- me.focus();
27
- if (e.keyCode == 13) callback(inp.value);
28
- }
29
- });
30
- inp.focus();
31
- CodeMirror.connect(inp, "blur", close);
32
- } else if (button = dialog.getElementsByTagName("button")[0]) {
33
- CodeMirror.connect(button, "click", function() {
34
- close();
35
- me.focus();
36
- });
37
- button.focus();
38
- CodeMirror.connect(button, "blur", close);
39
- }
40
- return close;
41
- });
42
-
43
- CodeMirror.defineExtension("openConfirm", function(template, callbacks) {
44
- var dialog = dialogDiv(this, template);
45
- var buttons = dialog.getElementsByTagName("button");
46
- var closed = false, me = this, blurring = 1;
47
- function close() {
48
- if (closed) return;
49
- closed = true;
50
- dialog.parentNode.removeChild(dialog);
51
- me.focus();
52
- }
53
- buttons[0].focus();
54
- for (var i = 0; i < buttons.length; ++i) {
55
- var b = buttons[i];
56
- (function(callback) {
57
- CodeMirror.connect(b, "click", function(e) {
58
- CodeMirror.e_preventDefault(e);
59
- close();
60
- if (callback) callback(me);
61
- });
62
- })(callbacks[i]);
63
- CodeMirror.connect(b, "blur", function() {
64
- --blurring;
65
- setTimeout(function() { if (blurring <= 0) close(); }, 200);
66
- });
67
- CodeMirror.connect(b, "focus", function() { ++blurring; });
68
- }
69
- });
70
- })();
@@ -1,196 +0,0 @@
1
- // the tagRangeFinder function is
2
- // Copyright (C) 2011 by Daniel Glazman <daniel@glazman.org>
3
- // released under the MIT license (../../LICENSE) like the rest of CodeMirror
4
- CodeMirror.tagRangeFinder = function(cm, line, hideEnd) {
5
- var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
6
- var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
7
- var xmlNAMERegExp = new RegExp("^[" + nameStartChar + "][" + nameChar + "]*");
8
-
9
- var lineText = cm.getLine(line);
10
- var found = false;
11
- var tag = null;
12
- var pos = 0;
13
- while (!found) {
14
- pos = lineText.indexOf("<", pos);
15
- if (-1 == pos) // no tag on line
16
- return;
17
- if (pos + 1 < lineText.length && lineText[pos + 1] == "/") { // closing tag
18
- pos++;
19
- continue;
20
- }
21
- // ok we weem to have a start tag
22
- if (!lineText.substr(pos + 1).match(xmlNAMERegExp)) { // not a tag name...
23
- pos++;
24
- continue;
25
- }
26
- var gtPos = lineText.indexOf(">", pos + 1);
27
- if (-1 == gtPos) { // end of start tag not in line
28
- var l = line + 1;
29
- var foundGt = false;
30
- var lastLine = cm.lineCount();
31
- while (l < lastLine && !foundGt) {
32
- var lt = cm.getLine(l);
33
- var gt = lt.indexOf(">");
34
- if (-1 != gt) { // found a >
35
- foundGt = true;
36
- var slash = lt.lastIndexOf("/", gt);
37
- if (-1 != slash && slash < gt) {
38
- var str = lineText.substr(slash, gt - slash + 1);
39
- if (!str.match( /\/\s*\>/ )) { // yep, that's the end of empty tag
40
- if (hideEnd === true) l++;
41
- return l;
42
- }
43
- }
44
- }
45
- l++;
46
- }
47
- found = true;
48
- }
49
- else {
50
- var slashPos = lineText.lastIndexOf("/", gtPos);
51
- if (-1 == slashPos) { // cannot be empty tag
52
- found = true;
53
- // don't continue
54
- }
55
- else { // empty tag?
56
- // check if really empty tag
57
- var str = lineText.substr(slashPos, gtPos - slashPos + 1);
58
- if (!str.match( /\/\s*\>/ )) { // finally not empty
59
- found = true;
60
- // don't continue
61
- }
62
- }
63
- }
64
- if (found) {
65
- var subLine = lineText.substr(pos + 1);
66
- tag = subLine.match(xmlNAMERegExp);
67
- if (tag) {
68
- // we have an element name, wooohooo !
69
- tag = tag[0];
70
- // do we have the close tag on same line ???
71
- if (-1 != lineText.indexOf("</" + tag + ">", pos)) // yep
72
- {
73
- found = false;
74
- }
75
- // we don't, so we have a candidate...
76
- }
77
- else
78
- found = false;
79
- }
80
- if (!found)
81
- pos++;
82
- }
83
-
84
- if (found) {
85
- var startTag = "(\\<\\/" + tag + "\\>)|(\\<" + tag + "\\>)|(\\<" + tag + "\\s)|(\\<" + tag + "$)";
86
- var startTagRegExp = new RegExp(startTag, "g");
87
- var endTag = "</" + tag + ">";
88
- var depth = 1;
89
- var l = line + 1;
90
- var lastLine = cm.lineCount();
91
- while (l < lastLine) {
92
- lineText = cm.getLine(l);
93
- var match = lineText.match(startTagRegExp);
94
- if (match) {
95
- for (var i = 0; i < match.length; i++) {
96
- if (match[i] == endTag)
97
- depth--;
98
- else
99
- depth++;
100
- if (!depth) {
101
- if (hideEnd === true) l++;
102
- return l;
103
- }
104
- }
105
- }
106
- l++;
107
- }
108
- return;
109
- }
110
- };
111
-
112
- CodeMirror.braceRangeFinder = function(cm, line, hideEnd) {
113
- var lineText = cm.getLine(line), at = lineText.length, startChar, tokenType;
114
- for (;;) {
115
- var found = lineText.lastIndexOf("{", at);
116
- if (found < 0) break;
117
- tokenType = cm.getTokenAt({line: line, ch: found}).className;
118
- if (!/^(comment|string)/.test(tokenType)) { startChar = found; break; }
119
- at = found - 1;
120
- }
121
- if (startChar == null || lineText.lastIndexOf("}") > startChar) return;
122
- var count = 1, lastLine = cm.lineCount(), end;
123
- outer: for (var i = line + 1; i < lastLine; ++i) {
124
- var text = cm.getLine(i), pos = 0;
125
- for (;;) {
126
- var nextOpen = text.indexOf("{", pos), nextClose = text.indexOf("}", pos);
127
- if (nextOpen < 0) nextOpen = text.length;
128
- if (nextClose < 0) nextClose = text.length;
129
- pos = Math.min(nextOpen, nextClose);
130
- if (pos == text.length) break;
131
- if (cm.getTokenAt({line: i, ch: pos + 1}).className == tokenType) {
132
- if (pos == nextOpen) ++count;
133
- else if (!--count) { end = i; break outer; }
134
- }
135
- ++pos;
136
- }
137
- }
138
- if (end == null || end == line + 1) return;
139
- if (hideEnd === true) end++;
140
- return end;
141
- };
142
-
143
- CodeMirror.indentRangeFinder = function(cm, line) {
144
- var tabSize = cm.getOption("tabSize");
145
- var myIndent = cm.getLineHandle(line).indentation(tabSize), last;
146
- for (var i = line + 1, end = cm.lineCount(); i < end; ++i) {
147
- var handle = cm.getLineHandle(i);
148
- if (!/^\s*$/.test(handle.text)) {
149
- if (handle.indentation(tabSize) <= myIndent) break;
150
- last = i;
151
- }
152
- }
153
- if (!last) return null;
154
- return last + 1;
155
- };
156
-
157
- CodeMirror.newFoldFunction = function(rangeFinder, markText, hideEnd) {
158
- var folded = [];
159
- if (markText == null) markText = '<div style="position: absolute; left: 2px; color:#600">&#x25bc;</div>%N%';
160
-
161
- function isFolded(cm, n) {
162
- for (var i = 0; i < folded.length; ++i) {
163
- var start = cm.lineInfo(folded[i].start);
164
- if (!start) folded.splice(i--, 1);
165
- else if (start.line == n) return {pos: i, region: folded[i]};
166
- }
167
- }
168
-
169
- function expand(cm, region) {
170
- cm.clearMarker(region.start);
171
- for (var i = 0; i < region.hidden.length; ++i)
172
- cm.showLine(region.hidden[i]);
173
- }
174
-
175
- return function(cm, line) {
176
- cm.operation(function() {
177
- var known = isFolded(cm, line);
178
- if (known) {
179
- folded.splice(known.pos, 1);
180
- expand(cm, known.region);
181
- } else {
182
- var end = rangeFinder(cm, line, hideEnd);
183
- if (end == null) return;
184
- var hidden = [];
185
- for (var i = line + 1; i < end; ++i) {
186
- var handle = cm.hideLine(i);
187
- if (handle) hidden.push(handle);
188
- }
189
- var first = cm.setMarker(line, markText);
190
- var region = {start: first, hidden: hidden};
191
- cm.onDeleteLine(first, function() { expand(cm, region); });
192
- folded.push(region);
193
- }
194
- });
195
- };
196
- };