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,83 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>CodeMirror: Smarty mode</title>
6
- <link rel="stylesheet" href="../../lib/codemirror.css">
7
- <script src="../../lib/codemirror.js"></script>
8
- <script src="smarty.js"></script>
9
- <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
10
- <link rel="stylesheet" href="../../doc/docs.css">
11
- </head>
12
- <body>
13
- <h1>CodeMirror: Smarty mode</h1>
14
-
15
- <form><textarea id="code" name="code">
16
- {extends file="parent.tpl"}
17
- {include file="template.tpl"}
18
-
19
- {* some example Smarty content *}
20
- {if isset($name) && $name == 'Blog'}
21
- This is a {$var}.
22
- {$integer = 451}, {$array[] = "a"}, {$stringvar = "string"}
23
- {assign var='bob' value=$var.prop}
24
- {elseif $name == $foo}
25
- {function name=menu level=0}
26
- {foreach $data as $entry}
27
- {if is_array($entry)}
28
- - {$entry@key}
29
- {menu data=$entry level=$level+1}
30
- {else}
31
- {$entry}
32
- {/if}
33
- {/foreach}
34
- {/function}
35
- {/if}</textarea></form>
36
-
37
- <script>
38
- var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
39
- lineNumbers: true,
40
- mode: "smarty"
41
- });
42
- </script>
43
-
44
- <br />
45
-
46
- <form><textarea id="code2" name="code2">
47
- {--extends file="parent.tpl"--}
48
- {--include file="template.tpl"--}
49
-
50
- {--* some example Smarty content *--}
51
- {--if isset($name) && $name == 'Blog'--}
52
- This is a {--$var--}.
53
- {--$integer = 451--}, {--$array[] = "a"--}, {--$stringvar = "string"--}
54
- {--assign var='bob' value=$var.prop--}
55
- {--elseif $name == $foo--}
56
- {--function name=menu level=0--}
57
- {--foreach $data as $entry--}
58
- {--if is_array($entry)--}
59
- - {--$entry@key--}
60
- {--menu data=$entry level=$level+1--}
61
- {--else--}
62
- {--$entry--}
63
- {--/if--}
64
- {--/foreach--}
65
- {--/function--}
66
- {--/if--}</textarea></form>
67
-
68
- <script>
69
- var editor = CodeMirror.fromTextArea(document.getElementById("code2"), {
70
- lineNumbers: true,
71
- mode: {
72
- name: "smarty",
73
- leftDelimiter: "{--",
74
- rightDelimiter: "--}"
75
- }
76
- });
77
- </script>
78
-
79
- <p>A plain text/Smarty mode which allows for custom delimiter tags (defaults to <b>{</b> and <b>}</b>).</p>
80
-
81
- <p><strong>MIME types defined:</strong> <code>text/x-smarty</code></p>
82
- </body>
83
- </html>
@@ -1,148 +0,0 @@
1
- CodeMirror.defineMode("smarty", function(config, parserConfig) {
2
- var keyFuncs = ["debug", "extends", "function", "include", "literal"];
3
- var last;
4
- var regs = {
5
- operatorChars: /[+\-*&%=<>!?]/,
6
- validIdentifier: /[a-zA-Z0-9\_]/,
7
- stringChar: /[\'\"]/
8
- };
9
- var leftDelim = (typeof config.mode.leftDelimiter != 'undefined') ? config.mode.leftDelimiter : "{";
10
- var rightDelim = (typeof config.mode.rightDelimiter != 'undefined') ? config.mode.rightDelimiter : "}";
11
- function ret(style, lst) { last = lst; return style; }
12
-
13
-
14
- function tokenizer(stream, state) {
15
- function chain(parser) {
16
- state.tokenize = parser;
17
- return parser(stream, state);
18
- }
19
-
20
- if (stream.match(leftDelim, true)) {
21
- if (stream.eat("*")) {
22
- return chain(inBlock("comment", "*" + rightDelim));
23
- }
24
- else {
25
- state.tokenize = inSmarty;
26
- return "tag";
27
- }
28
- }
29
- else {
30
- // I'd like to do an eatWhile() here, but I can't get it to eat only up to the rightDelim string/char
31
- stream.next();
32
- return null;
33
- }
34
- }
35
-
36
- function inSmarty(stream, state) {
37
- if (stream.match(rightDelim, true)) {
38
- state.tokenize = tokenizer;
39
- return ret("tag", null);
40
- }
41
-
42
- var ch = stream.next();
43
- if (ch == "$") {
44
- stream.eatWhile(regs.validIdentifier);
45
- return ret("variable-2", "variable");
46
- }
47
- else if (ch == ".") {
48
- return ret("operator", "property");
49
- }
50
- else if (regs.stringChar.test(ch)) {
51
- state.tokenize = inAttribute(ch);
52
- return ret("string", "string");
53
- }
54
- else if (regs.operatorChars.test(ch)) {
55
- stream.eatWhile(regs.operatorChars);
56
- return ret("operator", "operator");
57
- }
58
- else if (ch == "[" || ch == "]") {
59
- return ret("bracket", "bracket");
60
- }
61
- else if (/\d/.test(ch)) {
62
- stream.eatWhile(/\d/);
63
- return ret("number", "number");
64
- }
65
- else {
66
- if (state.last == "variable") {
67
- if (ch == "@") {
68
- stream.eatWhile(regs.validIdentifier);
69
- return ret("property", "property");
70
- }
71
- else if (ch == "|") {
72
- stream.eatWhile(regs.validIdentifier);
73
- return ret("qualifier", "modifier");
74
- }
75
- }
76
- else if (state.last == "whitespace") {
77
- stream.eatWhile(regs.validIdentifier);
78
- return ret("attribute", "modifier");
79
- }
80
- else if (state.last == "property") {
81
- stream.eatWhile(regs.validIdentifier);
82
- return ret("property", null);
83
- }
84
- else if (/\s/.test(ch)) {
85
- last = "whitespace";
86
- return null;
87
- }
88
-
89
- var str = "";
90
- if (ch != "/") {
91
- str += ch;
92
- }
93
- var c = "";
94
- while ((c = stream.eat(regs.validIdentifier))) {
95
- str += c;
96
- }
97
- var i, j;
98
- for (i=0, j=keyFuncs.length; i<j; i++) {
99
- if (keyFuncs[i] == str) {
100
- return ret("keyword", "keyword");
101
- }
102
- }
103
- if (/\s/.test(ch)) {
104
- return null;
105
- }
106
- return ret("tag", "tag");
107
- }
108
- }
109
-
110
- function inAttribute(quote) {
111
- return function(stream, state) {
112
- while (!stream.eol()) {
113
- if (stream.next() == quote) {
114
- state.tokenize = inSmarty;
115
- break;
116
- }
117
- }
118
- return "string";
119
- };
120
- }
121
-
122
- function inBlock(style, terminator) {
123
- return function(stream, state) {
124
- while (!stream.eol()) {
125
- if (stream.match(terminator)) {
126
- state.tokenize = tokenizer;
127
- break;
128
- }
129
- stream.next();
130
- }
131
- return style;
132
- };
133
- }
134
-
135
- return {
136
- startState: function() {
137
- return { tokenize: tokenizer, mode: "smarty", last: null };
138
- },
139
- token: function(stream, state) {
140
- var style = state.tokenize(stream, state);
141
- state.last = last;
142
- return style;
143
- },
144
- electricChars: ""
145
- };
146
- });
147
-
148
- CodeMirror.defineMIME("text/x-smarty", "smarty");
@@ -1,41 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>CodeMirror: SPARQL mode</title>
6
- <link rel="stylesheet" href="../../lib/codemirror.css">
7
- <script src="../../lib/codemirror.js"></script>
8
- <script src="sparql.js"></script>
9
- <style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
10
- <link rel="stylesheet" href="../../doc/docs.css">
11
- </head>
12
- <body>
13
- <h1>CodeMirror: SPARQL mode</h1>
14
- <form><textarea id="code" name="code">
15
- PREFIX a: &lt;http://www.w3.org/2000/10/annotation-ns#>
16
- PREFIX dc: &lt;http://purl.org/dc/elements/1.1/>
17
- PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/>
18
-
19
- # Comment!
20
-
21
- SELECT ?given ?family
22
- WHERE {
23
- ?annot a:annotates &lt;http://www.w3.org/TR/rdf-sparql-query/> .
24
- ?annot dc:creator ?c .
25
- OPTIONAL {?c foaf:given ?given ;
26
- foaf:family ?family } .
27
- FILTER isBlank(?c)
28
- }
29
- </textarea></form>
30
- <script>
31
- var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
32
- mode: "application/x-sparql-query",
33
- tabMode: "indent",
34
- matchBrackets: true
35
- });
36
- </script>
37
-
38
- <p><strong>MIME types defined:</strong> <code>application/x-sparql-query</code>.</p>
39
-
40
- </body>
41
- </html>
@@ -1,143 +0,0 @@
1
- CodeMirror.defineMode("sparql", function(config) {
2
- var indentUnit = config.indentUnit;
3
- var curPunc;
4
-
5
- function wordRegexp(words) {
6
- return new RegExp("^(?:" + words.join("|") + ")$", "i");
7
- }
8
- var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", "sameterm", "isiri", "isuri",
9
- "isblank", "isliteral", "union", "a"]);
10
- var keywords = wordRegexp(["base", "prefix", "select", "distinct", "reduced", "construct", "describe",
11
- "ask", "from", "named", "where", "order", "limit", "offset", "filter", "optional",
12
- "graph", "by", "asc", "desc"]);
13
- var operatorChars = /[*+\-<>=&|]/;
14
-
15
- function tokenBase(stream, state) {
16
- var ch = stream.next();
17
- curPunc = null;
18
- if (ch == "$" || ch == "?") {
19
- stream.match(/^[\w\d]*/);
20
- return "variable-2";
21
- }
22
- else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) {
23
- stream.match(/^[^\s\u00a0>]*>?/);
24
- return "atom";
25
- }
26
- else if (ch == "\"" || ch == "'") {
27
- state.tokenize = tokenLiteral(ch);
28
- return state.tokenize(stream, state);
29
- }
30
- else if (/[{}\(\),\.;\[\]]/.test(ch)) {
31
- curPunc = ch;
32
- return null;
33
- }
34
- else if (ch == "#") {
35
- stream.skipToEnd();
36
- return "comment";
37
- }
38
- else if (operatorChars.test(ch)) {
39
- stream.eatWhile(operatorChars);
40
- return null;
41
- }
42
- else if (ch == ":") {
43
- stream.eatWhile(/[\w\d\._\-]/);
44
- return "atom";
45
- }
46
- else {
47
- stream.eatWhile(/[_\w\d]/);
48
- if (stream.eat(":")) {
49
- stream.eatWhile(/[\w\d_\-]/);
50
- return "atom";
51
- }
52
- var word = stream.current(), type;
53
- if (ops.test(word))
54
- return null;
55
- else if (keywords.test(word))
56
- return "keyword";
57
- else
58
- return "variable";
59
- }
60
- }
61
-
62
- function tokenLiteral(quote) {
63
- return function(stream, state) {
64
- var escaped = false, ch;
65
- while ((ch = stream.next()) != null) {
66
- if (ch == quote && !escaped) {
67
- state.tokenize = tokenBase;
68
- break;
69
- }
70
- escaped = !escaped && ch == "\\";
71
- }
72
- return "string";
73
- };
74
- }
75
-
76
- function pushContext(state, type, col) {
77
- state.context = {prev: state.context, indent: state.indent, col: col, type: type};
78
- }
79
- function popContext(state) {
80
- state.indent = state.context.indent;
81
- state.context = state.context.prev;
82
- }
83
-
84
- return {
85
- startState: function(base) {
86
- return {tokenize: tokenBase,
87
- context: null,
88
- indent: 0,
89
- col: 0};
90
- },
91
-
92
- token: function(stream, state) {
93
- if (stream.sol()) {
94
- if (state.context && state.context.align == null) state.context.align = false;
95
- state.indent = stream.indentation();
96
- }
97
- if (stream.eatSpace()) return null;
98
- var style = state.tokenize(stream, state);
99
-
100
- if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") {
101
- state.context.align = true;
102
- }
103
-
104
- if (curPunc == "(") pushContext(state, ")", stream.column());
105
- else if (curPunc == "[") pushContext(state, "]", stream.column());
106
- else if (curPunc == "{") pushContext(state, "}", stream.column());
107
- else if (/[\]\}\)]/.test(curPunc)) {
108
- while (state.context && state.context.type == "pattern") popContext(state);
109
- if (state.context && curPunc == state.context.type) popContext(state);
110
- }
111
- else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state);
112
- else if (/atom|string|variable/.test(style) && state.context) {
113
- if (/[\}\]]/.test(state.context.type))
114
- pushContext(state, "pattern", stream.column());
115
- else if (state.context.type == "pattern" && !state.context.align) {
116
- state.context.align = true;
117
- state.context.col = stream.column();
118
- }
119
- }
120
-
121
- return style;
122
- },
123
-
124
- indent: function(state, textAfter) {
125
- var firstChar = textAfter && textAfter.charAt(0);
126
- var context = state.context;
127
- if (/[\]\}]/.test(firstChar))
128
- while (context && context.type == "pattern") context = context.prev;
129
-
130
- var closing = context && firstChar == context.type;
131
- if (!context)
132
- return 0;
133
- else if (context.type == "pattern")
134
- return context.col;
135
- else if (context.align)
136
- return context.col + (closing ? 0 : 1);
137
- else
138
- return context.indent + (closing ? 0 : indentUnit);
139
- }
140
- };
141
- });
142
-
143
- CodeMirror.defineMIME("application/x-sparql-query", "sparql");
@@ -1,98 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>CodeMirror: sTeX mode</title>
6
- <link rel="stylesheet" href="../../lib/codemirror.css">
7
- <script src="../../lib/codemirror.js"></script>
8
- <script src="stex.js"></script>
9
- <style>.CodeMirror {background: #f8f8f8;}</style>
10
- <link rel="stylesheet" href="../../doc/docs.css">
11
- </head>
12
- <body>
13
- <h1>CodeMirror: sTeX mode</h1>
14
- <form><textarea id="code" name="code">
15
- \begin{module}[id=bbt-size]
16
- \importmodule[balanced-binary-trees]{balanced-binary-trees}
17
- \importmodule[\KWARCslides{dmath/en/cardinality}]{cardinality}
18
-
19
- \begin{frame}
20
- \frametitle{Size Lemma for Balanced Trees}
21
- \begin{itemize}
22
- \item
23
- \begin{assertion}[id=size-lemma,type=lemma]
24
- Let $G=\tup{V,E}$ be a \termref[cd=binary-trees]{balanced binary tree}
25
- of \termref[cd=graph-depth,name=vertex-depth]{depth}$n>i$, then the set
26
- $\defeq{\livar{V}i}{\setst{\inset{v}{V}}{\gdepth{v} = i}}$ of
27
- \termref[cd=graphs-intro,name=node]{nodes} at
28
- \termref[cd=graph-depth,name=vertex-depth]{depth} $i$ has
29
- \termref[cd=cardinality,name=cardinality]{cardinality} $\power2i$.
30
- \end{assertion}
31
- \item
32
- \begin{sproof}[id=size-lemma-pf,proofend=,for=size-lemma]{via induction over the depth $i$.}
33
- \begin{spfcases}{We have to consider two cases}
34
- \begin{spfcase}{$i=0$}
35
- \begin{spfstep}[display=flow]
36
- then $\livar{V}i=\set{\livar{v}r}$, where $\livar{v}r$ is the root, so
37
- $\eq{\card{\livar{V}0},\card{\set{\livar{v}r}},1,\power20}$.
38
- \end{spfstep}
39
- \end{spfcase}
40
- \begin{spfcase}{$i>0$}
41
- \begin{spfstep}[display=flow]
42
- then $\livar{V}{i-1}$ contains $\power2{i-1}$ vertexes
43
- \begin{justification}[method=byIH](IH)\end{justification}
44
- \end{spfstep}
45
- \begin{spfstep}
46
- By the \begin{justification}[method=byDef]definition of a binary
47
- tree\end{justification}, each $\inset{v}{\livar{V}{i-1}}$ is a leaf or has
48
- two children that are at depth $i$.
49
- \end{spfstep}
50
- \begin{spfstep}
51
- As $G$ is \termref[cd=balanced-binary-trees,name=balanced-binary-tree]{balanced} and $\gdepth{G}=n>i$, $\livar{V}{i-1}$ cannot contain
52
- leaves.
53
- \end{spfstep}
54
- \begin{spfstep}[type=conclusion]
55
- Thus $\eq{\card{\livar{V}i},{\atimes[cdot]{2,\card{\livar{V}{i-1}}}},{\atimes[cdot]{2,\power2{i-1}}},\power2i}$.
56
- \end{spfstep}
57
- \end{spfcase}
58
- \end{spfcases}
59
- \end{sproof}
60
- \item
61
- \begin{assertion}[id=fbbt,type=corollary]
62
- A fully balanced tree of depth $d$ has $\power2{d+1}-1$ nodes.
63
- \end{assertion}
64
- \item
65
- \begin{sproof}[for=fbbt,id=fbbt-pf]{}
66
- \begin{spfstep}
67
- Let $\defeq{G}{\tup{V,E}}$ be a fully balanced tree
68
- \end{spfstep}
69
- \begin{spfstep}
70
- Then $\card{V}=\Sumfromto{i}1d{\power2i}= \power2{d+1}-1$.
71
- \end{spfstep}
72
- \end{sproof}
73
- \end{itemize}
74
- \end{frame}
75
- \begin{note}
76
- \begin{omtext}[type=conclusion,for=binary-tree]
77
- This shows that balanced binary trees grow in breadth very quickly, a consequence of
78
- this is that they are very shallow (and this compute very fast), which is the essence of
79
- the next result.
80
- \end{omtext}
81
- \end{note}
82
- \end{module}
83
-
84
- %%% Local Variables:
85
- %%% mode: LaTeX
86
- %%% TeX-master: "all"
87
- %%% End: \end{document}
88
- </textarea></form>
89
- <script>
90
- var editor = CodeMirror.fromTextArea(document.getElementById("code"), {});
91
- </script>
92
-
93
- <p><strong>MIME types defined:</strong> <code>text/x-stex</code>.</p>
94
-
95
- <p><strong>Parsing/Highlighting Tests:</strong> <a href="../../test/index.html#stex_*">normal</a>, <a href="../../test/index.html#verbose,stex_*">verbose</a>.</p>
96
-
97
- </body>
98
- </html>