diff --git a/demo/boot.js b/demo/boot.js index 7862e86d..93d9badb 100644 --- a/demo/boot.js +++ b/demo/boot.js @@ -39,14 +39,13 @@ define(function(require, exports, module) { require("pilot/fixoldbrowsers"); require("pilot/plugin_manager"); -require("pilot/settings"); require("pilot/environment"); require("demo/demo"); require("pilot/index"); require("ace/defaults"); -var plugins = [ "pilot/index", "ace/defaults" ]; +var plugins = [ "pilot/index"]; var catalog = require("pilot/plugin_manager").catalog; catalog.registerPlugins(plugins).then(function() { var env = require("pilot/environment").create(); diff --git a/demo/demo.js b/demo/demo.js index 9fc08c0c..ac17f54f 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -95,7 +95,7 @@ exports.launch = function(env) { var docs = {}; // Make the lorem ipsum text a little bit longer. - var loreIpsum = document.getElementById("plaintext").innerHTML; + var loreIpsum = require("text!demo/docs/plaintext.txt"); for (var i = 0; i < 5; i++) { loreIpsum += loreIpsum; } @@ -105,85 +105,83 @@ exports.launch = function(env) { docs.plain.setMode(new TextMode()); docs.plain.setUndoManager(new UndoManager()); - docs.js = new EditSession(document.getElementById("jstext").innerHTML); + docs.js = new EditSession(require("text!demo/docs/javascript.js")); docs.js.setMode(new JavaScriptMode()); docs.js.setUndoManager(new UndoManager()); - docs.css = new EditSession(document.getElementById("csstext").innerHTML); + docs.css = new EditSession(require("text!demo/docs/css.css")); docs.css.setMode(new CssMode()); docs.css.setUndoManager(new UndoManager()); - docs.scss = new EditSession(document.getElementById("scsstext").innerHTML); + docs.scss = new EditSession(require("text!demo/docs/scss.scss")); docs.scss.setMode(new ScssMode()); docs.scss.setUndoManager(new UndoManager()); - docs.html = new EditSession(document.getElementById("htmltext").innerHTML); + docs.html = new EditSession(require("text!demo/docs/html.html")); docs.html.setMode(new HtmlMode()); docs.html.setUndoManager(new UndoManager()); - docs.python = new EditSession(document.getElementById("pythontext").innerHTML); + docs.python = new EditSession(require("text!demo/docs/python.py")); docs.python.setMode(new PythonMode()); docs.python.setUndoManager(new UndoManager()); - docs.php = new EditSession(document.getElementById("phptext").innerHTML); + docs.php = new EditSession(require("text!demo/docs/php.php")); docs.php.setMode(new PhpMode()); docs.php.setUndoManager(new UndoManager()); - docs.java = new EditSession(document.getElementById("javatext").innerHTML); + docs.java = new EditSession(require("text!demo/docs/java.java")); docs.java.setMode(new JavaMode()); docs.java.setUndoManager(new UndoManager()); docs.java.addFold("...", new Range(8, 44, 13, 4)); - docs.ruby = new EditSession(document.getElementById("rubytext").innerHTML); + docs.ruby = new EditSession(require("text!demo/docs/ruby.rb")); docs.ruby.setMode(new RubyMode()); docs.ruby.setUndoManager(new UndoManager()); - docs.csharp = new EditSession(document.getElementById("csharptext").innerHTML); + docs.csharp = new EditSession(require("text!demo/docs/csharp.cs")); docs.csharp.setMode(new CSharpMode()); docs.csharp.setUndoManager(new UndoManager()); - docs.c_cpp = new EditSession(document.getElementById("cpptext").innerHTML); + docs.c_cpp = new EditSession(require("text!demo/docs/cpp.cpp")); docs.c_cpp.setMode(new CCPPMode()); docs.c_cpp.setUndoManager(new UndoManager()); - docs.coffee = new EditSession(document.getElementById("coffeetext").innerHTML); + docs.coffee = new EditSession(require("text!demo/docs/coffeescript.coffee")); docs.coffee.setMode(new CoffeeMode()); docs.coffee.setUndoManager(new UndoManager()); - docs.json = new EditSession(document.getElementById("jsontext").innerHTML); + docs.json = new EditSession(require("text!demo/docs/json.json")); docs.json.setMode(new JsonMode()); docs.json.setUndoManager(new UndoManager()); - docs.perl = new EditSession(document.getElementById("perltext").innerHTML); + docs.perl = new EditSession(require("text!demo/docs/perl.pl")); docs.perl.setMode(new PerlMode()); docs.perl.setUndoManager(new UndoManager()); - docs.clojure = new EditSession(document.getElementById("clojuretext").innerHTML); + docs.clojure = new EditSession(require("text!demo/docs/clojure.clj")); docs.clojure.setMode(new ClojureMode()); docs.clojure.setUndoManager(new UndoManager()); - docs.ocaml = new EditSession(document.getElementById("ocamltext").innerHTML); + docs.ocaml = new EditSession(require("text!demo/docs/ocaml.ml")); docs.ocaml.setMode(new OcamlMode()); docs.ocaml.setUndoManager(new UndoManager()); - docs.svg = new EditSession(document.getElementById("svgtext").innerHTML.replace("<", "<")); + docs.svg = new EditSession(require("text!demo/docs/svg.svg")); docs.svg.setMode(new SvgMode()); docs.svg.setUndoManager(new UndoManager()); - docs.textile = new EditSession(document.getElementById("textiletext").innerHTML); + docs.textile = new EditSession(require("text!demo/docs/textile.textile")); docs.textile.setMode(new TextileMode()); docs.textile.setUndoManager(new UndoManager()); - docs.groovy = new EditSession(document.getElementById("groovy").innerHTML); + docs.groovy = new EditSession(require("text!demo/docs/groovy.groovy")); docs.groovy.setMode(new GroovyMode()); docs.groovy.setUndoManager(new UndoManager()); - docs.scala = new EditSession(document.getElementById("scala").innerHTML); + docs.scala = new EditSession(require("text!demo/docs/scala.scala")); docs.scala.setMode(new ScalaMode()); docs.scala.setUndoManager(new UndoManager()); - - // Add a "name" property to all docs for (var doc in docs) { @@ -461,7 +459,7 @@ exports.launch = function(env) { var onCheck = function() { callback(!!el.checked); }; - el.onclick = onCheck; + el.onCheckck = onCheck; onCheck(); } @@ -562,7 +560,7 @@ exports.launch = function(env) { bindKey: { win: "Ctrl-S", mac: "Command-S", - sender: "editor|cli" + sender: "editor" }, exec: function() { alert("Fake Save File"); diff --git a/demo/docs/clojure.clj b/demo/docs/clojure.clj new file mode 100644 index 00000000..42acfcc7 --- /dev/null +++ b/demo/docs/clojure.clj @@ -0,0 +1,19 @@ +(defn parting + "returns a String parting in a given language" + ([] (parting "World")) + ([name] (parting name "en")) + ([name language] + ; condp is similar to a case statement in other languages. + ; It is described in more detail later. + ; It is used here to take different actions based on whether the + ; parameter "language" is set to "en", "es" or something else. + (condp = language + "en" (str "Goodbye, " name) + "es" (str "Adios, " name) + (throw (IllegalArgumentException. + (str "unsupported language " language)))))) + +(println (parting)) ; -> Goodbye, World +(println (parting "Mark")) ; -> Goodbye, Mark +(println (parting "Mark" "es")) ; -> Adios, Mark +(println (parting "Mark", "xy")) ; -> java.lang.IllegalArgumentException: unsupported language xy \ No newline at end of file diff --git a/demo/docs/coffeescript.coffee b/demo/docs/coffeescript.coffee new file mode 100644 index 00000000..521fdc57 --- /dev/null +++ b/demo/docs/coffeescript.coffee @@ -0,0 +1,20 @@ +#!/usr/bin/env coffee + +try + throw URIError decodeURI(0xC0ffee * 123456.7e-8 / .9) +catch e + console.log 'qstring' + "qqstring" + ''' + qdoc + ''' + """ + qqdoc + """ + +do -> + ### + herecomment + ### + re = /regex/imgy.test /// + heregex # comment + ///imgy + this isnt: `just JavaScript` + undefined \ No newline at end of file diff --git a/demo/docs/cpp.cpp b/demo/docs/cpp.cpp new file mode 100644 index 00000000..1a2843db --- /dev/null +++ b/demo/docs/cpp.cpp @@ -0,0 +1,13 @@ +// compound assignment operators + +#include +using namespace std; + +int main () +{ + int a, b=3; /* foobar */ + a = b; + a+=2; // equivalent to a=a+2 + cout << a; + return 0; +} \ No newline at end of file diff --git a/demo/docs/csharp.cs b/demo/docs/csharp.cs new file mode 100644 index 00000000..9478be87 --- /dev/null +++ b/demo/docs/csharp.cs @@ -0,0 +1,4 @@ +public void HelloWorld() { + //Say Hello! + Console.WriteLine("Hello World"); +} \ No newline at end of file diff --git a/demo/docs/css.css b/demo/docs/css.css new file mode 100644 index 00000000..3bb89ff8 --- /dev/null +++ b/demo/docs/css.css @@ -0,0 +1,5 @@ +.text-layer { + font-family: Monaco, "Courier New", monospace; + font-size: 12px; + cursor: text; +} \ No newline at end of file diff --git a/demo/docs/groovy.groovy b/demo/docs/groovy.groovy new file mode 100644 index 00000000..25927bde --- /dev/null +++ b/demo/docs/groovy.groovy @@ -0,0 +1,26 @@ +//http://groovy.codehaus.org/Concurrency+with+Groovy +import java.util.concurrent.atomic.AtomicInteger + +def counter = new AtomicInteger() + +synchronized out(message) { + println(message) +} + +def th = Thread.start { + for( i in 1..8 ) { + sleep 30 + out "thread loop $i" + counter.incrementAndGet() + } +} + +for( j in 1..4 ) { + sleep 50 + out "main loop $j" + counter.incrementAndGet() +} + +th.join() + +assert counter.get() == 12 \ No newline at end of file diff --git a/demo/docs/html.html b/demo/docs/html.html new file mode 100644 index 00000000..a3a566ff --- /dev/null +++ b/demo/docs/html.html @@ -0,0 +1,16 @@ + + + + + + + +

Juhu Kinners

+ + \ No newline at end of file diff --git a/demo/docs/java.java b/demo/docs/java.java new file mode 100644 index 00000000..f3b542b7 --- /dev/null +++ b/demo/docs/java.java @@ -0,0 +1,15 @@ +public class InfiniteLoop { + + /* + * This will cause the program to hang... + * + * Taken from: + * http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ + */ + public static void main(String[] args) { + double d = Double.parseDouble("2.2250738585072012e-308"); + + // unreachable code + System.out.println("Value: " + d); + } +} \ No newline at end of file diff --git a/demo/docs/javascript.js b/demo/docs/javascript.js new file mode 100644 index 00000000..ca27af56 --- /dev/null +++ b/demo/docs/javascript.js @@ -0,0 +1,5 @@ +function foo(items) { + for (var i=0; i t) = + let module M = + struct exception Return of t end + in + let return = { return = (fun x -> raise (M.Return x)); } in + try f return with M.Return x -> x + + +(* Function that uses the 'early return' functionality provided by `with_return` *) +let sum_until_first_negative list = + with_return (fun r -> + List.fold list ~init:0 ~f:(fun acc x -> + if x >= 0 then acc + x else r.return acc)) \ No newline at end of file diff --git a/demo/docs/perl.pl b/demo/docs/perl.pl new file mode 100644 index 00000000..01178e1c --- /dev/null +++ b/demo/docs/perl.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl +use strict; +use warnings; +my $num_primes = 0; +my @primes; + +# Put 2 as the first prime so we won't have an empty array +$primes[$num_primes] = 2; +$num_primes++; + +MAIN_LOOP: +for my $number_to_check (3 .. 200) +{ + for my $p (0 .. ($num_primes-1)) + { + if ($number_to_check % $primes[$p] == 0) + { + next MAIN_LOOP; + } + } + + # If we reached this point it means $number_to_check is not + # divisable by any prime number that came before it. + $primes[$num_primes] = $number_to_check; + $num_primes++; +} + +for my $p (0 .. ($num_primes-1)) +{ + print $primes[$p], ", "; +} +print "\n"; diff --git a/demo/docs/php.php b/demo/docs/php.php new file mode 100644 index 00000000..891de1d0 --- /dev/null +++ b/demo/docs/php.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/demo/docs/plaintext.txt b/demo/docs/plaintext.txt new file mode 100644 index 00000000..37bb4cca --- /dev/null +++ b/demo/docs/plaintext.txt @@ -0,0 +1,11 @@ +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. + +Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. + +At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur \ No newline at end of file diff --git a/demo/docs/python.py b/demo/docs/python.py new file mode 100644 index 00000000..719ba266 --- /dev/null +++ b/demo/docs/python.py @@ -0,0 +1,18 @@ +#!/usr/local/bin/python + +import string, sys + +# If no arguments were given, print a helpful message +if len(sys.argv)==1: +print 'Usage: celsius temp1 temp2 ...' +sys.exit(0) + +# Loop over the arguments +for i in sys.argv[1:]: +try: + fahrenheit=float(string.atoi(i)) +except string.atoi_error: + print repr(i), "not a numeric value" +else: + celsius=(fahrenheit-32)*5.0/9.0 + print '%i\260F = %i\260C' % (int(fahrenheit), int(celsius+.5)) \ No newline at end of file diff --git a/demo/docs/ruby.rb b/demo/docs/ruby.rb new file mode 100644 index 00000000..afe2efa0 --- /dev/null +++ b/demo/docs/ruby.rb @@ -0,0 +1,12 @@ +#!/usr/bin/ruby + +# Program to find the factorial of a number +def fact(n) + if n == 0 + 1 + else + n * fact(n-1) + end +end + +puts fact(ARGV[0].to_i) \ No newline at end of file diff --git a/demo/docs/scala.scala b/demo/docs/scala.scala new file mode 100644 index 00000000..c609a46f --- /dev/null +++ b/demo/docs/scala.scala @@ -0,0 +1,12 @@ +//http://www.scala-lang.org/node/227 +/* Defines a new method 'sort' for array objects */ +object implicits extends Application { + implicit def arrayWrapper[A : ClassManifest](x: Array[A]) = + new { + def sort(p: (A, A) => Boolean) = { + util.Sorting.stableSort(x, p); x + } + } + val x = Array(2, 3, 1, 4) + println("x = "+ x.sort((x: Int, y: Int) => x < y)) +} \ No newline at end of file diff --git a/demo/docs/scss.scss b/demo/docs/scss.scss new file mode 100644 index 00000000..e1558168 --- /dev/null +++ b/demo/docs/scss.scss @@ -0,0 +1,20 @@ +/* style.scss */ + +#navbar { + $navbar-width: 800px; + $items: 5; + $navbar-color: #ce4dd6; + + width: $navbar-width; + border-bottom: 2px solid $navbar-color; + + li { + float: left; + width: $navbar-width/$items - 10px; + + background-color: lighten($navbar-color, 20%); + &:hover { + background-color: lighten($navbar-color, 10%); + } + } +} \ No newline at end of file diff --git a/demo/docs/svg.svg b/demo/docs/svg.svg new file mode 100644 index 00000000..a3f1c757 --- /dev/null +++ b/demo/docs/svg.svg @@ -0,0 +1,83 @@ + + + Test Tube Progress Bar + Created for the Web Directions SVG competition + + - - - - -