swagr 0.0.8 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. data/Rakefile +20 -0
  2. data/bin/swagr +37 -9
  3. data/examples/examples01/app.rb +5 -1
  4. data/examples/examples01/views/edit.slim +31 -0
  5. data/examples/examples01/views/footer.slim +1 -1
  6. data/examples/examples01/views/layout.slim +23 -5
  7. data/examples/examples01/views/navbar.slim +17 -16
  8. data/lib/swagr/version.rb +3 -1
  9. data/templates/app.rb +5 -1
  10. data/templates/static/js/codemirror/keymap/vim.js +279 -66
  11. data/templates/static/js/codemirror/lib/codemirror.css +10 -9
  12. data/templates/static/js/codemirror/lib/codemirror.js +385 -152
  13. data/templates/static/js/codemirror/mode/apl/apl.js +160 -0
  14. data/templates/static/js/codemirror/mode/apl/index.html +61 -0
  15. data/templates/static/js/codemirror/mode/asterisk/asterisk.js +183 -0
  16. data/templates/static/js/codemirror/mode/asterisk/index.html +142 -0
  17. data/templates/static/js/codemirror/mode/clike/clike.js +2 -0
  18. data/templates/static/js/codemirror/mode/clike/index.html +1 -1
  19. data/templates/static/js/codemirror/mode/clike/scala.html +1 -1
  20. data/templates/static/js/codemirror/mode/clojure/clojure.js +3 -3
  21. data/templates/static/js/codemirror/mode/css/css.js +2 -2
  22. data/templates/static/js/codemirror/mode/css/test.js +76 -471
  23. data/templates/static/js/codemirror/mode/d/d.js +205 -0
  24. data/templates/static/js/codemirror/mode/d/index.html +262 -0
  25. data/templates/static/js/codemirror/mode/erlang/index.html +1 -1
  26. data/templates/static/js/codemirror/mode/gfm/gfm.js +2 -1
  27. data/templates/static/js/codemirror/mode/gfm/index.html +1 -2
  28. data/templates/static/js/codemirror/mode/gfm/test.js +84 -225
  29. data/templates/static/js/codemirror/mode/go/index.html +1 -1
  30. data/templates/static/js/codemirror/mode/groovy/index.html +1 -1
  31. data/templates/static/js/codemirror/mode/haskell/index.html +1 -1
  32. data/templates/static/js/codemirror/mode/javascript/index.html +2 -2
  33. data/templates/static/js/codemirror/mode/javascript/javascript.js +13 -2
  34. data/templates/static/js/codemirror/mode/less/index.html +1 -1
  35. data/templates/static/js/codemirror/mode/lua/index.html +1 -1
  36. data/templates/static/js/codemirror/mode/markdown/index.html +1 -1
  37. data/templates/static/js/codemirror/mode/markdown/markdown.js +8 -7
  38. data/templates/static/js/codemirror/mode/markdown/test.js +579 -1266
  39. data/templates/static/js/codemirror/mode/meta.js +71 -0
  40. data/templates/static/js/codemirror/mode/mysql/index.html +2 -0
  41. data/templates/static/js/codemirror/mode/ocaml/index.html +1 -1
  42. data/templates/static/js/codemirror/mode/php/index.html +1 -1
  43. data/templates/static/js/codemirror/mode/plsql/index.html +2 -0
  44. data/templates/static/js/codemirror/mode/python/index.html +1 -1
  45. data/templates/static/js/codemirror/mode/ruby/index.html +1 -1
  46. data/templates/static/js/codemirror/mode/sass/index.html +54 -0
  47. data/templates/static/js/codemirror/mode/sass/sass.js +349 -0
  48. data/templates/static/js/codemirror/mode/shell/index.html +1 -1
  49. data/templates/static/js/codemirror/mode/sieve/LICENSE +0 -4
  50. data/templates/static/js/codemirror/mode/sieve/sieve.js +37 -10
  51. data/templates/static/js/codemirror/mode/smalltalk/index.html +1 -1
  52. data/templates/static/js/codemirror/mode/sparql/index.html +1 -1
  53. data/templates/static/js/codemirror/mode/sql/index.html +68 -0
  54. data/templates/static/js/codemirror/mode/sql/sql.js +268 -0
  55. data/templates/static/js/codemirror/mode/stex/test.js +104 -343
  56. data/templates/static/js/codemirror/mode/tiddlywiki/index.html +1 -1
  57. data/templates/static/js/codemirror/mode/vb/index.html +1 -1
  58. data/templates/static/js/codemirror/mode/xquery/test.js +54 -67
  59. data/templates/static/js/codemirror/mode/xquery/xquery.js +8 -8
  60. data/templates/static/js/crossfilter.min.js +1 -0
  61. data/templates/views/edit.slim +31 -0
  62. data/templates/views/footer.slim +1 -1
  63. data/templates/views/layout.slim +23 -5
  64. data/templates/views/navbar.slim +17 -16
  65. metadata +16 -30
  66. data/examples/examples01/static/css/codemirror.css +0 -1247
  67. data/examples/examples01/static/js/codemirror-compressed-3-0.js +0 -5
  68. data/examples/examples01/views/about.slim +0 -15
  69. data/examples/examples01/views/application.slim +0 -0
  70. data/examples/examples01/views/layout_cm.slim +0 -17
  71. data/templates/static/js/codemirror/lib/util/closetag.js +0 -85
  72. data/templates/static/js/codemirror/lib/util/colorize.js +0 -29
  73. data/templates/static/js/codemirror/lib/util/continuecomment.js +0 -36
  74. data/templates/static/js/codemirror/lib/util/continuelist.js +0 -28
  75. data/templates/static/js/codemirror/lib/util/dialog.css +0 -32
  76. data/templates/static/js/codemirror/lib/util/dialog.js +0 -75
  77. data/templates/static/js/codemirror/lib/util/foldcode.js +0 -182
  78. data/templates/static/js/codemirror/lib/util/formatting.js +0 -108
  79. data/templates/static/js/codemirror/lib/util/javascript-hint.js +0 -137
  80. data/templates/static/js/codemirror/lib/util/loadmode.js +0 -51
  81. data/templates/static/js/codemirror/lib/util/match-highlighter.js +0 -46
  82. data/templates/static/js/codemirror/lib/util/matchbrackets.js +0 -63
  83. data/templates/static/js/codemirror/lib/util/multiplex.js +0 -95
  84. data/templates/static/js/codemirror/lib/util/overlay.js +0 -59
  85. data/templates/static/js/codemirror/lib/util/pig-hint.js +0 -117
  86. data/templates/static/js/codemirror/lib/util/runmode-standalone.js +0 -90
  87. data/templates/static/js/codemirror/lib/util/runmode.js +0 -52
  88. data/templates/static/js/codemirror/lib/util/search.js +0 -119
  89. data/templates/static/js/codemirror/lib/util/searchcursor.js +0 -119
  90. data/templates/static/js/codemirror/lib/util/simple-hint.css +0 -16
  91. data/templates/static/js/codemirror/lib/util/simple-hint.js +0 -102
  92. data/templates/static/js/codemirror/lib/util/xml-hint.js +0 -131
  93. data/templates/views/about.slim +0 -15
@@ -1,108 +0,0 @@
1
- (function() {
2
-
3
- CodeMirror.extendMode("css", {
4
- commentStart: "/*",
5
- commentEnd: "*/",
6
- newlineAfterToken: function(_type, content) {
7
- return /^[;{}]$/.test(content);
8
- }
9
- });
10
-
11
- CodeMirror.extendMode("javascript", {
12
- commentStart: "/*",
13
- commentEnd: "*/",
14
- // FIXME semicolons inside of for
15
- newlineAfterToken: function(_type, content, textAfter, state) {
16
- if (this.jsonMode) {
17
- return /^[\[,{]$/.test(content) || /^}/.test(textAfter);
18
- } else {
19
- if (content == ";" && state.lexical && state.lexical.type == ")") return false;
20
- return /^[;{}]$/.test(content) && !/^;/.test(textAfter);
21
- }
22
- }
23
- });
24
-
25
- CodeMirror.extendMode("xml", {
26
- commentStart: "<!--",
27
- commentEnd: "-->",
28
- newlineAfterToken: function(type, content, textAfter) {
29
- return type == "tag" && />$/.test(content) || /^</.test(textAfter);
30
- }
31
- });
32
-
33
- // Comment/uncomment the specified range
34
- CodeMirror.defineExtension("commentRange", function (isComment, from, to) {
35
- var cm = this, curMode = CodeMirror.innerMode(cm.getMode(), cm.getTokenAt(from).state).mode;
36
- cm.operation(function() {
37
- if (isComment) { // Comment range
38
- cm.replaceRange(curMode.commentEnd, to);
39
- cm.replaceRange(curMode.commentStart, from);
40
- if (from.line == to.line && from.ch == to.ch) // An empty comment inserted - put cursor inside
41
- cm.setCursor(from.line, from.ch + curMode.commentStart.length);
42
- } else { // Uncomment range
43
- var selText = cm.getRange(from, to);
44
- var startIndex = selText.indexOf(curMode.commentStart);
45
- var endIndex = selText.lastIndexOf(curMode.commentEnd);
46
- if (startIndex > -1 && endIndex > -1 && endIndex > startIndex) {
47
- // Take string till comment start
48
- selText = selText.substr(0, startIndex)
49
- // From comment start till comment end
50
- + selText.substring(startIndex + curMode.commentStart.length, endIndex)
51
- // From comment end till string end
52
- + selText.substr(endIndex + curMode.commentEnd.length);
53
- }
54
- cm.replaceRange(selText, from, to);
55
- }
56
- });
57
- });
58
-
59
- // Applies automatic mode-aware indentation to the specified range
60
- CodeMirror.defineExtension("autoIndentRange", function (from, to) {
61
- var cmInstance = this;
62
- this.operation(function () {
63
- for (var i = from.line; i <= to.line; i++) {
64
- cmInstance.indentLine(i, "smart");
65
- }
66
- });
67
- });
68
-
69
- // Applies automatic formatting to the specified range
70
- CodeMirror.defineExtension("autoFormatRange", function (from, to) {
71
- var cm = this;
72
- var outer = cm.getMode(), text = cm.getRange(from, to).split("\n");
73
- var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state);
74
- var tabSize = cm.getOption("tabSize");
75
-
76
- var out = "", lines = 0, atSol = from.ch == 0;
77
- function newline() {
78
- out += "\n";
79
- atSol = true;
80
- ++lines;
81
- }
82
-
83
- for (var i = 0; i < text.length; ++i) {
84
- var stream = new CodeMirror.StringStream(text[i], tabSize);
85
- while (!stream.eol()) {
86
- var inner = CodeMirror.innerMode(outer, state);
87
- var style = outer.token(stream, state), cur = stream.current();
88
- stream.start = stream.pos;
89
- if (!atSol || /\S/.test(cur)) {
90
- out += cur;
91
- atSol = false;
92
- }
93
- if (!atSol && inner.mode.newlineAfterToken &&
94
- inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || "", inner.state))
95
- newline();
96
- }
97
- if (!stream.pos && outer.blankLine) outer.blankLine(state);
98
- if (!atSol) newline();
99
- }
100
-
101
- cm.operation(function () {
102
- cm.replaceRange(out, from, to);
103
- for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur)
104
- cm.indentLine(cur, "smart");
105
- cm.setSelection(from, cm.getCursor(false));
106
- });
107
- });
108
- })();
@@ -1,137 +0,0 @@
1
- (function () {
2
- function forEach(arr, f) {
3
- for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);
4
- }
5
-
6
- function arrayContains(arr, item) {
7
- if (!Array.prototype.indexOf) {
8
- var i = arr.length;
9
- while (i--) {
10
- if (arr[i] === item) {
11
- return true;
12
- }
13
- }
14
- return false;
15
- }
16
- return arr.indexOf(item) != -1;
17
- }
18
-
19
- function scriptHint(editor, keywords, getToken, options) {
20
- // Find the token at the cursor
21
- var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token;
22
- // If it's not a 'word-style' token, ignore the token.
23
- if (!/^[\w$_]*$/.test(token.string)) {
24
- token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state,
25
- type: token.string == "." ? "property" : null};
26
- }
27
- // If it is a property, find out what it is a property of.
28
- while (tprop.type == "property") {
29
- tprop = getToken(editor, {line: cur.line, ch: tprop.start});
30
- if (tprop.string != ".") return;
31
- tprop = getToken(editor, {line: cur.line, ch: tprop.start});
32
- if (tprop.string == ')') {
33
- var level = 1;
34
- do {
35
- tprop = getToken(editor, {line: cur.line, ch: tprop.start});
36
- switch (tprop.string) {
37
- case ')': level++; break;
38
- case '(': level--; break;
39
- default: break;
40
- }
41
- } while (level > 0);
42
- tprop = getToken(editor, {line: cur.line, ch: tprop.start});
43
- if (tprop.type == 'variable')
44
- tprop.type = 'function';
45
- else return; // no clue
46
- }
47
- if (!context) var context = [];
48
- context.push(tprop);
49
- }
50
- return {list: getCompletions(token, context, keywords, options),
51
- from: {line: cur.line, ch: token.start},
52
- to: {line: cur.line, ch: token.end}};
53
- }
54
-
55
- CodeMirror.javascriptHint = function(editor, options) {
56
- return scriptHint(editor, javascriptKeywords,
57
- function (e, cur) {return e.getTokenAt(cur);},
58
- options);
59
- };
60
-
61
- function getCoffeeScriptToken(editor, cur) {
62
- // This getToken, it is for coffeescript, imitates the behavior of
63
- // getTokenAt method in javascript.js, that is, returning "property"
64
- // type and treat "." as indepenent token.
65
- var token = editor.getTokenAt(cur);
66
- if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {
67
- token.end = token.start;
68
- token.string = '.';
69
- token.type = "property";
70
- }
71
- else if (/^\.[\w$_]*$/.test(token.string)) {
72
- token.type = "property";
73
- token.start++;
74
- token.string = token.string.replace(/\./, '');
75
- }
76
- return token;
77
- }
78
-
79
- CodeMirror.coffeescriptHint = function(editor, options) {
80
- return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);
81
- };
82
-
83
- var stringProps = ("charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight " +
84
- "toUpperCase toLowerCase split concat match replace search").split(" ");
85
- var arrayProps = ("length concat join splice push pop shift unshift slice reverse sort indexOf " +
86
- "lastIndexOf every some filter forEach map reduce reduceRight ").split(" ");
87
- var funcProps = "prototype apply call bind".split(" ");
88
- var javascriptKeywords = ("break case catch continue debugger default delete do else false finally for function " +
89
- "if in instanceof new null return switch throw true try typeof var void while with").split(" ");
90
- var coffeescriptKeywords = ("and break catch class continue delete do else extends false finally for " +
91
- "if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes").split(" ");
92
-
93
- function getCompletions(token, context, keywords, options) {
94
- var found = [], start = token.string;
95
- function maybeAdd(str) {
96
- if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str);
97
- }
98
- function gatherCompletions(obj) {
99
- if (typeof obj == "string") forEach(stringProps, maybeAdd);
100
- else if (obj instanceof Array) forEach(arrayProps, maybeAdd);
101
- else if (obj instanceof Function) forEach(funcProps, maybeAdd);
102
- for (var name in obj) maybeAdd(name);
103
- }
104
-
105
- if (context) {
106
- // If this is a property, see if it belongs to some object we can
107
- // find in the current environment.
108
- var obj = context.pop(), base;
109
- if (obj.type == "variable") {
110
- if (options && options.additionalContext)
111
- base = options.additionalContext[obj.string];
112
- base = base || window[obj.string];
113
- } else if (obj.type == "string") {
114
- base = "";
115
- } else if (obj.type == "atom") {
116
- base = 1;
117
- } else if (obj.type == "function") {
118
- if (window.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&
119
- (typeof window.jQuery == 'function'))
120
- base = window.jQuery();
121
- else if (window._ != null && (obj.string == '_') && (typeof window._ == 'function'))
122
- base = window._();
123
- }
124
- while (base != null && context.length)
125
- base = base[context.pop().string];
126
- if (base != null) gatherCompletions(base);
127
- }
128
- else {
129
- // If not, just look in the window object and any local scope
130
- // (reading into JS mode internals to get at the local variables)
131
- for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);
132
- gatherCompletions(window);
133
- forEach(keywords, maybeAdd);
134
- }
135
- return found;
136
- }
137
- })();
@@ -1,51 +0,0 @@
1
- (function() {
2
- if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js";
3
-
4
- var loading = {};
5
- function splitCallback(cont, n) {
6
- var countDown = n;
7
- return function() { if (--countDown == 0) cont(); };
8
- }
9
- function ensureDeps(mode, cont) {
10
- var deps = CodeMirror.modes[mode].dependencies;
11
- if (!deps) return cont();
12
- var missing = [];
13
- for (var i = 0; i < deps.length; ++i) {
14
- if (!CodeMirror.modes.hasOwnProperty(deps[i]))
15
- missing.push(deps[i]);
16
- }
17
- if (!missing.length) return cont();
18
- var split = splitCallback(cont, missing.length);
19
- for (var i = 0; i < missing.length; ++i)
20
- CodeMirror.requireMode(missing[i], split);
21
- }
22
-
23
- CodeMirror.requireMode = function(mode, cont) {
24
- if (typeof mode != "string") mode = mode.name;
25
- if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont);
26
- if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);
27
-
28
- var script = document.createElement("script");
29
- script.src = CodeMirror.modeURL.replace(/%N/g, mode);
30
- var others = document.getElementsByTagName("script")[0];
31
- others.parentNode.insertBefore(script, others);
32
- var list = loading[mode] = [cont];
33
- var count = 0, poll = setInterval(function() {
34
- if (++count > 100) return clearInterval(poll);
35
- if (CodeMirror.modes.hasOwnProperty(mode)) {
36
- clearInterval(poll);
37
- loading[mode] = null;
38
- ensureDeps(mode, function() {
39
- for (var i = 0; i < list.length; ++i) list[i]();
40
- });
41
- }
42
- }, 200);
43
- };
44
-
45
- CodeMirror.autoLoadMode = function(instance, mode) {
46
- if (!CodeMirror.modes.hasOwnProperty(mode))
47
- CodeMirror.requireMode(mode, function() {
48
- instance.setOption("mode", instance.getOption("mode"));
49
- });
50
- };
51
- }());
@@ -1,46 +0,0 @@
1
- // Define match-highlighter commands. Depends on searchcursor.js
2
- // Use by attaching the following function call to the cursorActivity event:
3
- //myCodeMirror.matchHighlight(minChars);
4
- // And including a special span.CodeMirror-matchhighlight css class (also optionally a separate one for .CodeMirror-focused -- see demo matchhighlighter.html)
5
-
6
- (function() {
7
- var DEFAULT_MIN_CHARS = 2;
8
-
9
- function MatchHighlightState() {
10
- this.marked = [];
11
- }
12
- function getMatchHighlightState(cm) {
13
- return cm._matchHighlightState || (cm._matchHighlightState = new MatchHighlightState());
14
- }
15
-
16
- function clearMarks(cm) {
17
- var state = getMatchHighlightState(cm);
18
- for (var i = 0; i < state.marked.length; ++i)
19
- state.marked[i].clear();
20
- state.marked = [];
21
- }
22
-
23
- function markDocument(cm, className, minChars) {
24
- clearMarks(cm);
25
- minChars = (typeof minChars !== 'undefined' ? minChars : DEFAULT_MIN_CHARS);
26
- if (cm.somethingSelected() && cm.getSelection().replace(/^\s+|\s+$/g, "").length >= minChars) {
27
- var state = getMatchHighlightState(cm);
28
- var query = cm.getSelection();
29
- cm.operation(function() {
30
- if (cm.lineCount() < 2000) { // This is too expensive on big documents.
31
- for (var cursor = cm.getSearchCursor(query); cursor.findNext();) {
32
- //Only apply matchhighlight to the matches other than the one actually selected
33
- if (cursor.from().line !== cm.getCursor(true).line ||
34
- cursor.from().ch !== cm.getCursor(true).ch)
35
- state.marked.push(cm.markText(cursor.from(), cursor.to(),
36
- {className: className}));
37
- }
38
- }
39
- });
40
- }
41
- }
42
-
43
- CodeMirror.defineExtension("matchHighlight", function(className, minChars) {
44
- markDocument(this, className, minChars);
45
- });
46
- })();
@@ -1,63 +0,0 @@
1
- (function() {
2
- var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
3
- function findMatchingBracket(cm) {
4
- var cur = cm.getCursor(), line = cm.getLineHandle(cur.line), pos = cur.ch - 1;
5
- var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];
6
- if (!match) return null;
7
- var forward = match.charAt(1) == ">", d = forward ? 1 : -1;
8
- var style = cm.getTokenAt({line: cur.line, ch: pos + 1}).type;
9
-
10
- var stack = [line.text.charAt(pos)], re = /[(){}[\]]/;
11
- function scan(line, lineNo, start) {
12
- if (!line.text) return;
13
- var pos = forward ? 0 : line.text.length - 1, end = forward ? line.text.length : -1;
14
- if (start != null) pos = start + d;
15
- for (; pos != end; pos += d) {
16
- var ch = line.text.charAt(pos);
17
- if (re.test(ch) && cm.getTokenAt({line: lineNo, ch: pos + 1}).type == style) {
18
- var match = matching[ch];
19
- if (match.charAt(1) == ">" == forward) stack.push(ch);
20
- else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false};
21
- else if (!stack.length) return {pos: pos, match: true};
22
- }
23
- }
24
- }
25
- for (var i = cur.line, found, e = forward ? Math.min(i + 100, cm.lineCount()) : Math.max(-1, i - 100); i != e; i+=d) {
26
- if (i == cur.line) found = scan(line, i, pos);
27
- else found = scan(cm.getLineHandle(i), i);
28
- if (found) break;
29
- }
30
- return {from: {line: cur.line, ch: pos}, to: found && {line: i, ch: found.pos}, match: found && found.match};
31
- }
32
-
33
- function matchBrackets(cm, autoclear) {
34
- var found = findMatchingBracket(cm);
35
- if (!found) return;
36
- var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
37
- var one = cm.markText(found.from, {line: found.from.line, ch: found.from.ch + 1},
38
- {className: style});
39
- var two = found.to && cm.markText(found.to, {line: found.to.line, ch: found.to.ch + 1},
40
- {className: style});
41
- var clear = function() {
42
- cm.operation(function() { one.clear(); two && two.clear(); });
43
- };
44
- if (autoclear) setTimeout(clear, 800);
45
- else return clear;
46
- }
47
-
48
- var currentlyHighlighted = null;
49
- function doMatchBrackets(cm) {
50
- cm.operation(function() {
51
- if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
52
- if (!cm.somethingSelected()) currentlyHighlighted = matchBrackets(cm, false);
53
- });
54
- }
55
-
56
- CodeMirror.defineOption("matchBrackets", false, function(cm, val) {
57
- if (val) cm.on("cursorActivity", doMatchBrackets);
58
- else cm.off("cursorActivity", doMatchBrackets);
59
- });
60
-
61
- CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
62
- CodeMirror.defineExtension("findMatchingBracket", function(){return findMatchingBracket(this);});
63
- })();
@@ -1,95 +0,0 @@
1
- CodeMirror.multiplexingMode = function(outer /*, others */) {
2
- // Others should be {open, close, mode [, delimStyle]} objects
3
- var others = Array.prototype.slice.call(arguments, 1);
4
- var n_others = others.length;
5
-
6
- function indexOf(string, pattern, from) {
7
- if (typeof pattern == "string") return string.indexOf(pattern, from);
8
- var m = pattern.exec(from ? string.slice(from) : string);
9
- return m ? m.index + from : -1;
10
- }
11
-
12
- return {
13
- startState: function() {
14
- return {
15
- outer: CodeMirror.startState(outer),
16
- innerActive: null,
17
- inner: null
18
- };
19
- },
20
-
21
- copyState: function(state) {
22
- return {
23
- outer: CodeMirror.copyState(outer, state.outer),
24
- innerActive: state.innerActive,
25
- inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner)
26
- };
27
- },
28
-
29
- token: function(stream, state) {
30
- if (!state.innerActive) {
31
- var cutOff = Infinity, oldContent = stream.string;
32
- for (var i = 0; i < n_others; ++i) {
33
- var other = others[i];
34
- var found = indexOf(oldContent, other.open, stream.pos);
35
- if (found == stream.pos) {
36
- stream.match(other.open);
37
- state.innerActive = other;
38
- state.inner = CodeMirror.startState(other.mode, outer.indent ? outer.indent(state.outer, "") : 0);
39
- return other.delimStyle;
40
- } else if (found != -1 && found < cutOff) {
41
- cutOff = found;
42
- }
43
- }
44
- if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);
45
- var outerToken = outer.token(stream, state.outer);
46
- if (cutOff != Infinity) stream.string = oldContent;
47
- return outerToken;
48
- } else {
49
- var curInner = state.innerActive, oldContent = stream.string;
50
- var found = indexOf(oldContent, curInner.close, stream.pos);
51
- if (found == stream.pos) {
52
- stream.match(curInner.close);
53
- state.innerActive = state.inner = null;
54
- return curInner.delimStyle;
55
- }
56
- if (found > -1) stream.string = oldContent.slice(0, found);
57
- var innerToken = curInner.mode.token(stream, state.inner);
58
- if (found > -1) stream.string = oldContent;
59
- var cur = stream.current(), found = cur.indexOf(curInner.close);
60
- if (found > -1) stream.backUp(cur.length - found);
61
- return innerToken;
62
- }
63
- },
64
-
65
- indent: function(state, textAfter) {
66
- var mode = state.innerActive ? state.innerActive.mode : outer;
67
- if (!mode.indent) return CodeMirror.Pass;
68
- return mode.indent(state.innerActive ? state.inner : state.outer, textAfter);
69
- },
70
-
71
- blankLine: function(state) {
72
- var mode = state.innerActive ? state.innerActive.mode : outer;
73
- if (mode.blankLine) {
74
- mode.blankLine(state.innerActive ? state.inner : state.outer);
75
- }
76
- if (!state.innerActive) {
77
- for (var i = 0; i < n_others; ++i) {
78
- var other = others[i];
79
- if (other.open === "\n") {
80
- state.innerActive = other;
81
- state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "") : 0);
82
- }
83
- }
84
- } else if (mode.close === "\n") {
85
- state.innerActive = state.inner = null;
86
- }
87
- },
88
-
89
- electricChars: outer.electricChars,
90
-
91
- innerMode: function(state) {
92
- return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};
93
- }
94
- };
95
- };