aboutsummaryrefslogtreecommitdiff
path: root/imports/codemirror/lib/util/runmode.js
diff options
context:
space:
mode:
authorAnanya Sen2012-02-27 14:41:21 -0800
committerAnanya Sen2012-02-27 14:41:21 -0800
commit51ed781953bc44bba3c70938aa57b856394cbc88 (patch)
tree483bcacdcdcc6802d2d048b576406b111656fa05 /imports/codemirror/lib/util/runmode.js
parent15d00c49b522aa471d1ccfbbd33f5c0e721eb89e (diff)
downloadninja-51ed781953bc44bba3c70938aa57b856394cbc88.tar.gz
updating to codemirror 2.22
Signed-off-by: Ananya Sen <Ananya.Sen@motorola.com>
Diffstat (limited to 'imports/codemirror/lib/util/runmode.js')
-rw-r--r--[-rwxr-xr-x]imports/codemirror/lib/util/runmode.js38
1 files changed, 30 insertions, 8 deletions
diff --git a/imports/codemirror/lib/util/runmode.js b/imports/codemirror/lib/util/runmode.js
index de4a7602..fc58d857 100755..100644
--- a/imports/codemirror/lib/util/runmode.js
+++ b/imports/codemirror/lib/util/runmode.js
@@ -1,15 +1,37 @@
1CodeMirror.runMode = function(string, modespec, callback) { 1CodeMirror.runMode = function(string, modespec, callback, options) {
2 var mode = CodeMirror.getMode({indentUnit: 2}, modespec); 2 var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
3 var isNode = callback.nodeType == 1; 3 var isNode = callback.nodeType == 1;
4 var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
4 if (isNode) { 5 if (isNode) {
5 var node = callback, accum = []; 6 var node = callback, accum = [], col = 0;
6 callback = function(string, style) { 7 callback = function(text, style) {
7 if (string == "\n") 8 if (text == "\n") {
8 accum.push("<br>"); 9 accum.push("<br>");
9 else if (style) 10 col = 0;
10 accum.push("<span class=\"cm-" + CodeMirror.htmlEscape(style) + "\">" + CodeMirror.htmlEscape(string) + "</span>"); 11 return;
12 }
13 var escaped = "";
14 // HTML-escape and replace tabs
15 for (var pos = 0;;) {
16 var idx = text.indexOf("\t", pos);
17 if (idx == -1) {
18 escaped += CodeMirror.htmlEscape(text.slice(pos));
19 col += text.length - pos;
20 break;
21 } else {
22 col += idx - pos;
23 escaped += CodeMirror.htmlEscape(text.slice(pos, idx));
24 var size = tabSize - col % tabSize;
25 col += size;
26 for (var i = 0; i < size; ++i) escaped += " ";
27 pos = idx + 1;
28 }
29 }
30
31 if (style)
32 accum.push("<span class=\"cm-" + CodeMirror.htmlEscape(style) + "\">" + escaped + "</span>");
11 else 33 else
12 accum.push(CodeMirror.htmlEscape(string)); 34 accum.push(escaped);
13 } 35 }
14 } 36 }
15 var lines = CodeMirror.splitLines(string), state = CodeMirror.startState(mode); 37 var lines = CodeMirror.splitLines(string), state = CodeMirror.startState(mode);