dart.js
50 lines
| 1.8 KiB
| application/javascript
|
JavascriptLexer
r1 | // 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"); | ||||
}); | ||||