diff options
Diffstat (limited to 'public/vendor/codemirror/mode/dart')
-rwxr-xr-x | public/vendor/codemirror/mode/dart/dart.js | 50 | ||||
-rwxr-xr-x | public/vendor/codemirror/mode/dart/index.html | 71 |
2 files changed, 121 insertions, 0 deletions
diff --git a/public/vendor/codemirror/mode/dart/dart.js b/public/vendor/codemirror/mode/dart/dart.js new file mode 100755 index 00000000..a49e218c --- /dev/null +++ b/public/vendor/codemirror/mode/dart/dart.js @@ -0,0 +1,50 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: http://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../clike/clike")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../clike/clike"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + var keywords = ("this super static final const abstract class extends external factory " + + "implements get native operator set typedef with enum throw rethrow " + + "assert break case continue default in return new deferred async await " + + "try catch finally do else for if switch while import library export " + + "part of show hide is").split(" "); + var blockKeywords = "try catch finally do else for if switch while".split(" "); + var atoms = "true false null".split(" "); + var builtins = "void bool num int double dynamic var String".split(" "); + + function set(words) { + var obj = {}; + for (var i = 0; i < words.length; ++i) obj[words[i]] = true; + return obj; + } + + CodeMirror.defineMIME("application/dart", { + name: "clike", + keywords: set(keywords), + multiLineStrings: true, + blockKeywords: set(blockKeywords), + builtin: set(builtins), + atoms: set(atoms), + hooks: { + "@": function(stream) { + stream.eatWhile(/[\w\$_]/); + return "meta"; + } + } + }); + + CodeMirror.registerHelper("hintWords", "application/dart", keywords.concat(atoms).concat(builtins)); + + // This is needed to make loading through meta.js work. + CodeMirror.defineMode("dart", function(conf) { + return CodeMirror.getMode(conf, "application/dart"); + }, "clike"); +}); diff --git a/public/vendor/codemirror/mode/dart/index.html b/public/vendor/codemirror/mode/dart/index.html new file mode 100755 index 00000000..e79da5a8 --- /dev/null +++ b/public/vendor/codemirror/mode/dart/index.html @@ -0,0 +1,71 @@ +<!doctype html> + +<title>CodeMirror: Dart mode</title> +<meta charset="utf-8"/> +<link rel=stylesheet href="../../doc/docs.css"> +<link rel="stylesheet" href="../../lib/codemirror.css"> +<script src="../../lib/codemirror.js"></script> +<script src="../clike/clike.js"></script> +<script src="dart.js"></script> +<style>.CodeMirror {border: 1px solid #dee;}</style> +<div id=nav> + <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a> + + <ul> + <li><a href="../../index.html">Home</a> + <li><a href="../../doc/manual.html">Manual</a> + <li><a href="https://github.com/codemirror/codemirror">Code</a> + </ul> + <ul> + <li><a href="../index.html">Language modes</a> + <li><a class=active href="#">Dart</a> + </ul> +</div> + +<article> +<h2>Dart mode</h2> +<form> +<textarea id="code" name="code"> +import 'dart:math' show Random; + +void main() { + print(new Die(n: 12).roll()); +} + +// Define a class. +class Die { + // Define a class variable. + static Random shaker = new Random(); + + // Define instance variables. + int sides, value; + + // Define a method using shorthand syntax. + String toString() => '$value'; + + // Define a constructor. + Die({int n: 6}) { + if (4 <= n && n <= 20) { + sides = n; + } else { + // Support for errors and exceptions. + throw new ArgumentError(/* */); + } + } + + // Define an instance method. + int roll() { + return value = shaker.nextInt(sides) + 1; + } +} +</textarea> +</form> + +<script> + var editor = CodeMirror.fromTextArea(document.getElementById("code"), { + lineNumbers: true, + mode: "application/dart" + }); +</script> + +</article> |