marty 2.4.7 → 2.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,266 +0,0 @@
1
- /*
2
- LESS mode - http://www.lesscss.org/
3
- Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
4
- Report bugs/issues here: https://github.com/marijnh/CodeMirror/issues GitHub: @peterkroon
5
- */
6
-
7
- CodeMirror.defineMode("less", function(config) {
8
- var indentUnit = config.indentUnit, type;
9
- function ret(style, tp) {type = tp; return style;}
10
- //html tags
11
- var tags = "a abbr acronym address applet area article aside audio b base basefont bdi bdo big blockquote body br button canvas caption cite code col colgroup command datalist dd del details dfn dir div dl dt em embed fieldset figcaption figure font footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins keygen kbd label legend li link map mark menu meta meter nav noframes noscript object ol optgroup option output p param pre progress q rp rt ruby s samp script section select small source span strike strong style sub summary sup table tbody td textarea tfoot th thead time title tr track tt u ul var video wbr".split(' ');
12
-
13
- function inTagsArray(val){
14
- for(var i=0; i<tags.length; i++)if(val === tags[i])return true;
15
- }
16
-
17
- var selectors = /(^\:root$|^\:nth\-child$|^\:nth\-last\-child$|^\:nth\-of\-type$|^\:nth\-last\-of\-type$|^\:first\-child$|^\:last\-child$|^\:first\-of\-type$|^\:last\-of\-type$|^\:only\-child$|^\:only\-of\-type$|^\:empty$|^\:link|^\:visited$|^\:active$|^\:hover$|^\:focus$|^\:target$|^\:lang$|^\:enabled^\:disabled$|^\:checked$|^\:first\-line$|^\:first\-letter$|^\:before$|^\:after$|^\:not$|^\:required$|^\:invalid$)/;
18
-
19
- function tokenBase(stream, state) {
20
- var ch = stream.next();
21
-
22
- if (ch == "@") {stream.eatWhile(/[\w\-]/); return ret("meta", stream.current());}
23
- else if (ch == "/" && stream.eat("*")) {
24
- state.tokenize = tokenCComment;
25
- return tokenCComment(stream, state);
26
- }
27
- else if (ch == "<" && stream.eat("!")) {
28
- state.tokenize = tokenSGMLComment;
29
- return tokenSGMLComment(stream, state);
30
- }
31
- else if (ch == "=") ret(null, "compare");
32
- else if (ch == "|" && stream.eat("=")) return ret(null, "compare");
33
- else if (ch == "\"" || ch == "'") {
34
- state.tokenize = tokenString(ch);
35
- return state.tokenize(stream, state);
36
- }
37
- else if (ch == "/") { // e.g.: .png will not be parsed as a class
38
- if(stream.eat("/")){
39
- state.tokenize = tokenSComment;
40
- return tokenSComment(stream, state);
41
- }else{
42
- if(type == "string" || type == "(")return ret("string", "string");
43
- if(state.stack[state.stack.length-1] != undefined)return ret(null, ch);
44
- stream.eatWhile(/[\a-zA-Z0-9\-_.\s]/);
45
- if( /\/|\)|#/.test(stream.peek() || (stream.eatSpace() && stream.peek() == ")")) || stream.eol() )return ret("string", "string"); // let url(/images/logo.png) without quotes return as string
46
- }
47
- }
48
- else if (ch == "!") {
49
- stream.match(/^\s*\w*/);
50
- return ret("keyword", "important");
51
- }
52
- else if (/\d/.test(ch)) {
53
- stream.eatWhile(/[\w.%]/);
54
- return ret("number", "unit");
55
- }
56
- else if (/[,+<>*\/]/.test(ch)) {
57
- if(stream.peek() == "=" || type == "a")return ret("string", "string");
58
- return ret(null, "select-op");
59
- }
60
- else if (/[;{}:\[\]()~\|]/.test(ch)) {
61
- if(ch == ":"){
62
- stream.eatWhile(/[a-z\\\-]/);
63
- if( selectors.test(stream.current()) ){
64
- return ret("tag", "tag");
65
- }else if(stream.peek() == ":"){//::-webkit-search-decoration
66
- stream.next();
67
- stream.eatWhile(/[a-z\\\-]/);
68
- if(stream.current().match(/\:\:\-(o|ms|moz|webkit)\-/))return ret("string", "string");
69
- if( selectors.test(stream.current().substring(1)) )return ret("tag", "tag");
70
- return ret(null, ch);
71
- }else{
72
- return ret(null, ch);
73
- }
74
- }else if(ch == "~"){
75
- if(type == "r")return ret("string", "string");
76
- }else{
77
- return ret(null, ch);
78
- }
79
- }
80
- else if (ch == ".") {
81
- if(type == "(" || type == "string")return ret("string", "string"); // allow url(../image.png)
82
- stream.eatWhile(/[\a-zA-Z0-9\-_]/);
83
- if(stream.peek() == " ")stream.eatSpace();
84
- if(stream.peek() == ")")return ret("number", "unit");//rgba(0,0,0,.25);
85
- return ret("tag", "tag");
86
- }
87
- else if (ch == "#") {
88
- //we don't eat white-space, we want the hex color and or id only
89
- stream.eatWhile(/[A-Za-z0-9]/);
90
- //check if there is a proper hex color length e.g. #eee || #eeeEEE
91
- if(stream.current().length == 4 || stream.current().length == 7){
92
- if(stream.current().match(/[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}/,false) != null){//is there a valid hex color value present in the current stream
93
- //when not a valid hex value, parse as id
94
- if(stream.current().substring(1) != stream.current().match(/[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}/,false))return ret("atom", "tag");
95
- //eat white-space
96
- stream.eatSpace();
97
- //when hex value declaration doesn't end with [;,] but is does with a slash/cc comment treat it as an id, just like the other hex values that don't end with[;,]
98
- if( /[\/<>.(){!$%^&*_\-\\?=+\|#'~`]/.test(stream.peek()) )return ret("atom", "tag");
99
- //#time { color: #aaa }
100
- else if(stream.peek() == "}" )return ret("number", "unit");
101
- //we have a valid hex color value, parse as id whenever an element/class is defined after the hex(id) value e.g. #eee aaa || #eee .aaa
102
- else if( /[a-zA-Z\\]/.test(stream.peek()) )return ret("atom", "tag");
103
- //when a hex value is on the end of a line, parse as id
104
- else if(stream.eol())return ret("atom", "tag");
105
- //default
106
- else return ret("number", "unit");
107
- }else{//when not a valid hexvalue in the current stream e.g. #footer
108
- stream.eatWhile(/[\w\\\-]/);
109
- return ret("atom", "tag");
110
- }
111
- }else{//when not a valid hexvalue length
112
- stream.eatWhile(/[\w\\\-]/);
113
- return ret("atom", "tag");
114
- }
115
- }
116
- else if (ch == "&") {
117
- stream.eatWhile(/[\w\-]/);
118
- return ret(null, ch);
119
- }
120
- else {
121
- stream.eatWhile(/[\w\\\-_%.{]/);
122
- if(type == "string"){
123
- return ret("string", "string");
124
- }else if(stream.current().match(/(^http$|^https$)/) != null){
125
- stream.eatWhile(/[\w\\\-_%.{:\/]/);
126
- return ret("string", "string");
127
- }else if(stream.peek() == "<" || stream.peek() == ">"){
128
- return ret("tag", "tag");
129
- }else if( /\(/.test(stream.peek()) ){
130
- return ret(null, ch);
131
- }else if (stream.peek() == "/" && state.stack[state.stack.length-1] != undefined){ // url(dir/center/image.png)
132
- return ret("string", "string");
133
- }else if( stream.current().match(/\-\d|\-.\d/) ){ // match e.g.: -5px -0.4 etc... only colorize the minus sign
134
- //commment out these 2 comment if you want the minus sign to be parsed as null -500px
135
- //stream.backUp(stream.current().length-1);
136
- //return ret(null, ch); //console.log( stream.current() );
137
- return ret("number", "unit");
138
- }else if( inTagsArray(stream.current().toLowerCase()) ){ // match html tags
139
- return ret("tag", "tag");
140
- }else if( /\/|[\s\)]/.test(stream.peek() || stream.eol() || (stream.eatSpace() && stream.peek() == "/")) && stream.current().indexOf(".") !== -1){
141
- if(stream.current().substring(stream.current().length-1,stream.current().length) == "{"){
142
- stream.backUp(1);
143
- return ret("tag", "tag");
144
- }//end if
145
- stream.eatSpace();
146
- if( /[{<>.a-zA-Z\/]/.test(stream.peek()) || stream.eol() )return ret("tag", "tag"); // e.g. button.icon-plus
147
- return ret("string", "string"); // let url(/images/logo.png) without quotes return as string
148
- }else if( stream.eol() || stream.peek() == "[" || stream.peek() == "#" || type == "tag" ){
149
- if(stream.current().substring(stream.current().length-1,stream.current().length) == "{")stream.backUp(1);
150
- return ret("tag", "tag");
151
- }else if(type == "compare" || type == "a" || type == "("){
152
- return ret("string", "string");
153
- }else if(type == "|" || stream.current() == "-" || type == "["){
154
- return ret(null, ch);
155
- }else if(stream.peek() == ":") {
156
- stream.next();
157
- var t_v = stream.peek() == ":" ? true : false;
158
- if(!t_v){
159
- var old_pos = stream.pos;
160
- var sc = stream.current().length;
161
- stream.eatWhile(/[a-z\\\-]/);
162
- var new_pos = stream.pos;
163
- if(stream.current().substring(sc-1).match(selectors) != null){
164
- stream.backUp(new_pos-(old_pos-1));
165
- return ret("tag", "tag");
166
- } else stream.backUp(new_pos-(old_pos-1));
167
- }else{
168
- stream.backUp(1);
169
- }
170
- if(t_v)return ret("tag", "tag"); else return ret("variable", "variable");
171
- }else{
172
- return ret("variable", "variable");
173
- }
174
- }
175
- }
176
-
177
- function tokenSComment(stream, state) { // SComment = Slash comment
178
- stream.skipToEnd();
179
- state.tokenize = tokenBase;
180
- return ret("comment", "comment");
181
- }
182
-
183
- function tokenCComment(stream, state) {
184
- var maybeEnd = false, ch;
185
- while ((ch = stream.next()) != null) {
186
- if (maybeEnd && ch == "/") {
187
- state.tokenize = tokenBase;
188
- break;
189
- }
190
- maybeEnd = (ch == "*");
191
- }
192
- return ret("comment", "comment");
193
- }
194
-
195
- function tokenSGMLComment(stream, state) {
196
- var dashes = 0, ch;
197
- while ((ch = stream.next()) != null) {
198
- if (dashes >= 2 && ch == ">") {
199
- state.tokenize = tokenBase;
200
- break;
201
- }
202
- dashes = (ch == "-") ? dashes + 1 : 0;
203
- }
204
- return ret("comment", "comment");
205
- }
206
-
207
- function tokenString(quote) {
208
- return function(stream, state) {
209
- var escaped = false, ch;
210
- while ((ch = stream.next()) != null) {
211
- if (ch == quote && !escaped)
212
- break;
213
- escaped = !escaped && ch == "\\";
214
- }
215
- if (!escaped) state.tokenize = tokenBase;
216
- return ret("string", "string");
217
- };
218
- }
219
-
220
- return {
221
- startState: function(base) {
222
- return {tokenize: tokenBase,
223
- baseIndent: base || 0,
224
- stack: []};
225
- },
226
-
227
- token: function(stream, state) {
228
- if (stream.eatSpace()) return null;
229
- var style = state.tokenize(stream, state);
230
-
231
- var context = state.stack[state.stack.length-1];
232
- if (type == "hash" && context == "rule") style = "atom";
233
- else if (style == "variable") {
234
- if (context == "rule") style = null; //"tag"
235
- else if (!context || context == "@media{") {
236
- style = stream.current() == "when" ? "variable" :
237
- /[\s,|\s\)|\s]/.test(stream.peek()) ? "tag" : type;
238
- }
239
- }
240
-
241
- if (context == "rule" && /^[\{\};]$/.test(type))
242
- state.stack.pop();
243
- if (type == "{") {
244
- if (context == "@media") state.stack[state.stack.length-1] = "@media{";
245
- else state.stack.push("{");
246
- }
247
- else if (type == "}") state.stack.pop();
248
- else if (type == "@media") state.stack.push("@media");
249
- else if (context == "{" && type != "comment") state.stack.push("rule");
250
- return style;
251
- },
252
-
253
- indent: function(state, textAfter) {
254
- var n = state.stack.length;
255
- if (/^\}/.test(textAfter))
256
- n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1;
257
- return state.baseIndent + n * indentUnit;
258
- },
259
-
260
- electricChars: "}"
261
- };
262
- });
263
-
264
- CodeMirror.defineMIME("text/x-less", "less");
265
- if (!CodeMirror.mimeModes.hasOwnProperty("text/css"))
266
- CodeMirror.defineMIME("text/css", "less");
@@ -1,73 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>CodeMirror: Lua mode</title>
6
- <link rel="stylesheet" href="../../lib/codemirror.css">
7
- <script src="../../lib/codemirror.js"></script>
8
- <script src="lua.js"></script>
9
- <link rel="stylesheet" href="../../theme/neat.css">
10
- <style>.CodeMirror {border: 1px solid black;}</style>
11
- <link rel="stylesheet" href="../../doc/docs.css">
12
- </head>
13
- <body>
14
- <h1>CodeMirror: Lua mode</h1>
15
- <form><textarea id="code" name="code">
16
- --[[
17
- example useless code to show lua syntax highlighting
18
- this is multiline comment
19
- ]]
20
-
21
- function blahblahblah(x)
22
-
23
- local table = {
24
- "asd" = 123,
25
- "x" = 0.34,
26
- }
27
- if x ~= 3 then
28
- print( x )
29
- elseif x == "string"
30
- my_custom_function( 0x34 )
31
- else
32
- unknown_function( "some string" )
33
- end
34
-
35
- --single line comment
36
-
37
- end
38
-
39
- function blablabla3()
40
-
41
- for k,v in ipairs( table ) do
42
- --abcde..
43
- y=[=[
44
- x=[[
45
- x is a multi line string
46
- ]]
47
- but its definition is iside a highest level string!
48
- ]=]
49
- print(" \"\" ")
50
-
51
- s = math.sin( x )
52
- end
53
-
54
- end
55
- </textarea></form>
56
- <script>
57
- var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
58
- tabMode: "indent",
59
- matchBrackets: true,
60
- theme: "neat"
61
- });
62
- </script>
63
-
64
- <p>Loosely based on Franciszek
65
- Wawrzak's <a href="http://codemirror.net/1/contrib/lua">CodeMirror
66
- 1 mode</a>. One configuration parameter is
67
- supported, <code>specials</code>, to which you can provide an
68
- array of strings to have those identifiers highlighted with
69
- the <code>lua-special</code> style.</p>
70
- <p><strong>MIME types defined:</strong> <code>text/x-lua</code>.</p>
71
-
72
- </body>
73
- </html>
@@ -1,140 +0,0 @@
1
- // LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's
2
- // CodeMirror 1 mode.
3
- // highlights keywords, strings, comments (no leveling supported! ("[==[")), tokens, basic indenting
4
-
5
- CodeMirror.defineMode("lua", function(config, parserConfig) {
6
- var indentUnit = config.indentUnit;
7
-
8
- function prefixRE(words) {
9
- return new RegExp("^(?:" + words.join("|") + ")", "i");
10
- }
11
- function wordRE(words) {
12
- return new RegExp("^(?:" + words.join("|") + ")$", "i");
13
- }
14
- var specials = wordRE(parserConfig.specials || []);
15
-
16
- // long list of standard functions from lua manual
17
- var builtins = wordRE([
18
- "_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load",
19
- "loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require",
20
- "select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall",
21
-
22
- "coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield",
23
-
24
- "debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable",
25
- "debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable",
26
- "debug.setupvalue","debug.traceback",
27
-
28
- "close","flush","lines","read","seek","setvbuf","write",
29
-
30
- "io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin",
31
- "io.stdout","io.tmpfile","io.type","io.write",
32
-
33
- "math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg",
34
- "math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max",
35
- "math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh",
36
- "math.sqrt","math.tan","math.tanh",
37
-
38
- "os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale",
39
- "os.time","os.tmpname",
40
-
41
- "package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload",
42
- "package.seeall",
43
-
44
- "string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub",
45
- "string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper",
46
-
47
- "table.concat","table.insert","table.maxn","table.remove","table.sort"
48
- ]);
49
- var keywords = wordRE(["and","break","elseif","false","nil","not","or","return",
50
- "true","function", "end", "if", "then", "else", "do",
51
- "while", "repeat", "until", "for", "in", "local" ]);
52
-
53
- var indentTokens = wordRE(["function", "if","repeat","do", "\\(", "{"]);
54
- var dedentTokens = wordRE(["end", "until", "\\)", "}"]);
55
- var dedentPartial = prefixRE(["end", "until", "\\)", "}", "else", "elseif"]);
56
-
57
- function readBracket(stream) {
58
- var level = 0;
59
- while (stream.eat("=")) ++level;
60
- stream.eat("[");
61
- return level;
62
- }
63
-
64
- function normal(stream, state) {
65
- var ch = stream.next();
66
- if (ch == "-" && stream.eat("-")) {
67
- if (stream.eat("["))
68
- return (state.cur = bracketed(readBracket(stream), "comment"))(stream, state);
69
- stream.skipToEnd();
70
- return "comment";
71
- }
72
- if (ch == "\"" || ch == "'")
73
- return (state.cur = string(ch))(stream, state);
74
- if (ch == "[" && /[\[=]/.test(stream.peek()))
75
- return (state.cur = bracketed(readBracket(stream), "string"))(stream, state);
76
- if (/\d/.test(ch)) {
77
- stream.eatWhile(/[\w.%]/);
78
- return "number";
79
- }
80
- if (/[\w_]/.test(ch)) {
81
- stream.eatWhile(/[\w\\\-_.]/);
82
- return "variable";
83
- }
84
- return null;
85
- }
86
-
87
- function bracketed(level, style) {
88
- return function(stream, state) {
89
- var curlev = null, ch;
90
- while ((ch = stream.next()) != null) {
91
- if (curlev == null) {if (ch == "]") curlev = 0;}
92
- else if (ch == "=") ++curlev;
93
- else if (ch == "]" && curlev == level) { state.cur = normal; break; }
94
- else curlev = null;
95
- }
96
- return style;
97
- };
98
- }
99
-
100
- function string(quote) {
101
- return function(stream, state) {
102
- var escaped = false, ch;
103
- while ((ch = stream.next()) != null) {
104
- if (ch == quote && !escaped) break;
105
- escaped = !escaped && ch == "\\";
106
- }
107
- if (!escaped) state.cur = normal;
108
- return "string";
109
- };
110
- }
111
-
112
- return {
113
- startState: function(basecol) {
114
- return {basecol: basecol || 0, indentDepth: 0, cur: normal};
115
- },
116
-
117
- token: function(stream, state) {
118
- if (stream.eatSpace()) return null;
119
- var style = state.cur(stream, state);
120
- var word = stream.current();
121
- if (style == "variable") {
122
- if (keywords.test(word)) style = "keyword";
123
- else if (builtins.test(word)) style = "builtin";
124
- else if (specials.test(word)) style = "variable-2";
125
- }
126
- if ((style != "comment") && (style != "string")){
127
- if (indentTokens.test(word)) ++state.indentDepth;
128
- else if (dedentTokens.test(word)) --state.indentDepth;
129
- }
130
- return style;
131
- },
132
-
133
- indent: function(state, textAfter) {
134
- var closing = dedentPartial.test(textAfter);
135
- return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0));
136
- }
137
- };
138
- });
139
-
140
- CodeMirror.defineMIME("text/x-lua", "lua");