aboutsummaryrefslogtreecommitdiff
path: root/imports/codemirror/mode/javascript/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'imports/codemirror/mode/javascript/index.html')
-rwxr-xr-ximports/codemirror/mode/javascript/index.html77
1 files changed, 77 insertions, 0 deletions
diff --git a/imports/codemirror/mode/javascript/index.html b/imports/codemirror/mode/javascript/index.html
new file mode 100755
index 00000000..c3ab91dc
--- /dev/null
+++ b/imports/codemirror/mode/javascript/index.html
@@ -0,0 +1,77 @@
1<!doctype html>
2<html>
3 <head>
4 <title>CodeMirror: JavaScript mode</title>
5 <link rel="stylesheet" href="../../lib/codemirror.css">
6 <script src="../../lib/codemirror.js"></script>
7 <script src="javascript.js"></script>
8 <link rel="stylesheet" href="../../doc/docs.css">
9 <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
10 </head>
11 <body>
12 <h1>CodeMirror: JavaScript mode</h1>
13
14<div><textarea id="code" name="code">
15// Demo code (the actual new parser character stream implementation)
16
17function StringStream(string) {
18 this.pos = 0;
19 this.string = string;
20}
21
22StringStream.prototype = {
23 done: function() {return this.pos >= this.string.length;},
24 peek: function() {return this.string.charAt(this.pos);},
25 next: function() {
26 if (this.pos &lt; this.string.length)
27 return this.string.charAt(this.pos++);
28 },
29 eat: function(match) {
30 var ch = this.string.charAt(this.pos);
31 if (typeof match == "string") var ok = ch == match;
32 else var ok = ch &amp;&amp; match.test ? match.test(ch) : match(ch);
33 if (ok) {this.pos++; return ch;}
34 },
35 eatWhile: function(match) {
36 var start = this.pos;
37 while (this.eat(match));
38 if (this.pos > start) return this.string.slice(start, this.pos);
39 },
40 backUp: function(n) {this.pos -= n;},
41 column: function() {return this.pos;},
42 eatSpace: function() {
43 var start = this.pos;
44 while (/\s/.test(this.string.charAt(this.pos))) this.pos++;
45 return this.pos - start;
46 },
47 match: function(pattern, consume, caseInsensitive) {
48 if (typeof pattern == "string") {
49 function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}
50 if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) {
51 if (consume !== false) this.pos += str.length;
52 return true;
53 }
54 }
55 else {
56 var match = this.string.slice(this.pos).match(pattern);
57 if (match &amp;&amp; consume !== false) this.pos += match[0].length;
58 return match;
59 }
60 }
61};
62</textarea></div>
63
64 <script>
65 var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
66 lineNumbers: true,
67 matchBrackets: true
68 });
69 </script>
70
71 <p>JavaScript mode supports a single configuration
72 option, <code>json</code>, which will set the mode to expect JSON
73 data rather than a JavaScript program.</p>
74
75 <p><strong>MIME types defined:</strong> <code>text/javascript</code>, <code>application/json</code>.</p>
76 </body>
77</html>