summaryrefslogtreecommitdiff
path: root/public/vendor/codemirror/addon/edit
diff options
context:
space:
mode:
Diffstat (limited to 'public/vendor/codemirror/addon/edit')
-rw-r--r--public/vendor/codemirror/addon/edit/closebrackets.js195
-rw-r--r--public/vendor/codemirror/addon/edit/closetag.js169
-rw-r--r--public/vendor/codemirror/addon/edit/continuelist.js54
-rw-r--r--public/vendor/codemirror/addon/edit/matchbrackets.js122
-rw-r--r--public/vendor/codemirror/addon/edit/matchtags.js66
-rw-r--r--public/vendor/codemirror/addon/edit/trailingspace.js27
6 files changed, 0 insertions, 633 deletions
diff --git a/public/vendor/codemirror/addon/edit/closebrackets.js b/public/vendor/codemirror/addon/edit/closebrackets.js
deleted file mode 100644
index af7fce2a..00000000
--- a/public/vendor/codemirror/addon/edit/closebrackets.js
+++ /dev/null
@@ -1,195 +0,0 @@
-// 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"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
- var defaults = {
- pairs: "()[]{}''\"\"",
- triples: "",
- explode: "[]{}"
- };
-
- var Pos = CodeMirror.Pos;
-
- CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) {
- if (old && old != CodeMirror.Init) {
- cm.removeKeyMap(keyMap);
- cm.state.closeBrackets = null;
- }
- if (val) {
- cm.state.closeBrackets = val;
- cm.addKeyMap(keyMap);
- }
- });
-
- function getOption(conf, name) {
- if (name == "pairs" && typeof conf == "string") return conf;
- if (typeof conf == "object" && conf[name] != null) return conf[name];
- return defaults[name];
- }
-
- var bind = defaults.pairs + "`";
- var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
- for (var i = 0; i < bind.length; i++)
- keyMap["'" + bind.charAt(i) + "'"] = handler(bind.charAt(i));
-
- function handler(ch) {
- return function(cm) { return handleChar(cm, ch); };
- }
-
- function getConfig(cm) {
- var deflt = cm.state.closeBrackets;
- if (!deflt) return null;
- var mode = cm.getModeAt(cm.getCursor());
- return mode.closeBrackets || deflt;
- }
-
- function handleBackspace(cm) {
- var conf = getConfig(cm);
- if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;
-
- var pairs = getOption(conf, "pairs");
- var ranges = cm.listSelections();
- for (var i = 0; i < ranges.length; i++) {
- if (!ranges[i].empty()) return CodeMirror.Pass;
- var around = charsAround(cm, ranges[i].head);
- if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;
- }
- for (var i = ranges.length - 1; i >= 0; i--) {
- var cur = ranges[i].head;
- cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete");
- }
- }
-
- function handleEnter(cm) {
- var conf = getConfig(cm);
- var explode = conf && getOption(conf, "explode");
- if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass;
-
- var ranges = cm.listSelections();
- for (var i = 0; i < ranges.length; i++) {
- if (!ranges[i].empty()) return CodeMirror.Pass;
- var around = charsAround(cm, ranges[i].head);
- if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
- }
- cm.operation(function() {
- cm.replaceSelection("\n\n", null);
- cm.execCommand("goCharLeft");
- ranges = cm.listSelections();
- for (var i = 0; i < ranges.length; i++) {
- var line = ranges[i].head.line;
- cm.indentLine(line, null, true);
- cm.indentLine(line + 1, null, true);
- }
- });
- }
-
- function contractSelection(sel) {
- var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;
- return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),
- head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};
- }
-
- function handleChar(cm, ch) {
- var conf = getConfig(cm);
- if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass;
-
- var pairs = getOption(conf, "pairs");
- var pos = pairs.indexOf(ch);
- if (pos == -1) return CodeMirror.Pass;
- var triples = getOption(conf, "triples");
-
- var identical = pairs.charAt(pos + 1) == ch;
- var ranges = cm.listSelections();
- var opening = pos % 2 == 0;
-
- var type;
- for (var i = 0; i < ranges.length; i++) {
- var range = ranges[i], cur = range.head, curType;
- var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));
- if (opening && !range.empty()) {
- curType = "surround";
- } else if ((identical || !opening) && next == ch) {
- if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)
- curType = "skipThree";
- else
- curType = "skip";
- } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
- cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch &&
- (cur.ch <= 2 || cm.getRange(Pos(cur.line, cur.ch - 3), Pos(cur.line, cur.ch - 2)) != ch)) {
- curType = "addFour";
- } else if (identical) {
- if (!CodeMirror.isWordChar(next) && enteringString(cm, cur, ch)) curType = "both";
- else return CodeMirror.Pass;
- } else if (opening && (cm.getLine(cur.line).length == cur.ch ||
- isClosingBracket(next, pairs) ||
- /\s/.test(next))) {
- curType = "both";
- } else {
- return CodeMirror.Pass;
- }
- if (!type) type = curType;
- else if (type != curType) return CodeMirror.Pass;
- }
-
- var left = pos % 2 ? pairs.charAt(pos - 1) : ch;
- var right = pos % 2 ? ch : pairs.charAt(pos + 1);
- cm.operation(function() {
- if (type == "skip") {
- cm.execCommand("goCharRight");
- } else if (type == "skipThree") {
- for (var i = 0; i < 3; i++)
- cm.execCommand("goCharRight");
- } else if (type == "surround") {
- var sels = cm.getSelections();
- for (var i = 0; i < sels.length; i++)
- sels[i] = left + sels[i] + right;
- cm.replaceSelections(sels, "around");
- sels = cm.listSelections().slice();
- for (var i = 0; i < sels.length; i++)
- sels[i] = contractSelection(sels[i]);
- cm.setSelections(sels);
- } else if (type == "both") {
- cm.replaceSelection(left + right, null);
- cm.triggerElectric(left + right);
- cm.execCommand("goCharLeft");
- } else if (type == "addFour") {
- cm.replaceSelection(left + left + left + left, "before");
- cm.execCommand("goCharRight");
- }
- });
- }
-
- function isClosingBracket(ch, pairs) {
- var pos = pairs.lastIndexOf(ch);
- return pos > -1 && pos % 2 == 1;
- }
-
- function charsAround(cm, pos) {
- var str = cm.getRange(Pos(pos.line, pos.ch - 1),
- Pos(pos.line, pos.ch + 1));
- return str.length == 2 ? str : null;
- }
-
- // Project the token type that will exists after the given char is
- // typed, and use it to determine whether it would cause the start
- // of a string token.
- function enteringString(cm, pos, ch) {
- var line = cm.getLine(pos.line);
- var token = cm.getTokenAt(pos);
- if (/\bstring2?\b/.test(token.type)) return false;
- var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4);
- stream.pos = stream.start = token.start;
- for (;;) {
- var type1 = cm.getMode().token(stream, token.state);
- if (stream.pos >= pos.ch + 1) return /\bstring2?\b/.test(type1);
- stream.start = stream.pos;
- }
- }
-});
diff --git a/public/vendor/codemirror/addon/edit/closetag.js b/public/vendor/codemirror/addon/edit/closetag.js
deleted file mode 100644
index a518da3e..00000000
--- a/public/vendor/codemirror/addon/edit/closetag.js
+++ /dev/null
@@ -1,169 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-/**
- * Tag-closer extension for CodeMirror.
- *
- * This extension adds an "autoCloseTags" option that can be set to
- * either true to get the default behavior, or an object to further
- * configure its behavior.
- *
- * These are supported options:
- *
- * `whenClosing` (default true)
- * Whether to autoclose when the '/' of a closing tag is typed.
- * `whenOpening` (default true)
- * Whether to autoclose the tag when the final '>' of an opening
- * tag is typed.
- * `dontCloseTags` (default is empty tags for HTML, none for XML)
- * An array of tag names that should not be autoclosed.
- * `indentTags` (default is block tags for HTML, none for XML)
- * An array of tag names that should, when opened, cause a
- * blank line to be added inside the tag, and the blank line and
- * closing line to be indented.
- *
- * See demos/closetag.html for a usage example.
- */
-
-(function(mod) {
- if (typeof exports == "object" && typeof module == "object") // CommonJS
- mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror", "../fold/xml-fold"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
- CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) {
- if (old != CodeMirror.Init && old)
- cm.removeKeyMap("autoCloseTags");
- if (!val) return;
- var map = {name: "autoCloseTags"};
- if (typeof val != "object" || val.whenClosing)
- map["'/'"] = function(cm) { return autoCloseSlash(cm); };
- if (typeof val != "object" || val.whenOpening)
- map["'>'"] = function(cm) { return autoCloseGT(cm); };
- cm.addKeyMap(map);
- });
-
- var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param",
- "source", "track", "wbr"];
- var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4",
- "h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"];
-
- function autoCloseGT(cm) {
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
- var ranges = cm.listSelections(), replacements = [];
- for (var i = 0; i < ranges.length; i++) {
- if (!ranges[i].empty()) return CodeMirror.Pass;
- var pos = ranges[i].head, tok = cm.getTokenAt(pos);
- var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
- if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
-
- var opt = cm.getOption("autoCloseTags"), html = inner.mode.configuration == "html";
- var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
- var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
-
- var tagName = state.tagName;
- if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);
- var lowerTagName = tagName.toLowerCase();
- // Don't process the '>' at the end of an end-tag or self-closing tag
- if (!tagName ||
- tok.type == "string" && (tok.end != pos.ch || !/[\"\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||
- tok.type == "tag" && state.type == "closeTag" ||
- tok.string.indexOf("/") == (tok.string.length - 1) || // match something like <someTagName />
- dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||
- closingTagExists(cm, tagName, pos, state, true))
- return CodeMirror.Pass;
-
- var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;
- replacements[i] = {indent: indent,
- text: ">" + (indent ? "\n\n" : "") + "</" + tagName + ">",
- newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
- }
-
- for (var i = ranges.length - 1; i >= 0; i--) {
- var info = replacements[i];
- cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
- var sel = cm.listSelections().slice(0);
- sel[i] = {head: info.newPos, anchor: info.newPos};
- cm.setSelections(sel);
- if (info.indent) {
- cm.indentLine(info.newPos.line, null, true);
- cm.indentLine(info.newPos.line + 1, null, true);
- }
- }
- }
-
- function autoCloseCurrent(cm, typingSlash) {
- var ranges = cm.listSelections(), replacements = [];
- var head = typingSlash ? "/" : "</";
- for (var i = 0; i < ranges.length; i++) {
- if (!ranges[i].empty()) return CodeMirror.Pass;
- var pos = ranges[i].head, tok = cm.getTokenAt(pos);
- var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
- if (typingSlash && (tok.type == "string" || tok.string.charAt(0) != "<" ||
- tok.start != pos.ch - 1))
- return CodeMirror.Pass;
- // Kludge to get around the fact that we are not in XML mode
- // when completing in JS/CSS snippet in htmlmixed mode. Does not
- // work for other XML embedded languages (there is no general
- // way to go from a mixed mode to its current XML state).
- var replacement;
- if (inner.mode.name != "xml") {
- if (cm.getMode().name == "htmlmixed" && inner.mode.name == "javascript")
- replacement = head + "script";
- else if (cm.getMode().name == "htmlmixed" && inner.mode.name == "css")
- replacement = head + "style";
- else
- return CodeMirror.Pass;
- } else {
- if (!state.context || !state.context.tagName ||
- closingTagExists(cm, state.context.tagName, pos, state))
- return CodeMirror.Pass;
- replacement = head + state.context.tagName;
- }
- if (cm.getLine(pos.line).charAt(tok.end) != ">") replacement += ">";
- replacements[i] = replacement;
- }
- cm.replaceSelections(replacements);
- ranges = cm.listSelections();
- for (var i = 0; i < ranges.length; i++)
- if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
- cm.indentLine(ranges[i].head.line);
- }
-
- function autoCloseSlash(cm) {
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
- return autoCloseCurrent(cm, true);
- }
-
- CodeMirror.commands.closeTag = function(cm) { return autoCloseCurrent(cm); };
-
- function indexOf(collection, elt) {
- if (collection.indexOf) return collection.indexOf(elt);
- for (var i = 0, e = collection.length; i < e; ++i)
- if (collection[i] == elt) return i;
- return -1;
- }
-
- // If xml-fold is loaded, we use its functionality to try and verify
- // whether a given tag is actually unclosed.
- function closingTagExists(cm, tagName, pos, state, newTag) {
- if (!CodeMirror.scanForClosingTag) return false;
- var end = Math.min(cm.lastLine() + 1, pos.line + 500);
- var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);
- if (!nextClose || nextClose.tag != tagName) return false;
- var cx = state.context;
- // If the immediate wrapping context contains onCx instances of
- // the same tag, a closing tag only exists if there are at least
- // that many closing tags of that type following.
- for (var onCx = newTag ? 1 : 0; cx && cx.tagName == tagName; cx = cx.prev) ++onCx;
- pos = nextClose.to;
- for (var i = 1; i < onCx; i++) {
- var next = CodeMirror.scanForClosingTag(cm, pos, null, end);
- if (!next || next.tag != tagName) return false;
- pos = next.to;
- }
- return true;
- }
-});
diff --git a/public/vendor/codemirror/addon/edit/continuelist.js b/public/vendor/codemirror/addon/edit/continuelist.js
deleted file mode 100644
index 18db07fc..00000000
--- a/public/vendor/codemirror/addon/edit/continuelist.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// 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"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
- "use strict";
-
- var listRE = /^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\[\s\]\s|\[x\]\s|\s*)/,
- emptyListRE = /^(\s*)(>[> ]*|[*+-]\s|(\d+)[.)])(\[\s\]\s*|\[x\]\s|\s*)$/,
- unorderedListRE = /[*+-]\s/;
-
- CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
- if (cm.getOption("disableInput")) return CodeMirror.Pass;
- var ranges = cm.listSelections(), replacements = [];
- for (var i = 0; i < ranges.length; i++) {
- var pos = ranges[i].head;
- var eolState = cm.getStateAfter(pos.line);
- var inList = eolState.list !== false;
- var inQuote = eolState.quote !== 0;
-
- var line = cm.getLine(pos.line), match = listRE.exec(line);
- if (!ranges[i].empty() || (!inList && !inQuote) || !match) {
- cm.execCommand("newlineAndIndent");
- return;
- }
- if (emptyListRE.test(line)) {
- cm.replaceRange("", {
- line: pos.line, ch: 0
- }, {
- line: pos.line, ch: pos.ch + 1
- });
- replacements[i] = "\n";
- } else {
- var indent = match[1], after = match[5];
- var bullet = unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0
- ? match[2]
- : (parseInt(match[3], 10) + 1) + match[4];
-
- // make todo list default unchecked
- after = after.replace('[x]', '[ ]');
-
- replacements[i] = "\n" + indent + bullet + after;
- }
- }
-
- cm.replaceSelections(replacements);
- };
-});
diff --git a/public/vendor/codemirror/addon/edit/matchbrackets.js b/public/vendor/codemirror/addon/edit/matchbrackets.js
deleted file mode 100644
index 76754ed5..00000000
--- a/public/vendor/codemirror/addon/edit/matchbrackets.js
+++ /dev/null
@@ -1,122 +0,0 @@
-// 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"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
- var ie_lt8 = /MSIE \d/.test(navigator.userAgent) &&
- (document.documentMode == null || document.documentMode < 8);
-
- var Pos = CodeMirror.Pos;
-
- var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
-
- function findMatchingBracket(cm, where, strict, config) {
- var line = cm.getLineHandle(where.line), pos = where.ch - 1;
- var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];
- if (!match) return null;
- var dir = match.charAt(1) == ">" ? 1 : -1;
- if (strict && (dir > 0) != (pos == where.ch)) return null;
- var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));
-
- var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);
- if (found == null) return null;
- return {from: Pos(where.line, pos), to: found && found.pos,
- match: found && found.ch == match.charAt(0), forward: dir > 0};
- }
-
- // bracketRegex is used to specify which type of bracket to scan
- // should be a regexp, e.g. /[[\]]/
- //
- // Note: If "where" is on an open bracket, then this bracket is ignored.
- //
- // Returns false when no bracket was found, null when it reached
- // maxScanLines and gave up
- function scanForBracket(cm, where, dir, style, config) {
- var maxScanLen = (config && config.maxScanLineLength) || 10000;
- var maxScanLines = (config && config.maxScanLines) || 1000;
-
- var stack = [];
- var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\]]/;
- var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)
- : Math.max(cm.firstLine() - 1, where.line - maxScanLines);
- for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {
- var line = cm.getLine(lineNo);
- if (!line) continue;
- var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;
- if (line.length > maxScanLen) continue;
- if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);
- for (; pos != end; pos += dir) {
- var ch = line.charAt(pos);
- if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {
- var match = matching[ch];
- if ((match.charAt(1) == ">") == (dir > 0)) stack.push(ch);
- else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};
- else stack.pop();
- }
- }
- }
- return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;
- }
-
- function matchBrackets(cm, autoclear, config) {
- // Disable brace matching in long lines, since it'll cause hugely slow updates
- var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;
- var marks = [], ranges = cm.listSelections();
- for (var i = 0; i < ranges.length; i++) {
- var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, false, config);
- if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {
- var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
- marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));
- if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)
- marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));
- }
- }
-
- if (marks.length) {
- // Kludge to work around the IE bug from issue #1193, where text
- // input stops going to the textare whever this fires.
- if (ie_lt8 && cm.state.focused) cm.focus();
-
- var clear = function() {
- cm.operation(function() {
- for (var i = 0; i < marks.length; i++) marks[i].clear();
- });
- };
- if (autoclear) setTimeout(clear, 800);
- else return clear;
- }
- }
-
- var currentlyHighlighted = null;
- function doMatchBrackets(cm) {
- cm.operation(function() {
- if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
- currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
- });
- }
-
- CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
- if (old && old != CodeMirror.Init) {
- cm.off("cursorActivity", doMatchBrackets);
- if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
- }
- if (val) {
- cm.state.matchBrackets = typeof val == "object" ? val : {};
- cm.on("cursorActivity", doMatchBrackets);
- }
- });
-
- CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);});
- CodeMirror.defineExtension("findMatchingBracket", function(pos, strict, config){
- return findMatchingBracket(this, pos, strict, config);
- });
- CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){
- return scanForBracket(this, pos, dir, style, config);
- });
-});
diff --git a/public/vendor/codemirror/addon/edit/matchtags.js b/public/vendor/codemirror/addon/edit/matchtags.js
deleted file mode 100644
index fb1911a8..00000000
--- a/public/vendor/codemirror/addon/edit/matchtags.js
+++ /dev/null
@@ -1,66 +0,0 @@
-// 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("../fold/xml-fold"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror", "../fold/xml-fold"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
- "use strict";
-
- CodeMirror.defineOption("matchTags", false, function(cm, val, old) {
- if (old && old != CodeMirror.Init) {
- cm.off("cursorActivity", doMatchTags);
- cm.off("viewportChange", maybeUpdateMatch);
- clear(cm);
- }
- if (val) {
- cm.state.matchBothTags = typeof val == "object" && val.bothTags;
- cm.on("cursorActivity", doMatchTags);
- cm.on("viewportChange", maybeUpdateMatch);
- doMatchTags(cm);
- }
- });
-
- function clear(cm) {
- if (cm.state.tagHit) cm.state.tagHit.clear();
- if (cm.state.tagOther) cm.state.tagOther.clear();
- cm.state.tagHit = cm.state.tagOther = null;
- }
-
- function doMatchTags(cm) {
- cm.state.failedTagMatch = false;
- cm.operation(function() {
- clear(cm);
- if (cm.somethingSelected()) return;
- var cur = cm.getCursor(), range = cm.getViewport();
- range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);
- var match = CodeMirror.findMatchingTag(cm, cur, range);
- if (!match) return;
- if (cm.state.matchBothTags) {
- var hit = match.at == "open" ? match.open : match.close;
- if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"});
- }
- var other = match.at == "close" ? match.open : match.close;
- if (other)
- cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"});
- else
- cm.state.failedTagMatch = true;
- });
- }
-
- function maybeUpdateMatch(cm) {
- if (cm.state.failedTagMatch) doMatchTags(cm);
- }
-
- CodeMirror.commands.toMatchingTag = function(cm) {
- var found = CodeMirror.findMatchingTag(cm, cm.getCursor());
- if (found) {
- var other = found.at == "close" ? found.open : found.close;
- if (other) cm.extendSelection(other.to, other.from);
- }
- };
-});
diff --git a/public/vendor/codemirror/addon/edit/trailingspace.js b/public/vendor/codemirror/addon/edit/trailingspace.js
deleted file mode 100644
index fa7b56be..00000000
--- a/public/vendor/codemirror/addon/edit/trailingspace.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// 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"));
- else if (typeof define == "function" && define.amd) // AMD
- define(["../../lib/codemirror"], mod);
- else // Plain browser env
- mod(CodeMirror);
-})(function(CodeMirror) {
- CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) {
- if (prev == CodeMirror.Init) prev = false;
- if (prev && !val)
- cm.removeOverlay("trailingspace");
- else if (!prev && val)
- cm.addOverlay({
- token: function(stream) {
- for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {}
- if (i > stream.pos) { stream.pos = i; return null; }
- stream.pos = l;
- return "trailingspace";
- },
- name: "trailingspace"
- });
- });
-});