diff options
author | Pushkar Joshi | 2012-02-24 12:08:49 -0800 |
---|---|---|
committer | Pushkar Joshi | 2012-02-24 12:08:49 -0800 |
commit | 03ca7a5ed13c25faaa9100bb666e062fd15335e6 (patch) | |
tree | c51112223ceb9121cd595a60335eb2795215590f /imports/codemirror/lib/util/runmode.js | |
parent | fcb12cc09eb3cd3b42bd215877ba18f449275b75 (diff) | |
parent | 053fc63a2950c7a5ee4ebf98033b64d474a3c46e (diff) | |
download | ninja-03ca7a5ed13c25faaa9100bb666e062fd15335e6.tar.gz |
Merge branch 'pentool' into brushtool
Conflicts:
imports/codemirror/mode/scheme/scheme.js
js/tools/BrushTool.js
Diffstat (limited to 'imports/codemirror/lib/util/runmode.js')
-rwxr-xr-x | imports/codemirror/lib/util/runmode.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/imports/codemirror/lib/util/runmode.js b/imports/codemirror/lib/util/runmode.js new file mode 100755 index 00000000..de4a7602 --- /dev/null +++ b/imports/codemirror/lib/util/runmode.js | |||
@@ -0,0 +1,27 @@ | |||
1 | CodeMirror.runMode = function(string, modespec, callback) { | ||
2 | var mode = CodeMirror.getMode({indentUnit: 2}, modespec); | ||
3 | var isNode = callback.nodeType == 1; | ||
4 | if (isNode) { | ||
5 | var node = callback, accum = []; | ||
6 | callback = function(string, style) { | ||
7 | if (string == "\n") | ||
8 | accum.push("<br>"); | ||
9 | else if (style) | ||
10 | accum.push("<span class=\"cm-" + CodeMirror.htmlEscape(style) + "\">" + CodeMirror.htmlEscape(string) + "</span>"); | ||
11 | else | ||
12 | accum.push(CodeMirror.htmlEscape(string)); | ||
13 | } | ||
14 | } | ||
15 | var lines = CodeMirror.splitLines(string), state = CodeMirror.startState(mode); | ||
16 | for (var i = 0, e = lines.length; i < e; ++i) { | ||
17 | if (i) callback("\n"); | ||
18 | var stream = new CodeMirror.StringStream(lines[i]); | ||
19 | while (!stream.eol()) { | ||
20 | var style = mode.token(stream, state); | ||
21 | callback(stream.current(), style, i, stream.start); | ||
22 | stream.start = stream.pos; | ||
23 | } | ||
24 | } | ||
25 | if (isNode) | ||
26 | node.innerHTML = accum.join(""); | ||
27 | }; | ||