mdbe 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/LICENSE.txt +21 -0
- data/README.md +53 -0
- data/app.rb +182 -0
- data/bin/mdbe +5 -0
- data/config.ru +2 -0
- data/environment.rb +8 -0
- data/lib/mdbe.rb +39 -0
- data/lib/mdbe/action_controller_debug_patch.rb +12 -0
- data/lib/mdbe/code_evaluation.rb +46 -0
- data/lib/mdbe/database_views.rb +24 -0
- data/lib/mdbe/database_views/abstract_dictionary.rb +69 -0
- data/lib/mdbe/database_views/abstract_exception.rb +25 -0
- data/lib/mdbe/database_views/array.rb +28 -0
- data/lib/mdbe/database_views/boolean.rb +12 -0
- data/lib/mdbe/database_views/class.rb +46 -0
- data/lib/mdbe/database_views/exception.rb +3 -0
- data/lib/mdbe/database_views/execblock.rb +5 -0
- data/lib/mdbe/database_views/fixnum.rb +5 -0
- data/lib/mdbe/database_views/float.rb +5 -0
- data/lib/mdbe/database_views/globals.rb +2 -0
- data/lib/mdbe/database_views/gsnmethod.rb +29 -0
- data/lib/mdbe/database_views/hash.rb +5 -0
- data/lib/mdbe/database_views/maglev_record.rb +42 -0
- data/lib/mdbe/database_views/module.rb +103 -0
- data/lib/mdbe/database_views/nilclass.rb +5 -0
- data/lib/mdbe/database_views/object.rb +80 -0
- data/lib/mdbe/database_views/proc.rb +3 -0
- data/lib/mdbe/database_views/repository.rb +3 -0
- data/lib/mdbe/database_views/ruby_workspace.rb +5 -0
- data/lib/mdbe/database_views/smalltalk_classes.rb +34 -0
- data/lib/mdbe/database_views/smalltalk_classes.st +60 -0
- data/lib/mdbe/database_views/string.rb +31 -0
- data/lib/mdbe/database_views/symbol.rb +32 -0
- data/lib/mdbe/database_views/system.rb +61 -0
- data/lib/mdbe/database_views/thread.rb +101 -0
- data/lib/mdbe/debug_server.rb +22 -0
- data/lib/mdbe/halt.rb +42 -0
- data/lib/mdbe/ruby_workspace.rb +29 -0
- data/lib/mdbe/version.rb +3 -0
- data/lib/tasks/maglev-database-explorer_tasks.rake +4 -0
- data/public/LICENSE +35 -0
- data/public/amber/CHANGELOG +65 -0
- data/public/amber/LICENSE +22 -0
- data/public/amber/Makefile +53 -0
- data/public/amber/README.md +30 -0
- data/public/amber/bin/amber +3 -0
- data/public/amber/bin/amberc +352 -0
- data/public/amber/bin/nodecompile.js +33 -0
- data/public/amber/bin/server +3 -0
- data/public/amber/bin/server.bat +3 -0
- data/public/amber/css/amber-normalize.css +468 -0
- data/public/amber/css/amber-normalize.less +501 -0
- data/public/amber/css/amber.css +539 -0
- data/public/amber/css/documentation.css +84 -0
- data/public/amber/css/profstef.css +75 -0
- data/public/amber/css/style.css +313 -0
- data/public/amber/documentation.html +37 -0
- data/public/amber/examples/Makefile +23 -0
- data/public/amber/examples/README +4 -0
- data/public/amber/examples/android/helloamber/AndroidManifest.xml +19 -0
- data/public/amber/examples/android/helloamber/HelloAmber.st +13 -0
- data/public/amber/examples/android/helloamber/Makefile +56 -0
- data/public/amber/examples/android/helloamber/README.md +80 -0
- data/public/amber/examples/android/helloamber/ant.properties +17 -0
- data/public/amber/examples/android/helloamber/assets/index.html +15 -0
- data/public/amber/examples/android/helloamber/assets/jquery-1.7.2.min.js +4 -0
- data/public/amber/examples/android/helloamber/build.xml +83 -0
- data/public/amber/examples/android/helloamber/local.properties +10 -0
- data/public/amber/examples/android/helloamber/proguard-project.txt +20 -0
- data/public/amber/examples/android/helloamber/project.properties +14 -0
- data/public/amber/examples/android/helloamber/res/layout/main.xml +6 -0
- data/public/amber/examples/android/helloamber/res/values/strings.xml +4 -0
- data/public/amber/examples/android/helloamber/src/org/amberlang/android/helloamber/HelloAmber.java +59 -0
- data/public/amber/examples/myproject/index.html +16 -0
- data/public/amber/examples/nodejs/README +9 -0
- data/public/amber/examples/nodejs/benchfib/Benchfib.st +124 -0
- data/public/amber/examples/nodejs/benchfib/Makefile +8 -0
- data/public/amber/examples/nodejs/benchfib/benchfib +1 -0
- data/public/amber/examples/nodejs/hello/Hello.st +9 -0
- data/public/amber/examples/nodejs/hello/Makefile +8 -0
- data/public/amber/examples/nodejs/hello/README +13 -0
- data/public/amber/examples/nodejs/hello/hello +1 -0
- data/public/amber/examples/nodejs/meta/Makefile +8 -0
- data/public/amber/examples/nodejs/meta/MyScript.st +27 -0
- data/public/amber/examples/nodejs/meta/meta +1 -0
- data/public/amber/examples/nodejs/pystone/Makefile +8 -0
- data/public/amber/examples/nodejs/pystone/Pystone.st +306 -0
- data/public/amber/examples/nodejs/pystone/pystone +1 -0
- data/public/amber/examples/nodejs/trivialserver/Makefile +8 -0
- data/public/amber/examples/nodejs/trivialserver/TrivialServer.st +51 -0
- data/public/amber/examples/nodejs/trivialserver/trivial +1 -0
- data/public/amber/examples/presentation/esug2011/images/asterix.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/background_box.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/background_header.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/balloon.jpg +0 -0
- data/public/amber/examples/presentation/esug2011/images/balloon_header.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/devices.jpg +0 -0
- data/public/amber/examples/presentation/esug2011/images/enyo.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/ide_star_wars.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/nodejs.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/terminal.png +0 -0
- data/public/amber/examples/presentation/esug2011/images/webos.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/amber.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/ambrhino.jpg +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/nodejs.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/pharo.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/php.gif +0 -0
- data/public/amber/examples/presentation/fosdem2012/images/rails.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-next.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/arrow-prev.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/closedhand.cur +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/openhand.cur +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-back.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow-top-forward.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/images/shadow.png +0 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.css +100 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.js +1232 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.booklet.1.2.0.min.js +13 -0
- data/public/amber/examples/presentation/fosdem2012/lib/booklet/jquery.easing.1.3.js +38 -0
- data/public/amber/examples/presentation/index.html +17 -0
- data/public/amber/examples/presentation/js/Presentation.deploy.js +1922 -0
- data/public/amber/examples/presentation/js/Presentation.js +2712 -0
- data/public/amber/examples/presentation/st/Presentation.st +1996 -0
- data/public/amber/examples/trysmalltalk/index.html +18 -0
- data/public/amber/examples/trysmalltalk/js/TrySmalltalk.deploy.js +837 -0
- data/public/amber/examples/trysmalltalk/js/TrySmalltalk.js +1206 -0
- data/public/amber/examples/trysmalltalk/st/TrySmalltalk.st +964 -0
- data/public/amber/examples/twitterwall/css/twitterwall.css +19 -0
- data/public/amber/examples/twitterwall/index.html +35 -0
- data/public/amber/examples/twitterwall/js/TwitterWall.deploy.js +116 -0
- data/public/amber/examples/twitterwall/js/TwitterWall.js +146 -0
- data/public/amber/examples/twitterwall/st/TwitterWall.st +91 -0
- data/public/amber/examples/webos/README +11 -0
- data/public/amber/examples/webos/eris/DuckQwaq.wav +0 -0
- data/public/amber/examples/webos/eris/EnyoAmber.st +36 -0
- data/public/amber/examples/webos/eris/Eris.css +0 -0
- data/public/amber/examples/webos/eris/Eris.st +86 -0
- data/public/amber/examples/webos/eris/Makefile +37 -0
- data/public/amber/examples/webos/eris/README +3 -0
- data/public/amber/examples/webos/eris/appinfo.json +10 -0
- data/public/amber/examples/webos/eris/index.html +12 -0
- data/public/amber/examples/webos/helloamber/EnyoAmber.st +36 -0
- data/public/amber/examples/webos/helloamber/HelloAmber.st +86 -0
- data/public/amber/examples/webos/helloamber/Makefile +38 -0
- data/public/amber/examples/webos/helloamber/README +5 -0
- data/public/amber/examples/webos/helloamber/appinfo.json +10 -0
- data/public/amber/examples/webos/helloamber/index.html +12 -0
- data/public/amber/favicon.ico +0 -0
- data/public/amber/images/amber.png +0 -0
- data/public/amber/images/amber.svg +706 -0
- data/public/amber/images/amber_small.png +0 -0
- data/public/amber/images/off.amber.png +0 -0
- data/public/amber/images/off.png +0 -0
- data/public/amber/images/offHover.amber.png +0 -0
- data/public/amber/images/offHover.png +0 -0
- data/public/amber/images/presentation.png +0 -0
- data/public/amber/images/profstef.png +0 -0
- data/public/amber/images/sprite.amber.png +0 -0
- data/public/amber/images/sprite.png +0 -0
- data/public/amber/images/tinylogo.amber.png +0 -0
- data/public/amber/images/tinylogo.png +0 -0
- data/public/amber/images/twitterwall.png +0 -0
- data/public/amber/index.html +55 -0
- data/public/amber/js/Additional-Examples.deploy.js +15 -0
- data/public/amber/js/Additional-Examples.js +21 -0
- data/public/amber/js/Benchfib.deploy.js +132 -0
- data/public/amber/js/Benchfib.js +167 -0
- data/public/amber/js/Canvas.deploy.js +2446 -0
- data/public/amber/js/Canvas.js +3547 -0
- data/public/amber/js/Compiler-Tests.deploy.js +97 -0
- data/public/amber/js/Compiler-Tests.js +137 -0
- data/public/amber/js/Compiler.deploy.js +1877 -0
- data/public/amber/js/Compiler.js +2622 -0
- data/public/amber/js/Documentation.deploy.js +961 -0
- data/public/amber/js/Documentation.js +1376 -0
- data/public/amber/js/Examples.deploy.js +53 -0
- data/public/amber/js/Examples.js +73 -0
- data/public/amber/js/IDE.deploy.js +3557 -0
- data/public/amber/js/IDE.js +5002 -0
- data/public/amber/js/Kernel-Announcements.deploy.js +107 -0
- data/public/amber/js/Kernel-Announcements.js +152 -0
- data/public/amber/js/Kernel-Classes.deploy.js +774 -0
- data/public/amber/js/Kernel-Classes.js +1095 -0
- data/public/amber/js/Kernel-Collections.deploy.js +3121 -0
- data/public/amber/js/Kernel-Collections.js +4427 -0
- data/public/amber/js/Kernel-Exceptions.deploy.js +244 -0
- data/public/amber/js/Kernel-Exceptions.js +349 -0
- data/public/amber/js/Kernel-Methods.deploy.js +573 -0
- data/public/amber/js/Kernel-Methods.js +807 -0
- data/public/amber/js/Kernel-Objects.deploy.js +2877 -0
- data/public/amber/js/Kernel-Objects.js +4107 -0
- data/public/amber/js/Kernel-Tests.deploy.js +1513 -0
- data/public/amber/js/Kernel-Tests.js +2053 -0
- data/public/amber/js/Kernel-Transcript.deploy.js +142 -0
- data/public/amber/js/Kernel-Transcript.js +202 -0
- data/public/amber/js/Maglev-Core.deploy.js +2996 -0
- data/public/amber/js/Maglev-Core.js +4246 -0
- data/public/amber/js/Maglev-Database-Explorer.deploy.js +4476 -0
- data/public/amber/js/Maglev-Database-Explorer.js +6232 -0
- data/public/amber/js/Maglev-Vendor.deploy.js +350 -0
- data/public/amber/js/Maglev-Vendor.js +465 -0
- data/public/amber/js/README.md +5 -0
- data/public/amber/js/SUnit.deploy.js +351 -0
- data/public/amber/js/SUnit.js +501 -0
- data/public/amber/js/amber.js +273 -0
- data/public/amber/js/boot.js +602 -0
- data/public/amber/js/compat.js +22 -0
- data/public/amber/js/init.js +9 -0
- data/public/amber/js/lib/CodeMirror/LICENSE +19 -0
- data/public/amber/js/lib/CodeMirror/active-line.js +39 -0
- data/public/amber/js/lib/CodeMirror/amber.css +21 -0
- data/public/amber/js/lib/CodeMirror/codemirror.css +67 -0
- data/public/amber/js/lib/CodeMirror/codemirror.js +2144 -0
- data/public/amber/js/lib/CodeMirror/smalltalk.js +134 -0
- data/public/amber/js/lib/jQuery/jquery-1.4.4.min.js +167 -0
- data/public/amber/js/lib/jQuery/jquery-1.6.4.min.js +4 -0
- data/public/amber/js/lib/jQuery/jquery-ui-1.8.16.custom.min.js +791 -0
- data/public/amber/js/lib/jQuery/jquery.textarea.js +267 -0
- data/public/amber/js/lib/peg-0.6.2.min.js +2 -0
- data/public/amber/js/lib/showdown.js +419 -0
- data/public/amber/js/parser.js +4222 -0
- data/public/amber/js/parser.pegjs +223 -0
- data/public/amber/learn.html +40 -0
- data/public/amber/repl/Makefile +8 -0
- data/public/amber/repl/REPL.js +124 -0
- data/public/amber/repl/REPL.st +56 -0
- data/public/amber/repl/amber.js +18085 -0
- data/public/amber/server/FileServer.st +576 -0
- data/public/amber/server/Makefile +8 -0
- data/public/amber/server/server.js +13049 -0
- data/public/amber/st/Benchfib.js +297 -0
- data/public/amber/st/Benchfib.st +124 -0
- data/public/amber/st/Canvas.st +968 -0
- data/public/amber/st/Compiler-Tests.st +471 -0
- data/public/amber/st/Compiler.st +1445 -0
- data/public/amber/st/Documentation.st +758 -0
- data/public/amber/st/Examples.js +100 -0
- data/public/amber/st/Examples.st +38 -0
- data/public/amber/st/IDE.st +2404 -0
- data/public/amber/st/Kernel-Announcements.st +61 -0
- data/public/amber/st/Kernel-Classes.st +462 -0
- data/public/amber/st/Kernel-Collections.st +1611 -0
- data/public/amber/st/Kernel-Exceptions.st +124 -0
- data/public/amber/st/Kernel-Methods.st +291 -0
- data/public/amber/st/Kernel-Objects.st +1587 -0
- data/public/amber/st/Kernel-Tests.st +953 -0
- data/public/amber/st/Kernel-Transcript.st +70 -0
- data/public/amber/st/Maglev-Core.st +1694 -0
- data/public/amber/st/Maglev-Database-Explorer.st +3148 -0
- data/public/amber/st/Maglev-Vendor.st +151 -0
- data/public/amber/st/Makefile +104 -0
- data/public/amber/st/README.md +4 -0
- data/public/amber/st/SUnit.st +172 -0
- data/public/css/bootstrap-combined.no-icons.min.css +731 -0
- data/public/css/bootstrap.css +6811 -0
- data/public/css/images/animated-overlay.gif +0 -0
- data/public/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/public/css/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/public/css/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/public/css/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/public/css/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/public/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/css/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/public/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/public/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/public/css/images/ui-icons_222222_256x240.png +0 -0
- data/public/css/images/ui-icons_228ef1_256x240.png +0 -0
- data/public/css/images/ui-icons_ef8c08_256x240.png +0 -0
- data/public/css/images/ui-icons_ffd27a_256x240.png +0 -0
- data/public/css/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/css/jquery-ui.min.css +5 -0
- data/public/css/smalltalk_code.css +42 -0
- data/public/css/style.css +210 -0
- data/public/images/bg_tile.png +0 -0
- data/public/images/maglev-logo.gif +0 -0
- data/public/images/mchammer.gif +0 -0
- data/public/images/rails_tiny.png +0 -0
- data/public/images/ruby.png +0 -0
- data/public/images/ruby_smalltalk_bridge.png +0 -0
- data/public/images/smalltalk.png +0 -0
- data/public/img/glyphicons-halflings.png +0 -0
- data/public/index.html +118 -0
- data/public/libs/bootstrap.min.js +7 -0
- data/public/libs/codemirror/CONTRIBUTING.md +72 -0
- data/public/libs/codemirror/LICENSE +23 -0
- data/public/libs/codemirror/README.md +11 -0
- data/public/libs/codemirror/addon/dialog/dialog.css +32 -0
- data/public/libs/codemirror/addon/dialog/dialog.js +80 -0
- data/public/libs/codemirror/addon/display/placeholder.js +54 -0
- data/public/libs/codemirror/addon/edit/closebrackets.js +54 -0
- data/public/libs/codemirror/addon/edit/closetag.js +86 -0
- data/public/libs/codemirror/addon/edit/continuecomment.js +44 -0
- data/public/libs/codemirror/addon/edit/continuelist.js +25 -0
- data/public/libs/codemirror/addon/edit/matchbrackets.js +82 -0
- data/public/libs/codemirror/addon/fold/brace-fold.js +31 -0
- data/public/libs/codemirror/addon/fold/foldcode.js +32 -0
- data/public/libs/codemirror/addon/fold/indent-fold.js +11 -0
- data/public/libs/codemirror/addon/fold/xml-fold.js +64 -0
- data/public/libs/codemirror/addon/hint/html-hint.js +582 -0
- data/public/libs/codemirror/addon/hint/javascript-hint.js +142 -0
- data/public/libs/codemirror/addon/hint/pig-hint.js +117 -0
- data/public/libs/codemirror/addon/hint/python-hint.js +93 -0
- data/public/libs/codemirror/addon/hint/show-hint.css +38 -0
- data/public/libs/codemirror/addon/hint/show-hint.js +180 -0
- data/public/libs/codemirror/addon/hint/xml-hint.js +118 -0
- data/public/libs/codemirror/addon/lint/javascript-lint.js +127 -0
- data/public/libs/codemirror/addon/lint/json-lint.js +14 -0
- data/public/libs/codemirror/addon/lint/lint.css +96 -0
- data/public/libs/codemirror/addon/lint/lint.js +197 -0
- data/public/libs/codemirror/addon/mode/loadmode.js +51 -0
- data/public/libs/codemirror/addon/mode/multiplex.js +95 -0
- data/public/libs/codemirror/addon/mode/overlay.js +59 -0
- data/public/libs/codemirror/addon/runmode/colorize.js +29 -0
- data/public/libs/codemirror/addon/runmode/runmode-standalone.js +130 -0
- data/public/libs/codemirror/addon/runmode/runmode.js +52 -0
- data/public/libs/codemirror/addon/runmode/runmode.node.js +89 -0
- data/public/libs/codemirror/addon/search/match-highlighter.js +60 -0
- data/public/libs/codemirror/addon/search/search.js +131 -0
- data/public/libs/codemirror/addon/search/searchcursor.js +133 -0
- data/public/libs/codemirror/addon/selection/active-line.js +39 -0
- data/public/libs/codemirror/addon/selection/mark-selection.js +34 -0
- data/public/libs/codemirror/bin/compress +91 -0
- data/public/libs/codemirror/bin/lint +11 -0
- data/public/libs/codemirror/demo/activeline.html +70 -0
- data/public/libs/codemirror/demo/bidi.html +61 -0
- data/public/libs/codemirror/demo/btree.html +87 -0
- data/public/libs/codemirror/demo/buffers.html +98 -0
- data/public/libs/codemirror/demo/changemode.html +50 -0
- data/public/libs/codemirror/demo/closebrackets.html +63 -0
- data/public/libs/codemirror/demo/closetag.html +37 -0
- data/public/libs/codemirror/demo/complete.html +70 -0
- data/public/libs/codemirror/demo/emacs.html +60 -0
- data/public/libs/codemirror/demo/folding.html +69 -0
- data/public/libs/codemirror/demo/fullscreen.html +147 -0
- data/public/libs/codemirror/demo/html5complete.html +92 -0
- data/public/libs/codemirror/demo/indentwrap.html +49 -0
- data/public/libs/codemirror/demo/lint.html +90 -0
- data/public/libs/codemirror/demo/loadmode.html +40 -0
- data/public/libs/codemirror/demo/marker.html +59 -0
- data/public/libs/codemirror/demo/markselection.html +36 -0
- data/public/libs/codemirror/demo/matchhighlighter.html +38 -0
- data/public/libs/codemirror/demo/multiplex.html +60 -0
- data/public/libs/codemirror/demo/mustache.html +59 -0
- data/public/libs/codemirror/demo/placeholder.html +36 -0
- data/public/libs/codemirror/demo/preview.html +76 -0
- data/public/libs/codemirror/demo/resize.html +49 -0
- data/public/libs/codemirror/demo/runmode.html +50 -0
- data/public/libs/codemirror/demo/search.html +85 -0
- data/public/libs/codemirror/demo/spanaffectswrapping_shim.html +73 -0
- data/public/libs/codemirror/demo/theme.html +89 -0
- data/public/libs/codemirror/demo/variableheight.html +52 -0
- data/public/libs/codemirror/demo/vim.html +65 -0
- data/public/libs/codemirror/demo/visibletabs.html +53 -0
- data/public/libs/codemirror/demo/widget.html +74 -0
- data/public/libs/codemirror/demo/xmlcomplete.html +81 -0
- data/public/libs/codemirror/index.html +487 -0
- data/public/libs/codemirror/keymap/emacs.js +30 -0
- data/public/libs/codemirror/keymap/vim.js +3044 -0
- data/public/libs/codemirror/lib/codemirror.css +253 -0
- data/public/libs/codemirror/lib/codemirror.js +5585 -0
- data/public/libs/codemirror/mode/apl/apl.js +160 -0
- data/public/libs/codemirror/mode/apl/index.html +61 -0
- data/public/libs/codemirror/mode/asterisk/asterisk.js +183 -0
- data/public/libs/codemirror/mode/asterisk/index.html +142 -0
- data/public/libs/codemirror/mode/clike/clike.js +302 -0
- data/public/libs/codemirror/mode/clike/index.html +103 -0
- data/public/libs/codemirror/mode/clike/scala.html +767 -0
- data/public/libs/codemirror/mode/clojure/clojure.js +222 -0
- data/public/libs/codemirror/mode/clojure/index.html +76 -0
- data/public/libs/codemirror/mode/coffeescript/LICENSE +22 -0
- data/public/libs/codemirror/mode/coffeescript/coffeescript.js +346 -0
- data/public/libs/codemirror/mode/coffeescript/index.html +728 -0
- data/public/libs/codemirror/mode/commonlisp/commonlisp.js +101 -0
- data/public/libs/codemirror/mode/commonlisp/index.html +165 -0
- data/public/libs/codemirror/mode/css/css.js +567 -0
- data/public/libs/codemirror/mode/css/index.html +58 -0
- data/public/libs/codemirror/mode/css/scss.html +145 -0
- data/public/libs/codemirror/mode/css/scss_test.js +80 -0
- data/public/libs/codemirror/mode/css/test.js +113 -0
- data/public/libs/codemirror/mode/d/d.js +205 -0
- data/public/libs/codemirror/mode/d/index.html +262 -0
- data/public/libs/codemirror/mode/diff/diff.js +32 -0
- data/public/libs/codemirror/mode/diff/index.html +105 -0
- data/public/libs/codemirror/mode/ecl/ecl.js +192 -0
- data/public/libs/codemirror/mode/ecl/index.html +39 -0
- data/public/libs/codemirror/mode/erlang/erlang.js +463 -0
- data/public/libs/codemirror/mode/erlang/index.html +64 -0
- data/public/libs/codemirror/mode/gas/gas.js +326 -0
- data/public/libs/codemirror/mode/gas/index.html +57 -0
- data/public/libs/codemirror/mode/gfm/gfm.js +96 -0
- data/public/libs/codemirror/mode/gfm/index.html +74 -0
- data/public/libs/codemirror/mode/gfm/test.js +112 -0
- data/public/libs/codemirror/mode/go/go.js +165 -0
- data/public/libs/codemirror/mode/go/index.html +74 -0
- data/public/libs/codemirror/mode/groovy/groovy.js +210 -0
- data/public/libs/codemirror/mode/groovy/index.html +73 -0
- data/public/libs/codemirror/mode/haskell/haskell.js +242 -0
- data/public/libs/codemirror/mode/haskell/index.html +62 -0
- data/public/libs/codemirror/mode/haxe/haxe.js +429 -0
- data/public/libs/codemirror/mode/haxe/index.html +90 -0
- data/public/libs/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
- data/public/libs/codemirror/mode/htmlembedded/index.html +49 -0
- data/public/libs/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
- data/public/libs/codemirror/mode/htmlmixed/index.html +73 -0
- data/public/libs/codemirror/mode/http/http.js +98 -0
- data/public/libs/codemirror/mode/http/index.html +32 -0
- data/public/libs/codemirror/mode/javascript/index.html +92 -0
- data/public/libs/codemirror/mode/javascript/javascript.js +467 -0
- data/public/libs/codemirror/mode/javascript/typescript.html +48 -0
- data/public/libs/codemirror/mode/jinja2/index.html +38 -0
- data/public/libs/codemirror/mode/jinja2/jinja2.js +42 -0
- data/public/libs/codemirror/mode/less/index.html +741 -0
- data/public/libs/codemirror/mode/less/less.js +266 -0
- data/public/libs/codemirror/mode/livescript/LICENSE +23 -0
- data/public/libs/codemirror/mode/livescript/index.html +446 -0
- data/public/libs/codemirror/mode/livescript/livescript.js +267 -0
- data/public/libs/codemirror/mode/livescript/livescript.ls +266 -0
- data/public/libs/codemirror/mode/lua/index.html +74 -0
- data/public/libs/codemirror/mode/lua/lua.js +140 -0
- data/public/libs/codemirror/mode/markdown/index.html +344 -0
- data/public/libs/codemirror/mode/markdown/markdown.js +526 -0
- data/public/libs/codemirror/mode/markdown/test.js +636 -0
- data/public/libs/codemirror/mode/meta.js +75 -0
- data/public/libs/codemirror/mode/mirc/index.html +149 -0
- data/public/libs/codemirror/mode/mirc/mirc.js +177 -0
- data/public/libs/codemirror/mode/ntriples/index.html +33 -0
- data/public/libs/codemirror/mode/ntriples/ntriples.js +170 -0
- data/public/libs/codemirror/mode/ocaml/index.html +131 -0
- data/public/libs/codemirror/mode/ocaml/ocaml.js +113 -0
- data/public/libs/codemirror/mode/pascal/LICENSE +7 -0
- data/public/libs/codemirror/mode/pascal/index.html +48 -0
- data/public/libs/codemirror/mode/pascal/pascal.js +94 -0
- data/public/libs/codemirror/mode/perl/LICENSE +19 -0
- data/public/libs/codemirror/mode/perl/index.html +62 -0
- data/public/libs/codemirror/mode/perl/perl.js +816 -0
- data/public/libs/codemirror/mode/php/index.html +51 -0
- data/public/libs/codemirror/mode/php/php.js +129 -0
- data/public/libs/codemirror/mode/pig/index.html +42 -0
- data/public/libs/codemirror/mode/pig/pig.js +171 -0
- data/public/libs/codemirror/mode/properties/index.html +41 -0
- data/public/libs/codemirror/mode/properties/properties.js +63 -0
- data/public/libs/codemirror/mode/python/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/python/index.html +135 -0
- data/public/libs/codemirror/mode/python/python.js +340 -0
- data/public/libs/codemirror/mode/q/index.html +131 -0
- data/public/libs/codemirror/mode/q/q.js +124 -0
- data/public/libs/codemirror/mode/r/LICENSE +24 -0
- data/public/libs/codemirror/mode/r/index.html +74 -0
- data/public/libs/codemirror/mode/r/r.js +141 -0
- data/public/libs/codemirror/mode/rpm/changes/changes.js +19 -0
- data/public/libs/codemirror/mode/rpm/changes/index.html +53 -0
- data/public/libs/codemirror/mode/rpm/spec/index.html +99 -0
- data/public/libs/codemirror/mode/rpm/spec/spec.css +5 -0
- data/public/libs/codemirror/mode/rpm/spec/spec.js +66 -0
- data/public/libs/codemirror/mode/rst/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/rst/index.html +524 -0
- data/public/libs/codemirror/mode/rst/rst.js +550 -0
- data/public/libs/codemirror/mode/ruby/LICENSE +24 -0
- data/public/libs/codemirror/mode/ruby/index.html +173 -0
- data/public/libs/codemirror/mode/ruby/ruby.js +197 -0
- data/public/libs/codemirror/mode/rust/index.html +48 -0
- data/public/libs/codemirror/mode/rust/rust.js +432 -0
- data/public/libs/codemirror/mode/sass/index.html +54 -0
- data/public/libs/codemirror/mode/sass/sass.js +349 -0
- data/public/libs/codemirror/mode/scheme/index.html +65 -0
- data/public/libs/codemirror/mode/scheme/scheme.js +230 -0
- data/public/libs/codemirror/mode/shell/index.html +51 -0
- data/public/libs/codemirror/mode/shell/shell.js +118 -0
- data/public/libs/codemirror/mode/sieve/LICENSE +19 -0
- data/public/libs/codemirror/mode/sieve/index.html +81 -0
- data/public/libs/codemirror/mode/sieve/sieve.js +183 -0
- data/public/libs/codemirror/mode/smalltalk/index.html +57 -0
- data/public/libs/codemirror/mode/smalltalk/smalltalk.js +141 -0
- data/public/libs/codemirror/mode/smarty/index.html +83 -0
- data/public/libs/codemirror/mode/smarty/smarty.js +148 -0
- data/public/libs/codemirror/mode/sparql/index.html +42 -0
- data/public/libs/codemirror/mode/sparql/sparql.js +143 -0
- data/public/libs/codemirror/mode/sql/index.html +68 -0
- data/public/libs/codemirror/mode/sql/sql.js +268 -0
- data/public/libs/codemirror/mode/stex/index.html +98 -0
- data/public/libs/codemirror/mode/stex/stex.js +246 -0
- data/public/libs/codemirror/mode/stex/test.js +117 -0
- data/public/libs/codemirror/mode/tcl/index.html +129 -0
- data/public/libs/codemirror/mode/tcl/tcl.js +131 -0
- data/public/libs/codemirror/mode/tiddlywiki/index.html +142 -0
- data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
- data/public/libs/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
- data/public/libs/codemirror/mode/tiki/index.html +81 -0
- data/public/libs/codemirror/mode/tiki/tiki.css +26 -0
- data/public/libs/codemirror/mode/tiki/tiki.js +308 -0
- data/public/libs/codemirror/mode/turtle/index.html +39 -0
- data/public/libs/codemirror/mode/turtle/turtle.js +145 -0
- data/public/libs/codemirror/mode/vb/LICENSE.txt +21 -0
- data/public/libs/codemirror/mode/vb/index.html +88 -0
- data/public/libs/codemirror/mode/vb/vb.js +259 -0
- data/public/libs/codemirror/mode/vbscript/index.html +42 -0
- data/public/libs/codemirror/mode/vbscript/vbscript.js +26 -0
- data/public/libs/codemirror/mode/velocity/index.html +103 -0
- data/public/libs/codemirror/mode/velocity/velocity.js +144 -0
- data/public/libs/codemirror/mode/verilog/index.html +121 -0
- data/public/libs/codemirror/mode/verilog/verilog.js +182 -0
- data/public/libs/codemirror/mode/xml/index.html +45 -0
- data/public/libs/codemirror/mode/xml/xml.js +328 -0
- data/public/libs/codemirror/mode/xquery/LICENSE +20 -0
- data/public/libs/codemirror/mode/xquery/index.html +221 -0
- data/public/libs/codemirror/mode/xquery/test.js +64 -0
- data/public/libs/codemirror/mode/xquery/xquery.js +450 -0
- data/public/libs/codemirror/mode/yaml/index.html +68 -0
- data/public/libs/codemirror/mode/yaml/yaml.js +95 -0
- data/public/libs/codemirror/mode/z80/index.html +39 -0
- data/public/libs/codemirror/mode/z80/z80.js +85 -0
- data/public/libs/codemirror/package.json +21 -0
- data/public/libs/codemirror/test/doc_test.js +329 -0
- data/public/libs/codemirror/test/driver.js +138 -0
- data/public/libs/codemirror/test/index.html +182 -0
- data/public/libs/codemirror/test/lint/acorn.js +1593 -0
- data/public/libs/codemirror/test/lint/lint.js +112 -0
- data/public/libs/codemirror/test/lint/parse-js.js +1372 -0
- data/public/libs/codemirror/test/lint/walk.js +216 -0
- data/public/libs/codemirror/test/mode_test.css +10 -0
- data/public/libs/codemirror/test/mode_test.js +192 -0
- data/public/libs/codemirror/test/phantom_driver.js +31 -0
- data/public/libs/codemirror/test/run.js +33 -0
- data/public/libs/codemirror/test/test.js +1400 -0
- data/public/libs/codemirror/test/vim_test.js +1688 -0
- data/public/libs/codemirror/theme/ambiance-mobile.css +5 -0
- data/public/libs/codemirror/theme/ambiance.css +75 -0
- data/public/libs/codemirror/theme/blackboard.css +25 -0
- data/public/libs/codemirror/theme/cobalt.css +18 -0
- data/public/libs/codemirror/theme/eclipse.css +25 -0
- data/public/libs/codemirror/theme/elegant.css +10 -0
- data/public/libs/codemirror/theme/erlang-dark.css +21 -0
- data/public/libs/codemirror/theme/lesser-dark.css +44 -0
- data/public/libs/codemirror/theme/midnight.css +52 -0
- data/public/libs/codemirror/theme/monokai.css +28 -0
- data/public/libs/codemirror/theme/neat.css +9 -0
- data/public/libs/codemirror/theme/night.css +21 -0
- data/public/libs/codemirror/theme/rubyblue.css +21 -0
- data/public/libs/codemirror/theme/solarized.css +207 -0
- data/public/libs/codemirror/theme/twilight.css +26 -0
- data/public/libs/codemirror/theme/vibrant-ink.css +27 -0
- data/public/libs/codemirror/theme/xq-dark.css +46 -0
- data/public/libs/codemirror/theme/xq-light.css +43 -0
- data/public/libs/font-awesome/css/font-awesome-ie7.css +983 -0
- data/public/libs/font-awesome/css/font-awesome-ie7.min.css +24 -0
- data/public/libs/font-awesome/css/font-awesome.css +1268 -0
- data/public/libs/font-awesome/css/font-awesome.min.css +24 -0
- data/public/libs/font-awesome/font/FontAwesome.otf +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.eot +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.svg +339 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.ttf +0 -0
- data/public/libs/font-awesome/font/fontawesome-webfont.woff +0 -0
- data/public/libs/font-awesome/less/bootstrap.less +78 -0
- data/public/libs/font-awesome/less/core.less +132 -0
- data/public/libs/font-awesome/less/extras.less +79 -0
- data/public/libs/font-awesome/less/font-awesome-ie7.less +413 -0
- data/public/libs/font-awesome/less/font-awesome.less +32 -0
- data/public/libs/font-awesome/less/icons.less +330 -0
- data/public/libs/font-awesome/less/mixins.less +34 -0
- data/public/libs/font-awesome/less/path.less +15 -0
- data/public/libs/font-awesome/less/variables.less +9 -0
- data/public/libs/jquery-1.10.0.min.js +6 -0
- data/public/libs/jquery-ui.min.js +12 -0
- data/public/libs/jquery.jsPlumb-1.4.0-all.js +9571 -0
- data/public/libs/jquery.livequery.js +226 -0
- data/public/libs/jsPlumbInitializer.js +72 -0
- data/public/libs/jstree/README.txt +10 -0
- data/public/libs/jstree/_demo/_dump.sql +20 -0
- data/public/libs/jstree/_demo/_inc/__mysql_errors.log +0 -0
- data/public/libs/jstree/_demo/_inc/class._database.php +146 -0
- data/public/libs/jstree/_demo/_inc/class._database_i.php +152 -0
- data/public/libs/jstree/_demo/_inc/class.tree.php +602 -0
- data/public/libs/jstree/_demo/_install.txt +6 -0
- data/public/libs/jstree/_demo/config.php +14 -0
- data/public/libs/jstree/_demo/file.png +0 -0
- data/public/libs/jstree/_demo/folder.png +0 -0
- data/public/libs/jstree/_demo/index.html +461 -0
- data/public/libs/jstree/_demo/root.png +0 -0
- data/public/libs/jstree/_demo/server.php +69 -0
- data/public/libs/jstree/_docs/!style.css +48 -0
- data/public/libs/jstree/_docs/_drive.png +0 -0
- data/public/libs/jstree/_docs/_html_data.html +2 -0
- data/public/libs/jstree/_docs/_json_data.json +4 -0
- data/public/libs/jstree/_docs/_search_data.json +6 -0
- data/public/libs/jstree/_docs/_search_result.json +1 -0
- data/public/libs/jstree/_docs/_xml_flat.xml +12 -0
- data/public/libs/jstree/_docs/_xml_nest.xml +18 -0
- data/public/libs/jstree/_docs/checkbox.html +171 -0
- data/public/libs/jstree/_docs/contextmenu.html +121 -0
- data/public/libs/jstree/_docs/cookies.html +97 -0
- data/public/libs/jstree/_docs/core.html +689 -0
- data/public/libs/jstree/_docs/crrm.html +316 -0
- data/public/libs/jstree/_docs/dnd.html +199 -0
- data/public/libs/jstree/_docs/hotkeys.html +82 -0
- data/public/libs/jstree/_docs/html_data.html +175 -0
- data/public/libs/jstree/_docs/index.html +86 -0
- data/public/libs/jstree/_docs/json_data.html +249 -0
- data/public/libs/jstree/_docs/languages.html +152 -0
- data/public/libs/jstree/_docs/logo.png +0 -0
- data/public/libs/jstree/_docs/search.html +153 -0
- data/public/libs/jstree/_docs/sort.html +85 -0
- data/public/libs/jstree/_docs/syntax/!script.js +2232 -0
- data/public/libs/jstree/_docs/syntax/!style.css +511 -0
- data/public/libs/jstree/_docs/syntax/clipboard.swf +0 -0
- data/public/libs/jstree/_docs/syntax/help.png +0 -0
- data/public/libs/jstree/_docs/syntax/magnifier.png +0 -0
- data/public/libs/jstree/_docs/syntax/page_white_code.png +0 -0
- data/public/libs/jstree/_docs/syntax/page_white_copy.png +0 -0
- data/public/libs/jstree/_docs/syntax/printer.png +0 -0
- data/public/libs/jstree/_docs/syntax/wrapping.png +0 -0
- data/public/libs/jstree/_docs/themeroller.html +107 -0
- data/public/libs/jstree/_docs/themes.html +127 -0
- data/public/libs/jstree/_docs/types.html +178 -0
- data/public/libs/jstree/_docs/ui.html +197 -0
- data/public/libs/jstree/_docs/unique.html +85 -0
- data/public/libs/jstree/_docs/xml_data.html +218 -0
- data/public/libs/jstree/_lib/jquery.cookie.js +96 -0
- data/public/libs/jstree/_lib/jquery.hotkeys.js +99 -0
- data/public/libs/jstree/_lib/jquery.js +5 -0
- data/public/libs/jstree/jquery.jstree.js +4564 -0
- data/public/libs/jstree/themes/apple/bg.jpg +0 -0
- data/public/libs/jstree/themes/apple/d.png +0 -0
- data/public/libs/jstree/themes/apple/dot_for_ie.gif +0 -0
- data/public/libs/jstree/themes/apple/style.css +61 -0
- data/public/libs/jstree/themes/apple/throbber.gif +0 -0
- data/public/libs/jstree/themes/classic/d.gif +0 -0
- data/public/libs/jstree/themes/classic/d.png +0 -0
- data/public/libs/jstree/themes/classic/dot_for_ie.gif +0 -0
- data/public/libs/jstree/themes/classic/style.css +77 -0
- data/public/libs/jstree/themes/classic/throbber.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/d.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/d.png +0 -0
- data/public/libs/jstree/themes/default-rtl/dots.gif +0 -0
- data/public/libs/jstree/themes/default-rtl/style.css +84 -0
- data/public/libs/jstree/themes/default-rtl/throbber.gif +0 -0
- data/public/libs/jstree/themes/default/d.gif +0 -0
- data/public/libs/jstree/themes/default/d.png +0 -0
- data/public/libs/jstree/themes/default/style.css +74 -0
- data/public/libs/jstree/themes/default/throbber.gif +0 -0
- data/public/themes/geo-bootstrap/README.md +25 -0
- data/public/themes/geo-bootstrap/img/flames.gif +0 -0
- data/public/themes/geo-bootstrap/img/glyphicons-halflings-white.png +0 -0
- data/public/themes/geo-bootstrap/img/glyphicons-halflings.png +0 -0
- data/public/themes/geo-bootstrap/img/microfab.gif +0 -0
- data/public/themes/geo-bootstrap/img/progress.gif +0 -0
- data/public/themes/geo-bootstrap/img/rainbow.gif +0 -0
- data/public/themes/geo-bootstrap/img/stars.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/7upspot.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/americanflag.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/community.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/computer-01.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/computer.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/construction.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/counter.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/counter2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider1.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider3.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/divider4.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/drudgesiren.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/emailme.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/funky.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/geocities.jpg +0 -0
- data/public/themes/geo-bootstrap/img/test/hacker.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/heart.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/hot.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/ie_logo.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/mailkitten.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/mchammer.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/new.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/new2.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/noframes.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/notepad.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/ns_logo.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/sign-in.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/spinningearth.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/underconstruction.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/wabwalk.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/webtrips.gif +0 -0
- data/public/themes/geo-bootstrap/img/test/yahooweek.gif +0 -0
- data/public/themes/geo-bootstrap/package.json +21 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.css +1109 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap-responsive.min.css +9 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap.css +6462 -0
- data/public/themes/geo-bootstrap/swatch/bootstrap.min.css +9 -0
- metadata +791 -0
@@ -0,0 +1,266 @@
|
|
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");
|
@@ -0,0 +1,23 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2013 Kenneth Bentley
|
4
|
+
Modified from the CoffeeScript CodeMirror mode, Copyright (c) 2011 Jeff Pickhardt
|
5
|
+
Modified from the Python CodeMirror mode, Copyright (c) 2010 Timothy Farrell
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
9
|
+
in the Software without restriction, including without limitation the rights
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
12
|
+
furnished to do so, subject to the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be included in
|
15
|
+
all copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
23
|
+
THE SOFTWARE.
|
@@ -0,0 +1,446 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>CodeMirror: LiveScript mode</title>
|
5
|
+
<link rel="stylesheet" href="../../lib/codemirror.css">
|
6
|
+
<script src="../../lib/codemirror.js"></script>
|
7
|
+
<script src="livescript.js"></script>
|
8
|
+
<style>.CodeMirror {font-size: 80%;border-top: 1px solid silver; border-bottom: 1px solid silver;}</style>
|
9
|
+
<link rel="stylesheet" href="../../doc/docs.css">
|
10
|
+
<link rel="stylesheet" href="../../theme/solarized.css">
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<h1>CodeMirror: LiveScript mode</h1>
|
14
|
+
<form><textarea id="code" name="code">
|
15
|
+
# LiveScript mode for CodeMirror
|
16
|
+
# The following script, prelude.ls, is used to
|
17
|
+
# demonstrate LiveScript mode for CodeMirror.
|
18
|
+
# https://github.com/gkz/prelude-ls
|
19
|
+
|
20
|
+
export objToFunc = objToFunc = (obj) ->
|
21
|
+
(key) -> obj[key]
|
22
|
+
|
23
|
+
export each = (f, xs) -->
|
24
|
+
if typeof! xs is \Object
|
25
|
+
for , x of xs then f x
|
26
|
+
else
|
27
|
+
for x in xs then f x
|
28
|
+
xs
|
29
|
+
|
30
|
+
export map = (f, xs) -->
|
31
|
+
f = objToFunc f if typeof! f isnt \Function
|
32
|
+
type = typeof! xs
|
33
|
+
if type is \Object
|
34
|
+
{[key, f x] for key, x of xs}
|
35
|
+
else
|
36
|
+
result = [f x for x in xs]
|
37
|
+
if type is \String then result * '' else result
|
38
|
+
|
39
|
+
export filter = (f, xs) -->
|
40
|
+
f = objToFunc f if typeof! f isnt \Function
|
41
|
+
type = typeof! xs
|
42
|
+
if type is \Object
|
43
|
+
{[key, x] for key, x of xs when f x}
|
44
|
+
else
|
45
|
+
result = [x for x in xs when f x]
|
46
|
+
if type is \String then result * '' else result
|
47
|
+
|
48
|
+
export reject = (f, xs) -->
|
49
|
+
f = objToFunc f if typeof! f isnt \Function
|
50
|
+
type = typeof! xs
|
51
|
+
if type is \Object
|
52
|
+
{[key, x] for key, x of xs when not f x}
|
53
|
+
else
|
54
|
+
result = [x for x in xs when not f x]
|
55
|
+
if type is \String then result * '' else result
|
56
|
+
|
57
|
+
export partition = (f, xs) -->
|
58
|
+
f = objToFunc f if typeof! f isnt \Function
|
59
|
+
type = typeof! xs
|
60
|
+
if type is \Object
|
61
|
+
passed = {}
|
62
|
+
failed = {}
|
63
|
+
for key, x of xs
|
64
|
+
(if f x then passed else failed)[key] = x
|
65
|
+
else
|
66
|
+
passed = []
|
67
|
+
failed = []
|
68
|
+
for x in xs
|
69
|
+
(if f x then passed else failed)push x
|
70
|
+
if type is \String
|
71
|
+
passed *= ''
|
72
|
+
failed *= ''
|
73
|
+
[passed, failed]
|
74
|
+
|
75
|
+
export find = (f, xs) -->
|
76
|
+
f = objToFunc f if typeof! f isnt \Function
|
77
|
+
if typeof! xs is \Object
|
78
|
+
for , x of xs when f x then return x
|
79
|
+
else
|
80
|
+
for x in xs when f x then return x
|
81
|
+
void
|
82
|
+
|
83
|
+
export head = export first = (xs) ->
|
84
|
+
return void if not xs.length
|
85
|
+
xs.0
|
86
|
+
|
87
|
+
export tail = (xs) ->
|
88
|
+
return void if not xs.length
|
89
|
+
xs.slice 1
|
90
|
+
|
91
|
+
export last = (xs) ->
|
92
|
+
return void if not xs.length
|
93
|
+
xs[*-1]
|
94
|
+
|
95
|
+
export initial = (xs) ->
|
96
|
+
return void if not xs.length
|
97
|
+
xs.slice 0 xs.length - 1
|
98
|
+
|
99
|
+
export empty = (xs) ->
|
100
|
+
if typeof! xs is \Object
|
101
|
+
for x of xs then return false
|
102
|
+
return yes
|
103
|
+
not xs.length
|
104
|
+
|
105
|
+
export values = (obj) ->
|
106
|
+
[x for , x of obj]
|
107
|
+
|
108
|
+
export keys = (obj) ->
|
109
|
+
[x for x of obj]
|
110
|
+
|
111
|
+
export len = (xs) ->
|
112
|
+
xs = values xs if typeof! xs is \Object
|
113
|
+
xs.length
|
114
|
+
|
115
|
+
export cons = (x, xs) -->
|
116
|
+
if typeof! xs is \String then x + xs else [x] ++ xs
|
117
|
+
|
118
|
+
export append = (xs, ys) -->
|
119
|
+
if typeof! ys is \String then xs + ys else xs ++ ys
|
120
|
+
|
121
|
+
export join = (sep, xs) -->
|
122
|
+
xs = values xs if typeof! xs is \Object
|
123
|
+
xs.join sep
|
124
|
+
|
125
|
+
export reverse = (xs) ->
|
126
|
+
if typeof! xs is \String
|
127
|
+
then (xs / '')reverse! * ''
|
128
|
+
else xs.slice!reverse!
|
129
|
+
|
130
|
+
export fold = export foldl = (f, memo, xs) -->
|
131
|
+
if typeof! xs is \Object
|
132
|
+
for , x of xs then memo = f memo, x
|
133
|
+
else
|
134
|
+
for x in xs then memo = f memo, x
|
135
|
+
memo
|
136
|
+
|
137
|
+
export fold1 = export foldl1 = (f, xs) --> fold f, xs.0, xs.slice 1
|
138
|
+
|
139
|
+
export foldr = (f, memo, xs) --> fold f, memo, xs.slice!reverse!
|
140
|
+
|
141
|
+
export foldr1 = (f, xs) -->
|
142
|
+
xs.=slice!reverse!
|
143
|
+
fold f, xs.0, xs.slice 1
|
144
|
+
|
145
|
+
export unfoldr = export unfold = (f, b) -->
|
146
|
+
if (f b)?
|
147
|
+
[that.0] ++ unfoldr f, that.1
|
148
|
+
else
|
149
|
+
[]
|
150
|
+
|
151
|
+
export andList = (xs) ->
|
152
|
+
for x in xs when not x
|
153
|
+
return false
|
154
|
+
true
|
155
|
+
|
156
|
+
export orList = (xs) ->
|
157
|
+
for x in xs when x
|
158
|
+
return true
|
159
|
+
false
|
160
|
+
|
161
|
+
export any = (f, xs) -->
|
162
|
+
f = objToFunc f if typeof! f isnt \Function
|
163
|
+
for x in xs when f x
|
164
|
+
return yes
|
165
|
+
no
|
166
|
+
|
167
|
+
export all = (f, xs) -->
|
168
|
+
f = objToFunc f if typeof! f isnt \Function
|
169
|
+
for x in xs when not f x
|
170
|
+
return no
|
171
|
+
yes
|
172
|
+
|
173
|
+
export unique = (xs) ->
|
174
|
+
result = []
|
175
|
+
if typeof! xs is \Object
|
176
|
+
for , x of xs when x not in result then result.push x
|
177
|
+
else
|
178
|
+
for x in xs when x not in result then result.push x
|
179
|
+
if typeof! xs is \String then result * '' else result
|
180
|
+
|
181
|
+
export sort = (xs) ->
|
182
|
+
xs.concat!sort (x, y) ->
|
183
|
+
| x > y => 1
|
184
|
+
| x < y => -1
|
185
|
+
| _ => 0
|
186
|
+
|
187
|
+
export sortBy = (f, xs) -->
|
188
|
+
return [] unless xs.length
|
189
|
+
xs.concat!sort f
|
190
|
+
|
191
|
+
export compare = (f, x, y) -->
|
192
|
+
| (f x) > (f y) => 1
|
193
|
+
| (f x) < (f y) => -1
|
194
|
+
| otherwise => 0
|
195
|
+
|
196
|
+
export sum = (xs) ->
|
197
|
+
result = 0
|
198
|
+
if typeof! xs is \Object
|
199
|
+
for , x of xs then result += x
|
200
|
+
else
|
201
|
+
for x in xs then result += x
|
202
|
+
result
|
203
|
+
|
204
|
+
export product = (xs) ->
|
205
|
+
result = 1
|
206
|
+
if typeof! xs is \Object
|
207
|
+
for , x of xs then result *= x
|
208
|
+
else
|
209
|
+
for x in xs then result *= x
|
210
|
+
result
|
211
|
+
|
212
|
+
export mean = export average = (xs) -> (sum xs) / len xs
|
213
|
+
|
214
|
+
export concat = (xss) -> fold append, [], xss
|
215
|
+
|
216
|
+
export concatMap = (f, xs) --> fold ((memo, x) -> append memo, f x), [], xs
|
217
|
+
|
218
|
+
export listToObj = (xs) ->
|
219
|
+
{[x.0, x.1] for x in xs}
|
220
|
+
|
221
|
+
export maximum = (xs) -> fold1 (>?), xs
|
222
|
+
|
223
|
+
export minimum = (xs) -> fold1 (<?), xs
|
224
|
+
|
225
|
+
export scan = export scanl = (f, memo, xs) -->
|
226
|
+
last = memo
|
227
|
+
if typeof! xs is \Object
|
228
|
+
then [memo] ++ [last = f last, x for , x of xs]
|
229
|
+
else [memo] ++ [last = f last, x for x in xs]
|
230
|
+
|
231
|
+
export scan1 = export scanl1 = (f, xs) --> scan f, xs.0, xs.slice 1
|
232
|
+
|
233
|
+
export scanr = (f, memo, xs) -->
|
234
|
+
xs.=slice!reverse!
|
235
|
+
scan f, memo, xs .reverse!
|
236
|
+
|
237
|
+
export scanr1 = (f, xs) -->
|
238
|
+
xs.=slice!reverse!
|
239
|
+
scan f, xs.0, xs.slice 1 .reverse!
|
240
|
+
|
241
|
+
export replicate = (n, x) -->
|
242
|
+
result = []
|
243
|
+
i = 0
|
244
|
+
while i < n, ++i then result.push x
|
245
|
+
result
|
246
|
+
|
247
|
+
export take = (n, xs) -->
|
248
|
+
| n <= 0
|
249
|
+
if typeof! xs is \String then '' else []
|
250
|
+
| not xs.length => xs
|
251
|
+
| otherwise => xs.slice 0, n
|
252
|
+
|
253
|
+
export drop = (n, xs) -->
|
254
|
+
| n <= 0 => xs
|
255
|
+
| not xs.length => xs
|
256
|
+
| otherwise => xs.slice n
|
257
|
+
|
258
|
+
export splitAt = (n, xs) --> [(take n, xs), (drop n, xs)]
|
259
|
+
|
260
|
+
export takeWhile = (p, xs) -->
|
261
|
+
return xs if not xs.length
|
262
|
+
p = objToFunc p if typeof! p isnt \Function
|
263
|
+
result = []
|
264
|
+
for x in xs
|
265
|
+
break if not p x
|
266
|
+
result.push x
|
267
|
+
if typeof! xs is \String then result * '' else result
|
268
|
+
|
269
|
+
export dropWhile = (p, xs) -->
|
270
|
+
return xs if not xs.length
|
271
|
+
p = objToFunc p if typeof! p isnt \Function
|
272
|
+
i = 0
|
273
|
+
for x in xs
|
274
|
+
break if not p x
|
275
|
+
++i
|
276
|
+
drop i, xs
|
277
|
+
|
278
|
+
export span = (p, xs) --> [(takeWhile p, xs), (dropWhile p, xs)]
|
279
|
+
|
280
|
+
export breakIt = (p, xs) --> span (not) << p, xs
|
281
|
+
|
282
|
+
export zip = (xs, ys) -->
|
283
|
+
result = []
|
284
|
+
for zs, i in [xs, ys]
|
285
|
+
for z, j in zs
|
286
|
+
result.push [] if i is 0
|
287
|
+
result[j]?push z
|
288
|
+
result
|
289
|
+
|
290
|
+
export zipWith = (f,xs, ys) -->
|
291
|
+
f = objToFunc f if typeof! f isnt \Function
|
292
|
+
if not xs.length or not ys.length
|
293
|
+
[]
|
294
|
+
else
|
295
|
+
[f.apply this, zs for zs in zip.call this, xs, ys]
|
296
|
+
|
297
|
+
export zipAll = (...xss) ->
|
298
|
+
result = []
|
299
|
+
for xs, i in xss
|
300
|
+
for x, j in xs
|
301
|
+
result.push [] if i is 0
|
302
|
+
result[j]?push x
|
303
|
+
result
|
304
|
+
|
305
|
+
export zipAllWith = (f, ...xss) ->
|
306
|
+
f = objToFunc f if typeof! f isnt \Function
|
307
|
+
if not xss.0.length or not xss.1.length
|
308
|
+
[]
|
309
|
+
else
|
310
|
+
[f.apply this, xs for xs in zipAll.apply this, xss]
|
311
|
+
|
312
|
+
export compose = (...funcs) ->
|
313
|
+
->
|
314
|
+
args = arguments
|
315
|
+
for f in funcs
|
316
|
+
args = [f.apply this, args]
|
317
|
+
args.0
|
318
|
+
|
319
|
+
export curry = (f) ->
|
320
|
+
curry$ f # using util method curry$ from livescript
|
321
|
+
|
322
|
+
export id = (x) -> x
|
323
|
+
|
324
|
+
export flip = (f, x, y) --> f y, x
|
325
|
+
|
326
|
+
export fix = (f) ->
|
327
|
+
( (g, x) -> -> f(g g) ...arguments ) do
|
328
|
+
(g, x) -> -> f(g g) ...arguments
|
329
|
+
|
330
|
+
export lines = (str) ->
|
331
|
+
return [] if not str.length
|
332
|
+
str / \\n
|
333
|
+
|
334
|
+
export unlines = (strs) -> strs * \\n
|
335
|
+
|
336
|
+
export words = (str) ->
|
337
|
+
return [] if not str.length
|
338
|
+
str / /[ ]+/
|
339
|
+
|
340
|
+
export unwords = (strs) -> strs * ' '
|
341
|
+
|
342
|
+
export max = (>?)
|
343
|
+
|
344
|
+
export min = (<?)
|
345
|
+
|
346
|
+
export negate = (x) -> -x
|
347
|
+
|
348
|
+
export abs = Math.abs
|
349
|
+
|
350
|
+
export signum = (x) ->
|
351
|
+
| x < 0 => -1
|
352
|
+
| x > 0 => 1
|
353
|
+
| otherwise => 0
|
354
|
+
|
355
|
+
export quot = (x, y) --> ~~(x / y)
|
356
|
+
|
357
|
+
export rem = (%)
|
358
|
+
|
359
|
+
export div = (x, y) --> Math.floor x / y
|
360
|
+
|
361
|
+
export mod = (%%)
|
362
|
+
|
363
|
+
export recip = (1 /)
|
364
|
+
|
365
|
+
export pi = Math.PI
|
366
|
+
|
367
|
+
export tau = pi * 2
|
368
|
+
|
369
|
+
export exp = Math.exp
|
370
|
+
|
371
|
+
export sqrt = Math.sqrt
|
372
|
+
|
373
|
+
# changed from log as log is a
|
374
|
+
# common function for logging things
|
375
|
+
export ln = Math.log
|
376
|
+
|
377
|
+
export pow = (^)
|
378
|
+
|
379
|
+
export sin = Math.sin
|
380
|
+
|
381
|
+
export tan = Math.tan
|
382
|
+
|
383
|
+
export cos = Math.cos
|
384
|
+
|
385
|
+
export asin = Math.asin
|
386
|
+
|
387
|
+
export acos = Math.acos
|
388
|
+
|
389
|
+
export atan = Math.atan
|
390
|
+
|
391
|
+
export atan2 = (x, y) --> Math.atan2 x, y
|
392
|
+
|
393
|
+
# sinh
|
394
|
+
# tanh
|
395
|
+
# cosh
|
396
|
+
# asinh
|
397
|
+
# atanh
|
398
|
+
# acosh
|
399
|
+
|
400
|
+
export truncate = (x) -> ~~x
|
401
|
+
|
402
|
+
export round = Math.round
|
403
|
+
|
404
|
+
export ceiling = Math.ceil
|
405
|
+
|
406
|
+
export floor = Math.floor
|
407
|
+
|
408
|
+
export isItNaN = (x) -> x isnt x
|
409
|
+
|
410
|
+
export even = (x) -> x % 2 == 0
|
411
|
+
|
412
|
+
export odd = (x) -> x % 2 != 0
|
413
|
+
|
414
|
+
export gcd = (x, y) -->
|
415
|
+
x = Math.abs x
|
416
|
+
y = Math.abs y
|
417
|
+
until y is 0
|
418
|
+
z = x % y
|
419
|
+
x = y
|
420
|
+
y = z
|
421
|
+
x
|
422
|
+
|
423
|
+
export lcm = (x, y) -->
|
424
|
+
Math.abs Math.floor (x / (gcd x, y) * y)
|
425
|
+
|
426
|
+
# meta
|
427
|
+
export installPrelude = !(target) ->
|
428
|
+
unless target.prelude?isInstalled
|
429
|
+
target <<< out$ # using out$ generated by livescript
|
430
|
+
target <<< target.prelude.isInstalled = true
|
431
|
+
|
432
|
+
export prelude = out$
|
433
|
+
</textarea></form>
|
434
|
+
<script>
|
435
|
+
var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
|
436
|
+
theme: "solarized light",
|
437
|
+
lineNumbers: true
|
438
|
+
});
|
439
|
+
</script>
|
440
|
+
|
441
|
+
<p><strong>MIME types defined:</strong> <code>text/x-livescript</code>.</p>
|
442
|
+
|
443
|
+
<p>The LiveScript mode was written by Kenneth Bentley (<a href="LICENSE">license</a>).</p>
|
444
|
+
|
445
|
+
</body>
|
446
|
+
</html>
|