From 339de2fa419c3fa1a4ca62a7940fe91d29d431f9 Mon Sep 17 00:00:00 2001
From: ilvalle
Date: Wed, 23 Oct 2013 13:31:57 +0200
Subject: [PATCH] codemirror 3.19 and directory cleanup
---
.../static/codemirror/addon/edit/closetag.js | 2 +-
.../codemirror/addon/edit/continuelist.js | 2 +-
.../static/codemirror/addon/fold/foldcode.js | 10 +-
.../codemirror/addon/fold/foldgutter.js | 2 +
.../codemirror/addon/hint/javascript-hint.js | 22 +--
.../static/codemirror/addon/hint/xml-hint.js | 1 +
.../static/codemirror/addon/lint/lint.css | 1 +
.../static/codemirror/addon/search/search.js | 2 +
.../admin/static/codemirror/keymap/vim.js | 72 +++++--
.../static/codemirror/lib/codemirror.css | 2 +-
.../admin/static/codemirror/lib/codemirror.js | 63 ++++--
.../admin/static/codemirror/mode/css/css.js | 26 ++-
.../static/codemirror/mode/css/index.html | 70 -------
.../static/codemirror/mode/css/scss_test.js | 6 +-
.../admin/static/codemirror/mode/css/test.js | 6 +-
.../codemirror/mode/htmlembedded/index.html | 60 ------
.../codemirror/mode/htmlmixed/index.html | 85 --------
.../codemirror/mode/javascript/index.html | 107 ----------
.../admin/static/codemirror/mode/meta.js | 4 +-
.../static/codemirror/mode/python/index.html | 187 ------------------
.../static/codemirror/mode/xml/index.html | 57 ------
.../admin/static/codemirror/mode/xml/xml.js | 10 +-
.../admin/static/codemirror/package.json | 2 +-
.../static/codemirror/theme/3024-day.css | 34 ++++
.../static/codemirror/theme/3024-night.css | 34 ++++
.../static/codemirror/theme/ambiance.css | 2 +-
.../static/codemirror/theme/base16-dark.css | 34 ++++
.../static/codemirror/theme/base16-light.css | 34 ++++
.../static/codemirror/theme/blackboard.css | 2 +-
.../admin/static/codemirror/theme/cobalt.css | 2 +-
.../admin/static/codemirror/theme/eclipse.css | 2 +-
.../admin/static/codemirror/theme/elegant.css | 2 +-
.../static/codemirror/theme/erlang-dark.css | 2 +-
.../static/codemirror/theme/lesser-dark.css | 2 +-
.../admin/static/codemirror/theme/mbo.css | 35 ++++
.../static/codemirror/theme/midnight.css | 2 +-
.../admin/static/codemirror/theme/monokai.css | 2 +-
.../admin/static/codemirror/theme/night.css | 2 +-
.../static/codemirror/theme/paraiso-dark.css | 34 ++++
.../static/codemirror/theme/paraiso-light.css | 34 ++++
.../static/codemirror/theme/rubyblue.css | 2 +-
.../static/codemirror/theme/solarized.css | 14 +-
.../static/codemirror/theme/the-matrix.css | 26 +++
.../theme/tomorrow-night-eighties.css | 34 ++++
.../static/codemirror/theme/twilight.css | 2 +-
.../static/codemirror/theme/vibrant-ink.css | 2 +-
.../admin/static/codemirror/theme/xq-dark.css | 2 +-
.../static/codemirror/theme/xq-light.css | 2 +-
48 files changed, 477 insertions(+), 665 deletions(-)
delete mode 100644 applications/admin/static/codemirror/mode/css/index.html
delete mode 100644 applications/admin/static/codemirror/mode/htmlembedded/index.html
delete mode 100644 applications/admin/static/codemirror/mode/htmlmixed/index.html
delete mode 100644 applications/admin/static/codemirror/mode/javascript/index.html
delete mode 100644 applications/admin/static/codemirror/mode/python/index.html
delete mode 100644 applications/admin/static/codemirror/mode/xml/index.html
create mode 100644 applications/admin/static/codemirror/theme/3024-day.css
create mode 100644 applications/admin/static/codemirror/theme/3024-night.css
create mode 100644 applications/admin/static/codemirror/theme/base16-dark.css
create mode 100644 applications/admin/static/codemirror/theme/base16-light.css
create mode 100644 applications/admin/static/codemirror/theme/mbo.css
create mode 100644 applications/admin/static/codemirror/theme/paraiso-dark.css
create mode 100644 applications/admin/static/codemirror/theme/paraiso-light.css
create mode 100644 applications/admin/static/codemirror/theme/the-matrix.css
create mode 100644 applications/admin/static/codemirror/theme/tomorrow-night-eighties.css
diff --git a/applications/admin/static/codemirror/addon/edit/closetag.js b/applications/admin/static/codemirror/addon/edit/closetag.js
index 0bc3e8be..d6a8fafd 100644
--- a/applications/admin/static/codemirror/addon/edit/closetag.js
+++ b/applications/admin/static/codemirror/addon/edit/closetag.js
@@ -72,7 +72,7 @@
function autoCloseSlash(cm) {
var pos = cm.getCursor(), tok = cm.getTokenAt(pos);
var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
- if (tok.string.charAt(0) != "<" || inner.mode.name != "xml") return CodeMirror.Pass;
+ if (tok.string.charAt(0) != "<" || tok.start != pos.ch - 1 || inner.mode.name != "xml") return CodeMirror.Pass;
var tagName = state.context && state.context.tagName;
if (tagName) cm.replaceSelection("/" + tagName + ">", "end");
diff --git a/applications/admin/static/codemirror/addon/edit/continuelist.js b/applications/admin/static/codemirror/addon/edit/continuelist.js
index fb1fc38b..826d17d7 100644
--- a/applications/admin/static/codemirror/addon/edit/continuelist.js
+++ b/applications/admin/static/codemirror/addon/edit/continuelist.js
@@ -6,7 +6,7 @@
CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {
var pos = cm.getCursor(),
- inList = cm.getStateAfter(pos.line).list,
+ inList = cm.getStateAfter(pos.line).list !== false,
match;
if (!inList || !(match = cm.getLine(pos.line).match(listRE))) {
diff --git a/applications/admin/static/codemirror/addon/fold/foldcode.js b/applications/admin/static/codemirror/addon/fold/foldcode.js
index 931c3726..c497bc29 100644
--- a/applications/admin/static/codemirror/addon/fold/foldcode.js
+++ b/applications/admin/static/codemirror/addon/fold/foldcode.js
@@ -1,7 +1,7 @@
(function() {
"use strict";
- function doFold(cm, pos, options) {
+ function doFold(cm, pos, options, force) {
var finder = options && (options.call ? options : options.rangeFinder);
if (!finder) finder = cm.getHelper(pos, "fold");
if (!finder) return;
@@ -13,7 +13,7 @@
if (!range || range.to.line - range.from.line < minSize) return null;
var marks = cm.findMarksAt(range.from);
for (var i = 0; i < marks.length; ++i) {
- if (marks[i].__isFold) {
+ if (marks[i].__isFold && force !== "fold") {
if (!allowFolded) return null;
range.cleared = true;
marks[i].clear();
@@ -27,7 +27,7 @@
pos = CodeMirror.Pos(pos.line - 1, 0);
range = getRange(false);
}
- if (!range || range.cleared) return;
+ if (!range || range.cleared || force === "unfold") return;
var myWidget = makeWidget(options);
CodeMirror.on(myWidget, "mousedown", function() { myRange.clear(); });
@@ -59,7 +59,9 @@
};
// New-style interface
- CodeMirror.defineExtension("foldCode", function(pos, options) { doFold(this, pos, options); });
+ CodeMirror.defineExtension("foldCode", function(pos, options, force) {
+ doFold(this, pos, options, force);
+ });
CodeMirror.registerHelper("fold", "combine", function() {
var funcs = Array.prototype.slice.call(arguments, 0);
diff --git a/applications/admin/static/codemirror/addon/fold/foldgutter.js b/applications/admin/static/codemirror/addon/fold/foldgutter.js
index b809c93f..e3c52bc2 100644
--- a/applications/admin/static/codemirror/addon/fold/foldgutter.js
+++ b/applications/admin/static/codemirror/addon/fold/foldgutter.js
@@ -10,6 +10,7 @@
cm.off("viewportChange", onViewportChange);
cm.off("fold", onFold);
cm.off("unfold", onFold);
+ cm.off("swapDoc", updateInViewport);
}
if (val) {
cm.state.foldGutter = new State(parseOptions(val));
@@ -19,6 +20,7 @@
cm.on("viewportChange", onViewportChange);
cm.on("fold", onFold);
cm.on("unfold", onFold);
+ cm.on("swapDoc", updateInViewport);
}
});
diff --git a/applications/admin/static/codemirror/addon/hint/javascript-hint.js b/applications/admin/static/codemirror/addon/hint/javascript-hint.js
index 042fe132..513fb782 100644
--- a/applications/admin/static/codemirror/addon/hint/javascript-hint.js
+++ b/applications/admin/static/codemirror/addon/hint/javascript-hint.js
@@ -33,21 +33,6 @@
tprop = getToken(editor, Pos(cur.line, tprop.start));
if (tprop.string != ".") return;
tprop = getToken(editor, Pos(cur.line, tprop.start));
- if (tprop.string == ')') {
- var level = 1;
- do {
- tprop = getToken(editor, Pos(cur.line, tprop.start));
- switch (tprop.string) {
- case ')': level++; break;
- case '(': level--; break;
- default: break;
- }
- } while (level > 0);
- tprop = getToken(editor, Pos(cur.line, tprop.start));
- if (tprop.type.indexOf("variable") === 0)
- tprop.type = "function";
- else return; // no clue
- }
if (!context) var context = [];
context.push(tprop);
}
@@ -110,11 +95,11 @@
for (var name in obj) maybeAdd(name);
}
- if (context) {
+ if (context && context.length) {
// If this is a property, see if it belongs to some object we can
// find in the current environment.
var obj = context.pop(), base;
- if (obj.type.indexOf("variable") === 0) {
+ if (obj.type && obj.type.indexOf("variable") === 0) {
if (options && options.additionalContext)
base = options.additionalContext[obj.string];
base = base || window[obj.string];
@@ -132,8 +117,7 @@
while (base != null && context.length)
base = base[context.pop().string];
if (base != null) gatherCompletions(base);
- }
- else {
+ } else {
// If not, just look in the window object and any local scope
// (reading into JS mode internals to get at the local and global variables)
for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);
diff --git a/applications/admin/static/codemirror/addon/hint/xml-hint.js b/applications/admin/static/codemirror/addon/hint/xml-hint.js
index b6c1da2c..a7217434 100644
--- a/applications/admin/static/codemirror/addon/hint/xml-hint.js
+++ b/applications/admin/static/codemirror/addon/hint/xml-hint.js
@@ -37,6 +37,7 @@
Pos(cur.line, token.type == "string" ? token.start : token.end));
var atName = before.match(/([^\s\u00a0=<>\"\']+)=$/), atValues;
if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return;
+ if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget
if (token.type == "string") {
prefix = token.string;
if (/['"]/.test(token.string.charAt(0))) {
diff --git a/applications/admin/static/codemirror/addon/lint/lint.css b/applications/admin/static/codemirror/addon/lint/lint.css
index e592b367..414a9a0e 100644
--- a/applications/admin/static/codemirror/addon/lint/lint.css
+++ b/applications/admin/static/codemirror/addon/lint/lint.css
@@ -14,6 +14,7 @@
padding: 2px 5px;
position: fixed;
white-space: pre;
+ white-space: pre-wrap;
z-index: 100;
max-width: 600px;
opacity: 0;
diff --git a/applications/admin/static/codemirror/addon/search/search.js b/applications/admin/static/codemirror/addon/search/search.js
index c30922df..71ed75b5 100644
--- a/applications/admin/static/codemirror/addon/search/search.js
+++ b/applications/admin/static/codemirror/addon/search/search.js
@@ -70,6 +70,7 @@
if (!cursor.find(rev)) return;
}
cm.setSelection(cursor.from(), cursor.to());
+ cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
state.posFrom = cursor.from(); state.posTo = cursor.to();
});}
function clearSearch(cm) {cm.operation(function() {
@@ -108,6 +109,7 @@
(start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;
}
cm.setSelection(cursor.from(), cursor.to());
+ cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
confirmDialog(cm, doReplaceConfirm, "Replace?",
[function() {doReplace(match);}, advance]);
};
diff --git a/applications/admin/static/codemirror/keymap/vim.js b/applications/admin/static/codemirror/keymap/vim.js
index 9ad17af3..e67a46ed 100644
--- a/applications/admin/static/codemirror/keymap/vim.js
+++ b/applications/admin/static/codemirror/keymap/vim.js
@@ -76,8 +76,10 @@
{ keys: [''], type: 'keyToKey', toKeys: ['k'] },
{ keys: ['C-['], type: 'keyToKey', toKeys: [''] },
{ keys: [''], type: 'keyToKey', toKeys: [''] },
- { keys: ['s'], type: 'keyToKey', toKeys: ['c', 'l'] },
- { keys: ['S'], type: 'keyToKey', toKeys: ['c', 'c'] },
+ { keys: ['s'], type: 'keyToKey', toKeys: ['c', 'l'], context: 'normal' },
+ { keys: ['s'], type: 'keyToKey', toKeys: ['x', 'i'], context: 'visual'},
+ { keys: ['S'], type: 'keyToKey', toKeys: ['c', 'c'], context: 'normal' },
+ { keys: ['S'], type: 'keyToKey', toKeys: ['d', 'c', 'c'], context: 'visual' },
{ keys: [''], type: 'keyToKey', toKeys: ['0'] },
{ keys: [''], type: 'keyToKey', toKeys: ['$'] },
{ keys: [''], type: 'keyToKey', toKeys: [''] },
@@ -609,6 +611,9 @@
}
commandDispatcher.processCommand(cm, vim, command);
}
+ },
+ handleEx: function(cm, input) {
+ exCommandDispatcher.processCommand(cm, input);
}
};
@@ -695,6 +700,9 @@
if (linewise && text.charAt(0) == '\n') {
text = text.slice(1) + '\n';
}
+ if(linewise && text.charAt(text.length - 1) !== '\n'){
+ text += '\n';
+ }
// Lowercase and uppercase registers refer to the same register.
// Uppercase just means append.
var register = this.isValidRegister(registerName) ?
@@ -766,44 +774,74 @@
matchCommand: function(key, keyMap, vim) {
var inputState = vim.inputState;
var keys = inputState.keyBuffer.concat(key);
+ var matchedCommands = [];
+ var selectedCharacter;
for (var i = 0; i < keyMap.length; i++) {
var command = keyMap[i];
if (matchKeysPartial(keys, command.keys)) {
- if (keys.length < command.keys.length) {
- // Matches part of a multi-key command. Buffer and wait for next
- // stroke.
- inputState.keyBuffer.push(key);
- return null;
- }
if (inputState.operator && command.type == 'action') {
// Ignore matched action commands after an operator. Operators
// only operate on motions. This check is really for text
// objects since aW, a[ etcs conflicts with a.
continue;
}
- // Matches whole comand. Return the command.
+ // Match commands that take as an argument.
if (command.keys[keys.length - 1] == 'character') {
- inputState.selectedCharacter = keys[keys.length - 1];
- if(inputState.selectedCharacter.length>1){
- switch(inputState.selectedCharacter){
+ selectedCharacter = keys[keys.length - 1];
+ if(selectedCharacter.length>1){
+ switch(selectedCharacter){
case '':
- inputState.selectedCharacter='\n';
+ selectedCharacter='\n';
break;
case '':
- inputState.selectedCharacter=' ';
+ selectedCharacter=' ';
break;
default:
continue;
}
}
}
+ // Add the command to the list of matched commands. Choose the best
+ // command later.
+ matchedCommands.push(command);
+ }
+ }
+
+ // Returns the command if it is a full match, or null if not.
+ function getFullyMatchedCommandOrNull(command) {
+ if (keys.length < command.keys.length) {
+ // Matches part of a multi-key command. Buffer and wait for next
+ // stroke.
+ inputState.keyBuffer.push(key);
+ return null;
+ } else {
+ if (command.keys[keys.length - 1] == 'character') {
+ inputState.selectedCharacter = selectedCharacter;
+ }
+ // Clear the buffer since a full match was found.
inputState.keyBuffer = [];
return command;
}
}
- // Clear the buffer since there are no partial matches.
- inputState.keyBuffer = [];
- return null;
+
+ if (!matchedCommands.length) {
+ // Clear the buffer since there were no matches.
+ inputState.keyBuffer = [];
+ return null;
+ } else if (matchedCommands.length == 1) {
+ return getFullyMatchedCommandOrNull(matchedCommands[0]);
+ } else {
+ // Find the best match in the list of matchedCommands.
+ var context = vim.visualMode ? 'visual' : 'normal';
+ var bestMatch = matchedCommands[0]; // Default to first in the list.
+ for (var i = 0; i < matchedCommands.length; i++) {
+ if (matchedCommands[i].context == context) {
+ bestMatch = matchedCommands[i];
+ break;
+ }
+ }
+ return getFullyMatchedCommandOrNull(bestMatch);
+ }
},
processCommand: function(cm, vim, command) {
vim.inputState.repeatOverride = command.repeatOverride;
diff --git a/applications/admin/static/codemirror/lib/codemirror.css b/applications/admin/static/codemirror/lib/codemirror.css
index 4e300b2b..23eaf74d 100644
--- a/applications/admin/static/codemirror/lib/codemirror.css
+++ b/applications/admin/static/codemirror/lib/codemirror.css
@@ -74,7 +74,6 @@
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
-.cm-s-default .cm-error {color: #f00;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
@@ -91,6 +90,7 @@
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}
+.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
diff --git a/applications/admin/static/codemirror/lib/codemirror.js b/applications/admin/static/codemirror/lib/codemirror.js
index 6cfc6ff9..7b48bf5f 100644
--- a/applications/admin/static/codemirror/lib/codemirror.js
+++ b/applications/admin/static/codemirror/lib/codemirror.js
@@ -1,4 +1,4 @@
-// CodeMirror version 3.18
+// CodeMirror version 3.19
//
// CodeMirror is the only global var we claim
window.CodeMirror = (function() {
@@ -355,8 +355,10 @@ window.CodeMirror = (function() {
d.gutterFiller.style.width = d.gutters.offsetWidth + "px";
} else d.gutterFiller.style.display = "";
- if (mac_geLion && scrollbarWidth(d.measure) === 0)
+ if (mac_geLion && scrollbarWidth(d.measure) === 0) {
d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = mac_geMountainLion ? "18px" : "12px";
+ d.scrollbarV.style.pointerEvents = d.scrollbarH.style.pointerEvents = "none";
+ }
}
function visibleLines(display, doc, viewPort) {
@@ -937,8 +939,9 @@ window.CodeMirror = (function() {
// smallest indentation, which tends to need the least context to
// parse correctly.
function findStartLine(cm, n, precise) {
- var minindent, minline, doc = cm.doc, maxScan = cm.doc.mode.innerMode ? 1000 : 100;
- for (var search = n, lim = n - maxScan; search > lim; --search) {
+ var minindent, minline, doc = cm.doc;
+ var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
+ for (var search = n; search > lim; --search) {
if (search <= doc.first) return doc.first;
var line = getLine(doc, search - 1);
if (line.stateAfter && (!precise || search <= doc.frontier)) return search;
@@ -963,6 +966,7 @@ window.CodeMirror = (function() {
line.stateAfter = save ? copyState(doc.mode, state) : null;
++pos;
});
+ if (precise) doc.frontier = pos;
return state;
}
@@ -1385,7 +1389,8 @@ window.CodeMirror = (function() {
display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = newScrollPos.scrollLeft;
alignHorizontally(cm);
if (op.scrollToPos)
- scrollPosIntoView(cm, clipPos(cm.doc, op.scrollToPos), op.scrollToPosMargin);
+ scrollPosIntoView(cm, clipPos(cm.doc, op.scrollToPos.from),
+ clipPos(cm.doc, op.scrollToPos.to), op.scrollToPos.margin);
} else if (newScrollPos) {
scrollCursorIntoView(cm);
}
@@ -2181,7 +2186,11 @@ window.CodeMirror = (function() {
var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
if (!pos || opera) return; // Opera is difficult.
- if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to))
+
+ // Reset the current text selection only if the click is done outside of the selection
+ // and 'resetSelectionOnContextMenu' option is true.
+ var reset = cm.options.resetSelectionOnContextMenu;
+ if (reset && (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)))
operation(cm, setSelection)(cm.doc, pos, pos);
var oldCSS = display.input.style.cssText;
@@ -2632,7 +2641,7 @@ window.CodeMirror = (function() {
// SCROLLING
function scrollCursorIntoView(cm) {
- var coords = scrollPosIntoView(cm, cm.doc.sel.head, cm.options.cursorScrollMargin);
+ var coords = scrollPosIntoView(cm, cm.doc.sel.head, null, cm.options.cursorScrollMargin);
if (!cm.state.focused) return;
var display = cm.display, box = getRect(display.sizer), doScroll = null;
if (coords.top + box.top < 0) doScroll = true;
@@ -2649,11 +2658,15 @@ window.CodeMirror = (function() {
}
}
- function scrollPosIntoView(cm, pos, margin) {
+ function scrollPosIntoView(cm, pos, end, margin) {
if (margin == null) margin = 0;
for (;;) {
var changed = false, coords = cursorCoords(cm, pos);
- var scrollPos = calculateScrollPos(cm, coords.left, coords.top - margin, coords.left, coords.bottom + margin);
+ var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
+ var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),
+ Math.min(coords.top, endCoords.top) - margin,
+ Math.max(coords.left, endCoords.left),
+ Math.max(coords.bottom, endCoords.bottom) + margin);
var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
if (scrollPos.scrollTop != null) {
setScrollTop(cm, scrollPos.scrollTop);
@@ -3171,17 +3184,23 @@ window.CodeMirror = (function() {
clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co};
},
- scrollIntoView: operation(null, function(pos, margin) {
- if (typeof pos == "number") pos = Pos(pos, 0);
+ scrollIntoView: operation(null, function(range, margin) {
+ if (range == null) range = {from: this.doc.sel.head, to: null};
+ else if (typeof range == "number") range = {from: Pos(range, 0), to: null};
+ else if (range.from == null) range = {from: range, to: null};
+ if (!range.to) range.to = range.from;
if (!margin) margin = 0;
- var coords = pos;
- if (!pos || pos.line != null) {
- this.curOp.scrollToPos = pos ? clipPos(this.doc, pos) : this.doc.sel.head;
- this.curOp.scrollToPosMargin = margin;
- coords = cursorCoords(this, this.curOp.scrollToPos);
+ var coords = range;
+ if (range.from.line != null) {
+ this.curOp.scrollToPos = {from: range.from, to: range.to, margin: margin};
+ coords = {from: cursorCoords(this, range.from),
+ to: cursorCoords(this, range.to)};
}
- var sPos = calculateScrollPos(this, coords.left, coords.top - margin, coords.right, coords.bottom + margin);
+ var sPos = calculateScrollPos(this, Math.min(coords.from.left, coords.to.left),
+ Math.min(coords.from.top, coords.to.top) - margin,
+ Math.max(coords.from.right, coords.to.right),
+ Math.max(coords.from.bottom, coords.to.bottom) + margin);
updateScrollPos(this, sPos.scrollLeft, sPos.scrollTop);
}),
@@ -3213,6 +3232,7 @@ window.CodeMirror = (function() {
clearCaches(this);
resetInput(this, true);
updateScrollPos(this, doc.scrollLeft, doc.scrollTop);
+ signalLater(this, "swapDoc", this, old);
return old;
}),
@@ -3287,6 +3307,8 @@ window.CodeMirror = (function() {
option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true);
option("showCursorWhenSelecting", false, updateSelection, true);
+ option("resetSelectionOnContextMenu", true);
+
option("readOnly", false, function(cm, val) {
if (val == "nocursor") {onBlur(cm); cm.display.input.blur();}
else if (!val) resetInput(cm, true);
@@ -3523,7 +3545,8 @@ window.CodeMirror = (function() {
keyMap.basic = {
"Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
"End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
- "Delete": "delCharAfter", "Backspace": "delCharBefore", "Tab": "defaultTab", "Shift-Tab": "indentAuto",
+ "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
+ "Tab": "defaultTab", "Shift-Tab": "indentAuto",
"Enter": "newlineAndIndent", "Insert": "toggleOverwrite"
};
// Note that the save and find-related commands aren't defined by
@@ -4463,7 +4486,7 @@ window.CodeMirror = (function() {
return out;
}
return function(builder, text, style, startStyle, endStyle, title) {
- return inner(builder, text.replace(/ {3,}/, split), style, startStyle, endStyle, title);
+ return inner(builder, text.replace(/ {3,}/g, split), style, startStyle, endStyle, title);
};
}
@@ -5881,7 +5904,7 @@ window.CodeMirror = (function() {
// THE END
- CodeMirror.version = "3.18.0";
+ CodeMirror.version = "3.19.0";
return CodeMirror;
})();
diff --git a/applications/admin/static/codemirror/mode/css/css.js b/applications/admin/static/codemirror/mode/css/css.js
index 4264bc60..f47aba75 100644
--- a/applications/admin/static/codemirror/mode/css/css.js
+++ b/applications/admin/static/codemirror/mode/css/css.js
@@ -3,7 +3,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode("text/css");
- var indentUnit = config.indentUnit,
+ var indentUnit = config.indentUnit || config.tabSize || 2,
hooks = parserConfig.hooks || {},
atMediaTypes = parserConfig.atMediaTypes || {},
atMediaFeatures = parserConfig.atMediaFeatures || {},
@@ -259,8 +259,13 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
}
else if (type == "}") {
if (context == "interpolation") style = "operator";
- state.stack.pop();
- if (context == "propertyValue") state.stack.pop();
+ // Pop off end of array until { is reached
+ while(state.stack.length){
+ var removed = state.stack.pop();
+ if(removed.indexOf("{") > -1){
+ break;
+ }
+ }
}
else if (type == "interpolation") state.stack.push("interpolation");
else if (type == "@media") state.stack.push("@media");
@@ -278,11 +283,13 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
else state.stack.push("(");
}
else if (type == ")") {
- if (context == "propertyValue") {
- // In @mediaType( without closing ; after propertyValue
- state.stack.pop();
+ // Pop off end of array until ( is reached
+ while(state.stack.length){
+ var removed = state.stack.pop();
+ if(removed.indexOf("(") > -1){
+ break;
+ }
}
- state.stack.pop();
}
else if (type == ":" && state.lastToken == "property") state.stack.push("propertyValue");
else if (context == "propertyValue" && type == ";") state.stack.pop();
@@ -602,6 +609,11 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
}
return ["variable", "variable"];
},
+ ",": function(_stream, state) {
+ if (state.stack[state.stack.length - 1] == "propertyValue") {
+ return ["operator", ";"];
+ }
+ },
"/": function(stream, state) {
if (stream.eat("/")) {
stream.skipToEnd();
diff --git a/applications/admin/static/codemirror/mode/css/index.html b/applications/admin/static/codemirror/mode/css/index.html
deleted file mode 100644
index 1d1865e2..00000000
--- a/applications/admin/static/codemirror/mode/css/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-CodeMirror: CSS mode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-CSS mode
-
-
-
- MIME types defined: text/css.
-
- Parsing/Highlighting Tests: normal , verbose .
-
-
diff --git a/applications/admin/static/codemirror/mode/css/scss_test.js b/applications/admin/static/codemirror/mode/css/scss_test.js
index 3644f63d..bc2a0785 100644
--- a/applications/admin/static/codemirror/mode/css/scss_test.js
+++ b/applications/admin/static/codemirror/mode/css/scss_test.js
@@ -1,6 +1,7 @@
(function() {
- var mode = CodeMirror.getMode({tabSize: 4}, "text/x-scss");
+ var mode = CodeMirror.getMode({tabSize: 1}, "text/x-scss");
function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "scss"); }
+ function IT(name) { test.indentation(name, mode, Array.prototype.slice.call(arguments, 1), "scss"); }
MT('url_with_quotation',
"[tag foo] { [property background][operator :][string-2 url]([string test.jpg]) }");
@@ -77,4 +78,7 @@
MT('nested_structure_with_id_selector',
"[tag p] { [builtin #hello] { [property color][operator :][keyword red]; } }");
+
+ IT('mixin',
+ "@mixin container[1 (][2 $a: 10][1 , ][2 $b: 10][1 , ][2 $c: 10]) [1 {]}");
})();
diff --git a/applications/admin/static/codemirror/mode/css/test.js b/applications/admin/static/codemirror/mode/css/test.js
index 13fc04c1..43647833 100644
--- a/applications/admin/static/codemirror/mode/css/test.js
+++ b/applications/admin/static/codemirror/mode/css/test.js
@@ -1,6 +1,7 @@
(function() {
- var mode = CodeMirror.getMode({tabSize: 4}, "css");
+ var mode = CodeMirror.getMode({tabSize: 1}, "css");
function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
+ function IT(name) { test.indentation(name, mode, Array.prototype.slice.call(arguments, 1)); }
// Requires at least one media query
MT("atMediaEmpty",
@@ -123,4 +124,7 @@
MT("commentSGML",
"[comment ]");
+
+ IT("tagSelector",
+ "strong, em [1 { background][2 : rgba][3 (255, 255, 0, .2][2 )][1 ;]}");
})();
diff --git a/applications/admin/static/codemirror/mode/htmlembedded/index.html b/applications/admin/static/codemirror/mode/htmlembedded/index.html
deleted file mode 100644
index 4ab90f7d..00000000
--- a/applications/admin/static/codemirror/mode/htmlembedded/index.html
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-CodeMirror: Html Embedded Scripts mode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Html Embedded Scripts mode
-
-<%
-function hello(who) {
- return "Hello " + who;
-}
-%>
-This is an example of EJS (embedded javascript)
-The program says <%= hello("world") %>.
-
-
-
-
-
- Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on
- JavaScript, CSS and XML. Other dependancies include those of the scriping language chosen.
-
- MIME types defined: application/x-aspx (ASP.NET),
- application/x-ejs (Embedded Javascript), application/x-jsp (JavaServer Pages)
-
diff --git a/applications/admin/static/codemirror/mode/htmlmixed/index.html b/applications/admin/static/codemirror/mode/htmlmixed/index.html
deleted file mode 100644
index b4617435..00000000
--- a/applications/admin/static/codemirror/mode/htmlmixed/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-CodeMirror: HTML mixed mode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-HTML mixed mode
-
-
-
-
- Mixed HTML Example
-
-
-
- Mixed HTML Example
-
-
-
-
-
-
- The HTML mixed mode depends on the XML, JavaScript, and CSS modes.
-
- It takes an optional mode configuration
- option, scriptTypes, which can be used to add custom
- behavior for specific <script type="..."> tags. If
- given, it should hold an array of {matches, mode}
- objects, where matches is a string or regexp that
- matches the script type, and mode is
- either null, for script types that should stay in
- HTML mode, or a mode
- spec corresponding to the mode that should be used for the
- script.
-
- MIME types defined: text/html
- (redefined, only takes effect if you load this parser after the
- XML parser).
-
-
diff --git a/applications/admin/static/codemirror/mode/javascript/index.html b/applications/admin/static/codemirror/mode/javascript/index.html
deleted file mode 100644
index 45d70ffd..00000000
--- a/applications/admin/static/codemirror/mode/javascript/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-CodeMirror: JavaScript mode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-JavaScript mode
-
-
-
-// Demo code (the actual new parser character stream implementation)
-
-function StringStream(string) {
- this.pos = 0;
- this.string = string;
-}
-
-StringStream.prototype = {
- done: function() {return this.pos >= this.string.length;},
- peek: function() {return this.string.charAt(this.pos);},
- next: function() {
- if (this.pos < this.string.length)
- return this.string.charAt(this.pos++);
- },
- eat: function(match) {
- var ch = this.string.charAt(this.pos);
- if (typeof match == "string") var ok = ch == match;
- else var ok = ch && match.test ? match.test(ch) : match(ch);
- if (ok) {this.pos++; return ch;}
- },
- eatWhile: function(match) {
- var start = this.pos;
- while (this.eat(match));
- if (this.pos > start) return this.string.slice(start, this.pos);
- },
- backUp: function(n) {this.pos -= n;},
- column: function() {return this.pos;},
- eatSpace: function() {
- var start = this.pos;
- while (/\s/.test(this.string.charAt(this.pos))) this.pos++;
- return this.pos - start;
- },
- match: function(pattern, consume, caseInsensitive) {
- if (typeof pattern == "string") {
- function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}
- if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) {
- if (consume !== false) this.pos += str.length;
- return true;
- }
- }
- else {
- var match = this.string.slice(this.pos).match(pattern);
- if (match && consume !== false) this.pos += match[0].length;
- return match;
- }
- }
-};
-
-
-
-
-
- JavaScript mode supports a two configuration
- options:
-
- json which will set the mode to expect JSON
- data rather than a JavaScript program.
- typescript which will activate additional
- syntax highlighting and some other things for TypeScript code
- (demo ).
- statementIndent which (given a number) will
- determine the amount of indentation to use for statements
- continued on a new line.
-
-
-
- MIME types defined: text/javascript, application/json, text/typescript, application/typescript.
-
diff --git a/applications/admin/static/codemirror/mode/meta.js b/applications/admin/static/codemirror/mode/meta.js
index ce51c8ae..f6bbd1b4 100644
--- a/applications/admin/static/codemirror/mode/meta.js
+++ b/applications/admin/static/codemirror/mode/meta.js
@@ -15,11 +15,13 @@ CodeMirror.modeInfo = [
{name: 'diff', mime: 'text/x-diff', mode: 'diff'},
{name: 'DTD', mime: 'application/xml-dtd', mode: 'dtd'},
{name: 'ECL', mime: 'text/x-ecl', mode: 'ecl'},
+ {name: 'Eiffel', mime: 'text/x-eiffel', mode: 'eiffel'},
{name: 'Erlang', mime: 'text/x-erlang', mode: 'erlang'},
{name: 'Fortran', mime: 'text/x-fortran', mode: 'fortran'},
{name: 'Gas', mime: 'text/x-gas', mode: 'gas'},
+ {name: 'Gherkin', mime: 'text/x-feature', mode: 'gherkin'},
{name: 'GitHub Flavored Markdown', mime: 'text/x-gfm', mode: 'gfm'},
- {name: 'GO', mime: 'text/x-go', mode: 'go'},
+ {name: 'Go', mime: 'text/x-go', mode: 'go'},
{name: 'Groovy', mime: 'text/x-groovy', mode: 'groovy'},
{name: 'HAML', mime: 'text/x-haml', mode: 'haml'},
{name: 'Haskell', mime: 'text/x-haskell', mode: 'haskell'},
diff --git a/applications/admin/static/codemirror/mode/python/index.html b/applications/admin/static/codemirror/mode/python/index.html
deleted file mode 100644
index 49773492..00000000
--- a/applications/admin/static/codemirror/mode/python/index.html
+++ /dev/null
@@ -1,187 +0,0 @@
-
-
-CodeMirror: Python mode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Python mode
-
-
-# Literals
-1234
-0.0e101
-.123
-0b01010011100
-0o01234567
-0x0987654321abcdef
-7
-2147483647
-3L
-79228162514264337593543950336L
-0x100000000L
-79228162514264337593543950336
-0xdeadbeef
-3.14j
-10.j
-10j
-.001j
-1e100j
-3.14e-10j
-
-
-# String Literals
-'For\''
-"God\""
-"""so loved
-the world"""
-'''that he gave
-his only begotten\' '''
-'that whosoever believeth \
-in him'
-''
-
-# Identifiers
-__a__
-a.b
-a.b.c
-
-# Operators
-+ - * / % & | ^ ~ < >
-== != <= >= <> << >> // **
-and or not in is
-
-# Delimiters
-() [] {} , : ` = ; @ . # Note that @ and . require the proper context.
-+= -= *= /= %= &= |= ^=
-//= >>= <<= **=
-
-# Keywords
-as assert break class continue def del elif else except
-finally for from global if import lambda pass raise
-return try while with yield
-
-# Python 2 Keywords (otherwise Identifiers)
-exec print
-
-# Python 3 Keywords (otherwise Identifiers)
-nonlocal
-
-# Types
-bool classmethod complex dict enumerate float frozenset int list object
-property reversed set slice staticmethod str super tuple type
-
-# Python 2 Types (otherwise Identifiers)
-basestring buffer file long unicode xrange
-
-# Python 3 Types (otherwise Identifiers)
-bytearray bytes filter map memoryview open range zip
-
-# Some Example code
-import os
-from package import ParentClass
-
-@nonsenseDecorator
-def doesNothing():
- pass
-
-class ExampleClass(ParentClass):
- @staticmethod
- def example(inputStr):
- a = list(inputStr)
- a.reverse()
- return ''.join(a)
-
- def __init__(self, mixin = 'Hello'):
- self.mixin = mixin
-
-
-
-
-Cython mode
-
-
-
-import numpy as np
-cimport cython
-from libc.math cimport sqrt
-
-@cython.boundscheck(False)
-@cython.wraparound(False)
-def pairwise_cython(double[:, ::1] X):
- cdef int M = X.shape[0]
- cdef int N = X.shape[1]
- cdef double tmp, d
- cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
- for i in range(M):
- for j in range(M):
- d = 0.0
- for k in range(N):
- tmp = X[i, k] - X[j, k]
- d += tmp * tmp
- D[i, j] = sqrt(d)
- return np.asarray(D)
-
-
-
-
- Configuration Options for Python mode:
-
- version - 2/3 - The version of Python to recognize. Default is 2.
- singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.
-
- Advanced Configuration Options:
- Usefull for superset of python syntax like Enthought enaml, IPython magics and questionmark help
-
- singleOperators - RegEx - Regular Expression for single operator matching, default : ^[\\+\\-\\*/%&|\\^~<>!]
- singleDelimiters - RegEx - Regular Expression for single delimiter matching, default : ^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]
- doubleOperators - RegEx - Regular Expression for double operators matching, default : ^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))
- doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default : ^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))
- tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default : ^((//=)|(>>=)|(<<=)|(\\*\\*=))
- identifiers - RegEx - Regular Expression for identifier, default : ^[_A-Za-z][_A-Za-z0-9]*
- extra_keywords - list of string - List of extra words ton consider as keywords
- extra_builtins - list of string - List of extra words ton consider as builtins
-
-
-
- MIME types defined: text/x-python and text/x-cython.
-
diff --git a/applications/admin/static/codemirror/mode/xml/index.html b/applications/admin/static/codemirror/mode/xml/index.html
deleted file mode 100644
index 873099aa..00000000
--- a/applications/admin/static/codemirror/mode/xml/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-CodeMirror: XML mode
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-XML mode
-
-<html style="color: green">
- <!-- this is a comment -->
- <head>
- <title>HTML Example</title>
- </head>
- <body>
- The indentation tries to be <em>somewhat "do what
- I mean"</em>... but might not match your style.
- </body>
-</html>
-
-
- The XML mode supports two configuration parameters:
-
- htmlMode (boolean)
- This switches the mode to parse HTML instead of XML. This
- means attributes do not have to be quoted, and some elements
- (such as br) do not require a closing tag.
- alignCDATA (boolean)
- Setting this to true will force the opening tag of CDATA
- blocks to not be indented.
-
-
- MIME types defined: application/xml, text/html.
-
diff --git a/applications/admin/static/codemirror/mode/xml/xml.js b/applications/admin/static/codemirror/mode/xml/xml.js
index 53285c84..4f49e07f 100644
--- a/applications/admin/static/codemirror/mode/xml/xml.js
+++ b/applications/admin/static/codemirror/mode/xml/xml.js
@@ -76,7 +76,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
tagName = "";
var c;
while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c;
- if (!tagName) return "error";
+ if (!tagName) return "tag error";
type = isClose ? "closeTag" : "openTag";
state.tokenize = inTag;
return "tag";
@@ -109,7 +109,9 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
type = "equals";
return null;
} else if (ch == "<") {
- return "error";
+ state.tokenize = inText;
+ var next = state.tokenize(stream, state);
+ return next ? next + " error" : "error";
} else if (/[\'\"]/.test(ch)) {
state.tokenize = inAttribute(ch);
state.stringStartCol = stream.column();
@@ -298,7 +300,9 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
}
}
state.startOfLine = false;
- return setStyle || style;
+ if (setStyle)
+ style = setStyle == "error" ? style + " error" : setStyle;
+ return style;
},
indent: function(state, textAfter, fullLine) {
diff --git a/applications/admin/static/codemirror/package.json b/applications/admin/static/codemirror/package.json
index cde46e35..8310ab15 100644
--- a/applications/admin/static/codemirror/package.json
+++ b/applications/admin/static/codemirror/package.json
@@ -1,6 +1,6 @@
{
"name": "codemirror",
- "version":"3.18.0",
+ "version":"3.19.0",
"main": "lib/codemirror.js",
"description": "In-browser code editing made bearable",
"licenses": [{"type": "MIT",
diff --git a/applications/admin/static/codemirror/theme/3024-day.css b/applications/admin/static/codemirror/theme/3024-day.css
new file mode 100644
index 00000000..cbb9a4fa
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/3024-day.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: 3024 day
+ Author: Jan T. Sott (http://github.com/idleberg)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-3024-day.CodeMirror {background: #f7f7f7; color: #3a3432;}
+.cm-s-3024-day div.CodeMirror-selected {background: #d6d5d4 !important;}
+.cm-s-3024-day .CodeMirror-gutters {background: #f7f7f7; border-right: 0px;}
+.cm-s-3024-day .CodeMirror-linenumber {color: #807d7c;}
+.cm-s-3024-day .CodeMirror-cursor {border-left: 1px solid #5c5855 !important;}
+
+.cm-s-3024-day span.cm-comment {color: #cdab53;}
+.cm-s-3024-day span.cm-atom {color: #a16a94;}
+.cm-s-3024-day span.cm-number {color: #a16a94;}
+
+.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute {color: #01a252;}
+.cm-s-3024-day span.cm-keyword {color: #db2d20;}
+.cm-s-3024-day span.cm-string {color: #fded02;}
+
+.cm-s-3024-day span.cm-variable {color: #01a252;}
+.cm-s-3024-day span.cm-variable-2 {color: #01a0e4;}
+.cm-s-3024-day span.cm-def {color: #e8bbd0;}
+.cm-s-3024-day span.cm-bracket {color: #3a3432;}
+.cm-s-3024-day span.cm-tag {color: #db2d20;}
+.cm-s-3024-day span.cm-link {color: #a16a94;}
+.cm-s-3024-day span.cm-error {background: #db2d20; color: #5c5855;}
+
+.cm-s-3024-day .CodeMirror-activeline-background {background: #e8f2ff !important;}
+.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
diff --git a/applications/admin/static/codemirror/theme/3024-night.css b/applications/admin/static/codemirror/theme/3024-night.css
new file mode 100644
index 00000000..2c62e221
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/3024-night.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: 3024 night
+ Author: Jan T. Sott (http://github.com/idleberg)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-3024-night.CodeMirror {background: #090300; color: #d6d5d4;}
+.cm-s-3024-night div.CodeMirror-selected {background: #3a3432 !important;}
+.cm-s-3024-night .CodeMirror-gutters {background: #090300; border-right: 0px;}
+.cm-s-3024-night .CodeMirror-linenumber {color: #5c5855;}
+.cm-s-3024-night .CodeMirror-cursor {border-left: 1px solid #807d7c !important;}
+
+.cm-s-3024-night span.cm-comment {color: #cdab53;}
+.cm-s-3024-night span.cm-atom {color: #a16a94;}
+.cm-s-3024-night span.cm-number {color: #a16a94;}
+
+.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute {color: #01a252;}
+.cm-s-3024-night span.cm-keyword {color: #db2d20;}
+.cm-s-3024-night span.cm-string {color: #fded02;}
+
+.cm-s-3024-night span.cm-variable {color: #01a252;}
+.cm-s-3024-night span.cm-variable-2 {color: #01a0e4;}
+.cm-s-3024-night span.cm-def {color: #e8bbd0;}
+.cm-s-3024-night span.cm-bracket {color: #d6d5d4;}
+.cm-s-3024-night span.cm-tag {color: #db2d20;}
+.cm-s-3024-night span.cm-link {color: #a16a94;}
+.cm-s-3024-night span.cm-error {background: #db2d20; color: #807d7c;}
+
+.cm-s-3024-night .CodeMirror-activeline-background {background: #2F2F2F !important;}
+.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
diff --git a/applications/admin/static/codemirror/theme/ambiance.css b/applications/admin/static/codemirror/theme/ambiance.css
index 53e9ce78..a69d16e5 100644
--- a/applications/admin/static/codemirror/theme/ambiance.css
+++ b/applications/admin/static/codemirror/theme/ambiance.css
@@ -15,7 +15,6 @@
.cm-s-ambiance .cm-string { color: #8f9d6a; }
.cm-s-ambiance .cm-string-2 { color: #9d937c; }
.cm-s-ambiance .cm-meta { color: #D2A8A1; }
-.cm-s-ambiance .cm-error { color: #AF2018; }
.cm-s-ambiance .cm-qualifier { color: yellow; }
.cm-s-ambiance .cm-builtin { color: #9999cc; }
.cm-s-ambiance .cm-bracket { color: #24C2C7; }
@@ -26,6 +25,7 @@
.cm-s-ambiance .cm-hr { color: pink; }
.cm-s-ambiance .cm-link { color: #F4C20B; }
.cm-s-ambiance .cm-special { color: #FF9D00; }
+.cm-s-ambiance .cm-error { color: #AF2018; }
.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }
.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }
diff --git a/applications/admin/static/codemirror/theme/base16-dark.css b/applications/admin/static/codemirror/theme/base16-dark.css
new file mode 100644
index 00000000..3b7b21c7
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/base16-dark.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Base16 Default Dark
+ Author: Chris Kempson (http://chriskempson.com)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-base16-dark.CodeMirror {background: #151515; color: #e0e0e0;}
+.cm-s-base16-dark div.CodeMirror-selected {background: #202020 !important;}
+.cm-s-base16-dark .CodeMirror-gutters {background: #151515; border-right: 0px;}
+.cm-s-base16-dark .CodeMirror-linenumber {color: #505050;}
+.cm-s-base16-dark .CodeMirror-cursor {border-left: 1px solid #b0b0b0 !important;}
+
+.cm-s-base16-dark span.cm-comment {color: #8f5536;}
+.cm-s-base16-dark span.cm-atom {color: #aa759f;}
+.cm-s-base16-dark span.cm-number {color: #aa759f;}
+
+.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute {color: #90a959;}
+.cm-s-base16-dark span.cm-keyword {color: #ac4142;}
+.cm-s-base16-dark span.cm-string {color: #f4bf75;}
+
+.cm-s-base16-dark span.cm-variable {color: #90a959;}
+.cm-s-base16-dark span.cm-variable-2 {color: #6a9fb5;}
+.cm-s-base16-dark span.cm-def {color: #d28445;}
+.cm-s-base16-dark span.cm-bracket {color: #e0e0e0;}
+.cm-s-base16-dark span.cm-tag {color: #ac4142;}
+.cm-s-base16-dark span.cm-link {color: #aa759f;}
+.cm-s-base16-dark span.cm-error {background: #ac4142; color: #b0b0b0;}
+
+.cm-s-base16-dark .CodeMirror-activeline-background {background: #2F2F2F !important;}
+.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
diff --git a/applications/admin/static/codemirror/theme/base16-light.css b/applications/admin/static/codemirror/theme/base16-light.css
new file mode 100644
index 00000000..5aa4b538
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/base16-light.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Base16 Default Light
+ Author: Chris Kempson (http://chriskempson.com)
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-base16-light.CodeMirror {background: #f5f5f5; color: #202020;}
+.cm-s-base16-light div.CodeMirror-selected {background: #e0e0e0 !important;}
+.cm-s-base16-light .CodeMirror-gutters {background: #f5f5f5; border-right: 0px;}
+.cm-s-base16-light .CodeMirror-linenumber {color: #b0b0b0;}
+.cm-s-base16-light .CodeMirror-cursor {border-left: 1px solid #505050 !important;}
+
+.cm-s-base16-light span.cm-comment {color: #8f5536;}
+.cm-s-base16-light span.cm-atom {color: #aa759f;}
+.cm-s-base16-light span.cm-number {color: #aa759f;}
+
+.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute {color: #90a959;}
+.cm-s-base16-light span.cm-keyword {color: #ac4142;}
+.cm-s-base16-light span.cm-string {color: #f4bf75;}
+
+.cm-s-base16-light span.cm-variable {color: #90a959;}
+.cm-s-base16-light span.cm-variable-2 {color: #6a9fb5;}
+.cm-s-base16-light span.cm-def {color: #d28445;}
+.cm-s-base16-light span.cm-bracket {color: #202020;}
+.cm-s-base16-light span.cm-tag {color: #ac4142;}
+.cm-s-base16-light span.cm-link {color: #aa759f;}
+.cm-s-base16-light span.cm-error {background: #ac4142; color: #505050;}
+
+.cm-s-base16-light .CodeMirror-activeline-background {background: #DDDCDC !important;}
+.cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
diff --git a/applications/admin/static/codemirror/theme/blackboard.css b/applications/admin/static/codemirror/theme/blackboard.css
index 364112b0..8b760847 100644
--- a/applications/admin/static/codemirror/theme/blackboard.css
+++ b/applications/admin/static/codemirror/theme/blackboard.css
@@ -16,13 +16,13 @@
.cm-s-blackboard .cm-string { color: #61CE3C; }
.cm-s-blackboard .cm-string-2 { color: #61CE3C; }
.cm-s-blackboard .cm-meta { color: #D8FA3C; }
-.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
.cm-s-blackboard .cm-builtin { color: #8DA6CE; }
.cm-s-blackboard .cm-tag { color: #8DA6CE; }
.cm-s-blackboard .cm-attribute { color: #8DA6CE; }
.cm-s-blackboard .cm-header { color: #FF6400; }
.cm-s-blackboard .cm-hr { color: #AEAEAE; }
.cm-s-blackboard .cm-link { color: #8DA6CE; }
+.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;}
.cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}
\ No newline at end of file
diff --git a/applications/admin/static/codemirror/theme/cobalt.css b/applications/admin/static/codemirror/theme/cobalt.css
index 2cfa22d3..b4a91773 100644
--- a/applications/admin/static/codemirror/theme/cobalt.css
+++ b/applications/admin/static/codemirror/theme/cobalt.css
@@ -12,10 +12,10 @@
.cm-s-cobalt span.cm-meta { color: #ff9d00; }
.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }
.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; }
-.cm-s-cobalt span.cm-error { color: #9d1e15; }
.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
.cm-s-cobalt span.cm-link { color: #845dc4; }
+.cm-s-cobalt span.cm-error { color: #9d1e15; }
.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;}
.cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}
diff --git a/applications/admin/static/codemirror/theme/eclipse.css b/applications/admin/static/codemirror/theme/eclipse.css
index 13eb2032..317218e3 100644
--- a/applications/admin/static/codemirror/theme/eclipse.css
+++ b/applications/admin/static/codemirror/theme/eclipse.css
@@ -11,13 +11,13 @@
.cm-s-eclipse span.cm-comment {color: #3F7F5F;}
.cm-s-eclipse span.cm-string {color: #2A00FF;}
.cm-s-eclipse span.cm-string-2 {color: #f50;}
-.cm-s-eclipse span.cm-error {color: #f00;}
.cm-s-eclipse span.cm-qualifier {color: #555;}
.cm-s-eclipse span.cm-builtin {color: #30a;}
.cm-s-eclipse span.cm-bracket {color: #cc7;}
.cm-s-eclipse span.cm-tag {color: #170;}
.cm-s-eclipse span.cm-attribute {color: #00c;}
.cm-s-eclipse span.cm-link {color: #219;}
+.cm-s-eclipse span.cm-error {color: #f00;}
.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;}
.cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
diff --git a/applications/admin/static/codemirror/theme/elegant.css b/applications/admin/static/codemirror/theme/elegant.css
index 67d663bd..dd7df7b7 100644
--- a/applications/admin/static/codemirror/theme/elegant.css
+++ b/applications/admin/static/codemirror/theme/elegant.css
@@ -6,8 +6,8 @@
.cm-s-elegant span.cm-qualifier {color: #555;}
.cm-s-elegant span.cm-keyword {color: #730;}
.cm-s-elegant span.cm-builtin {color: #30a;}
-.cm-s-elegant span.cm-error {background-color: #fdd;}
.cm-s-elegant span.cm-link {color: #762;}
+.cm-s-elegant span.cm-error {background-color: #fdd;}
.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;}
.cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}
diff --git a/applications/admin/static/codemirror/theme/erlang-dark.css b/applications/admin/static/codemirror/theme/erlang-dark.css
index a4a36826..db56b108 100644
--- a/applications/admin/static/codemirror/theme/erlang-dark.css
+++ b/applications/admin/static/codemirror/theme/erlang-dark.css
@@ -10,7 +10,6 @@
.cm-s-erlang-dark span.cm-builtin { color: #eaa; }
.cm-s-erlang-dark span.cm-comment { color: #77f; }
.cm-s-erlang-dark span.cm-def { color: #e7a; }
-.cm-s-erlang-dark span.cm-error { color: #9d1e15; }
.cm-s-erlang-dark span.cm-keyword { color: #ffee80; }
.cm-s-erlang-dark span.cm-meta { color: #50fefe; }
.cm-s-erlang-dark span.cm-number { color: #ffd0d0; }
@@ -25,6 +24,7 @@
.cm-s-erlang-dark span.cm-variable { color: #50fe50; }
.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }
.cm-s-erlang-dark span.cm-variable-3 { color: #ccc; }
+.cm-s-erlang-dark span.cm-error { color: #9d1e15; }
.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461 !important;}
.cm-s-erlang-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
diff --git a/applications/admin/static/codemirror/theme/lesser-dark.css b/applications/admin/static/codemirror/theme/lesser-dark.css
index ad0bfebf..c3255966 100644
--- a/applications/admin/static/codemirror/theme/lesser-dark.css
+++ b/applications/admin/static/codemirror/theme/lesser-dark.css
@@ -32,7 +32,6 @@ Ported to CodeMirror by Peter Kroon
.cm-s-lesser-dark span.cm-string { color: #BCD279; }
.cm-s-lesser-dark span.cm-string-2 {color: #f50;}
.cm-s-lesser-dark span.cm-meta { color: #738C73; }
-.cm-s-lesser-dark span.cm-error { color: #9d1e15; }
.cm-s-lesser-dark span.cm-qualifier {color: #555;}
.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
@@ -42,6 +41,7 @@ Ported to CodeMirror by Peter Kroon
.cm-s-lesser-dark span.cm-quote {color: #090;}
.cm-s-lesser-dark span.cm-hr {color: #999;}
.cm-s-lesser-dark span.cm-link {color: #00c;}
+.cm-s-lesser-dark span.cm-error { color: #9d1e15; }
.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A !important;}
.cm-s-lesser-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
diff --git a/applications/admin/static/codemirror/theme/mbo.css b/applications/admin/static/codemirror/theme/mbo.css
new file mode 100644
index 00000000..f3250a73
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/mbo.css
@@ -0,0 +1,35 @@
+/* Based on mbonaci's Brackets mbo theme */
+
+.cm-s-mbo.CodeMirror {background: #2c2c2c; color: #ffffe9;}
+.cm-s-mbo div.CodeMirror-selected {background: #716C62 !important;}
+.cm-s-mbo .CodeMirror-gutters {background: #4e4e4e; border-right: 0px;}
+.cm-s-mbo .CodeMirror-linenumber {color: #dadada;}
+.cm-s-mbo .CodeMirror-cursor {border-left: 1px solid #ffffec !important;}
+
+.cm-s-mbo span.cm-comment {color: #95958a;}
+.cm-s-mbo span.cm-atom {color: #00a8c6;}
+.cm-s-mbo span.cm-number {color: #00a8c6;}
+
+.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute {color: #9ddfe9;}
+.cm-s-mbo span.cm-keyword {color: #ffb928;}
+.cm-s-mbo span.cm-string {color: #ffcf6c;}
+
+.cm-s-mbo span.cm-variable {color: #ffffec;}
+.cm-s-mbo span.cm-variable-2 {color: #00a8c6;}
+.cm-s-mbo span.cm-def {color: #ffffec;}
+.cm-s-mbo span.cm-bracket {color: #fffffc; font-weight: bold;}
+.cm-s-mbo span.cm-tag {color: #9ddfe9;}
+.cm-s-mbo span.cm-link {color: #f54b07;}
+.cm-s-mbo span.cm-error {background: #636363; color: #ffffec;}
+
+.cm-s-mbo .CodeMirror-activeline-background {background: #494b41 !important;}
+.cm-s-mbo .CodeMirror-matchingbracket {
+ text-decoration: underline;
+ color: #f5e107 !important;
+ }
+
+div.CodeMirror span.CodeMirror-searching {
+ background-color: none;
+ background: none;
+ box-shadow: 0 0 0 1px #ffffec;
+}
diff --git a/applications/admin/static/codemirror/theme/midnight.css b/applications/admin/static/codemirror/theme/midnight.css
index 2824dfa5..66126322 100644
--- a/applications/admin/static/codemirror/theme/midnight.css
+++ b/applications/admin/static/codemirror/theme/midnight.css
@@ -32,10 +32,10 @@
.cm-s-midnight span.cm-variable {color: #FFAA3E;}
.cm-s-midnight span.cm-variable-2 {color: #FFAA3E;}
.cm-s-midnight span.cm-def {color: #4DD;}
-.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;}
.cm-s-midnight span.cm-bracket {color: #D1EDFF;}
.cm-s-midnight span.cm-tag {color: #449;}
.cm-s-midnight span.cm-link {color: #AE81FF;}
+.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;}
.cm-s-midnight .CodeMirror-matchingbracket {
text-decoration: underline;
diff --git a/applications/admin/static/codemirror/theme/monokai.css b/applications/admin/static/codemirror/theme/monokai.css
index ea68a59b..7ac601a1 100644
--- a/applications/admin/static/codemirror/theme/monokai.css
+++ b/applications/admin/static/codemirror/theme/monokai.css
@@ -17,10 +17,10 @@
.cm-s-monokai span.cm-variable {color: #a6e22e;}
.cm-s-monokai span.cm-variable-2 {color: #9effff;}
.cm-s-monokai span.cm-def {color: #fd971f;}
-.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
.cm-s-monokai span.cm-bracket {color: #f8f8f2;}
.cm-s-monokai span.cm-tag {color: #f92672;}
.cm-s-monokai span.cm-link {color: #ae81ff;}
+.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
.cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;}
.cm-s-monokai .CodeMirror-matchingbracket {
diff --git a/applications/admin/static/codemirror/theme/night.css b/applications/admin/static/codemirror/theme/night.css
index e8202394..016e55ee 100644
--- a/applications/admin/static/codemirror/theme/night.css
+++ b/applications/admin/static/codemirror/theme/night.css
@@ -14,11 +14,11 @@
.cm-s-night span.cm-meta { color: #7678e2; }
.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }
.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; }
-.cm-s-night span.cm-error { color: #9d1e15; }
.cm-s-night span.cm-bracket { color: #8da6ce; }
.cm-s-night span.cm-comment { color: #6900a1; }
.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
.cm-s-night span.cm-link { color: #845dc4; }
+.cm-s-night span.cm-error { color: #9d1e15; }
.cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;}
.cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
diff --git a/applications/admin/static/codemirror/theme/paraiso-dark.css b/applications/admin/static/codemirror/theme/paraiso-dark.css
new file mode 100644
index 00000000..ddefc55d
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/paraiso-dark.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Paraíso (Dark)
+ Author: Jan T. Sott
+
+ Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
+ Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+
+*/
+
+.cm-s-paraiso-dark.CodeMirror {background: #2f1e2e; color: #b9b6b0;}
+.cm-s-paraiso-dark div.CodeMirror-selected {background: #41323f !important;}
+.cm-s-paraiso-dark .CodeMirror-gutters {background: #2f1e2e; border-right: 0px;}
+.cm-s-paraiso-dark .CodeMirror-linenumber {color: #776e71;}
+.cm-s-paraiso-dark .CodeMirror-cursor {border-left: 1px solid #8d8687 !important;}
+
+.cm-s-paraiso-dark span.cm-comment {color: #e96ba8;}
+.cm-s-paraiso-dark span.cm-atom {color: #815ba4;}
+.cm-s-paraiso-dark span.cm-number {color: #815ba4;}
+
+.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute {color: #48b685;}
+.cm-s-paraiso-dark span.cm-keyword {color: #ef6155;}
+.cm-s-paraiso-dark span.cm-string {color: #fec418;}
+
+.cm-s-paraiso-dark span.cm-variable {color: #48b685;}
+.cm-s-paraiso-dark span.cm-variable-2 {color: #06b6ef;}
+.cm-s-paraiso-dark span.cm-def {color: #f99b15;}
+.cm-s-paraiso-dark span.cm-bracket {color: #b9b6b0;}
+.cm-s-paraiso-dark span.cm-tag {color: #ef6155;}
+.cm-s-paraiso-dark span.cm-link {color: #815ba4;}
+.cm-s-paraiso-dark span.cm-error {background: #ef6155; color: #8d8687;}
+
+.cm-s-paraiso-dark .CodeMirror-activeline-background {background: #4D344A !important;}
+.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
diff --git a/applications/admin/static/codemirror/theme/paraiso-light.css b/applications/admin/static/codemirror/theme/paraiso-light.css
new file mode 100644
index 00000000..8afb14be
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/paraiso-light.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Paraíso (Light)
+ Author: Jan T. Sott
+
+ Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
+ Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+
+*/
+
+.cm-s-paraiso-light.CodeMirror {background: #e7e9db; color: #41323f;}
+.cm-s-paraiso-light div.CodeMirror-selected {background: #b9b6b0 !important;}
+.cm-s-paraiso-light .CodeMirror-gutters {background: #e7e9db; border-right: 0px;}
+.cm-s-paraiso-light .CodeMirror-linenumber {color: #8d8687;}
+.cm-s-paraiso-light .CodeMirror-cursor {border-left: 1px solid #776e71 !important;}
+
+.cm-s-paraiso-light span.cm-comment {color: #e96ba8;}
+.cm-s-paraiso-light span.cm-atom {color: #815ba4;}
+.cm-s-paraiso-light span.cm-number {color: #815ba4;}
+
+.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute {color: #48b685;}
+.cm-s-paraiso-light span.cm-keyword {color: #ef6155;}
+.cm-s-paraiso-light span.cm-string {color: #fec418;}
+
+.cm-s-paraiso-light span.cm-variable {color: #48b685;}
+.cm-s-paraiso-light span.cm-variable-2 {color: #06b6ef;}
+.cm-s-paraiso-light span.cm-def {color: #f99b15;}
+.cm-s-paraiso-light span.cm-bracket {color: #41323f;}
+.cm-s-paraiso-light span.cm-tag {color: #ef6155;}
+.cm-s-paraiso-light span.cm-link {color: #815ba4;}
+.cm-s-paraiso-light span.cm-error {background: #ef6155; color: #776e71;}
+
+.cm-s-paraiso-light .CodeMirror-activeline-background {background: #CFD1C4 !important;}
+.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
diff --git a/applications/admin/static/codemirror/theme/rubyblue.css b/applications/admin/static/codemirror/theme/rubyblue.css
index ed470f0e..b556139d 100644
--- a/applications/admin/static/codemirror/theme/rubyblue.css
+++ b/applications/admin/static/codemirror/theme/rubyblue.css
@@ -14,10 +14,10 @@
.cm-s-rubyblue span.cm-meta { color: #F0F; }
.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }
-.cm-s-rubyblue span.cm-error { color: #AF2018; }
.cm-s-rubyblue span.cm-bracket { color: #F0F; }
.cm-s-rubyblue span.cm-link { color: #F4C20B; }
.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
+.cm-s-rubyblue span.cm-error { color: #AF2018; }
.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;}
diff --git a/applications/admin/static/codemirror/theme/solarized.css b/applications/admin/static/codemirror/theme/solarized.css
index 1a87d2d8..af30d621 100644
--- a/applications/admin/static/codemirror/theme/solarized.css
+++ b/applications/admin/static/codemirror/theme/solarized.css
@@ -67,11 +67,6 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
.cm-s-solarized .cm-string-2 { color: #b58900; }
.cm-s-solarized .cm-meta { color: #859900; }
-.cm-s-solarized .cm-error,
-.cm-s-solarized .cm-invalidchar {
- color: #586e75;
- border-bottom: 1px dotted #dc322f;
-}
.cm-s-solarized .cm-qualifier { color: #b58900; }
.cm-s-solarized .cm-builtin { color: #d33682; }
.cm-s-solarized .cm-bracket { color: #cb4b16; }
@@ -98,6 +93,11 @@ http://ethanschoonover.com/solarized/img/solarized-palette.png
content: "➤"; /*visualize tab character*/
color: #586e75;
}
+.cm-s-solarized .cm-error,
+.cm-s-solarized .cm-invalidchar {
+ color: #586e75;
+ border-bottom: 1px dotted #dc322f;
+}
.cm-s-solarized.cm-s-dark .CodeMirror-selected {
background: #073642;
@@ -165,10 +165,10 @@ Active line. Negative margin compensates left padding of the text in the
view-port
*/
.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
- background: rgba(255, 255, 255, 0.05);
+ background: rgba(255, 255, 255, 0.10);
}
.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
- background: rgba(0, 0, 0, 0.05);
+ background: rgba(0, 0, 0, 0.10);
}
/*
diff --git a/applications/admin/static/codemirror/theme/the-matrix.css b/applications/admin/static/codemirror/theme/the-matrix.css
new file mode 100644
index 00000000..9e60b7b0
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/the-matrix.css
@@ -0,0 +1,26 @@
+.cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
+.cm-s-the-matrix span.CodeMirror-selected { background: #a8f !important; }
+.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
+.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
+.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00 !important; }
+
+.cm-s-the-matrix span.cm-keyword {color: #008803; font-weight: bold;}
+.cm-s-the-matrix span.cm-atom {color: #3FF;}
+.cm-s-the-matrix span.cm-number {color: #FFB94F;}
+.cm-s-the-matrix span.cm-def {color: #99C;}
+.cm-s-the-matrix span.cm-variable {color: #F6C;}
+.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}
+.cm-s-the-matrix span.cm-variable-3 {color: #96F;}
+.cm-s-the-matrix span.cm-property {color: #62FFA0;}
+.cm-s-the-matrix span.cm-operator {color: #999}
+.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}
+.cm-s-the-matrix span.cm-string {color: #39C;}
+.cm-s-the-matrix span.cm-meta {color: #C9F;}
+.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}
+.cm-s-the-matrix span.cm-builtin {color: #30a;}
+.cm-s-the-matrix span.cm-bracket {color: #cc7;}
+.cm-s-the-matrix span.cm-tag {color: #FFBD40;}
+.cm-s-the-matrix span.cm-attribute {color: #FFF700;}
+.cm-s-the-matrix span.cm-error {color: #FF0000;}
+
+.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}
diff --git a/applications/admin/static/codemirror/theme/tomorrow-night-eighties.css b/applications/admin/static/codemirror/theme/tomorrow-night-eighties.css
new file mode 100644
index 00000000..85c2a4a7
--- /dev/null
+++ b/applications/admin/static/codemirror/theme/tomorrow-night-eighties.css
@@ -0,0 +1,34 @@
+/*
+
+ Name: Tomorrow Night - Eighties
+ Author: Chris Kempson
+
+ CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
+ Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
+
+*/
+
+.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000; color: #CCCCCC;}
+.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D !important;}
+.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000; border-right: 0px;}
+.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}
+.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;}
+
+.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}
+.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}
+.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}
+
+.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}
+.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}
+.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}
+
+.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}
+.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}
+.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}
+.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}
+.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}
+.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}
+.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a; color: #6A6A6A;}
+
+.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600 !important;}
+.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
diff --git a/applications/admin/static/codemirror/theme/twilight.css b/applications/admin/static/codemirror/theme/twilight.css
index 0180b222..19d6abad 100644
--- a/applications/admin/static/codemirror/theme/twilight.css
+++ b/applications/admin/static/codemirror/theme/twilight.css
@@ -16,13 +16,13 @@
.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/
.cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/
.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/
-.cm-s-twilight .cm-error { border-bottom: 1px solid red; }
.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/
.cm-s-twilight .cm-tag { color: #997643; } /**/
.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/
.cm-s-twilight .cm-header { color: #FF6400; }
.cm-s-twilight .cm-hr { color: #AEAEAE; }
.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/
+.cm-s-twilight .cm-error { border-bottom: 1px solid red; }
.cm-s-twilight .CodeMirror-activeline-background {background: #27282E !important;}
.cm-s-twilight .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
diff --git a/applications/admin/static/codemirror/theme/vibrant-ink.css b/applications/admin/static/codemirror/theme/vibrant-ink.css
index fdf7430c..0206225b 100644
--- a/applications/admin/static/codemirror/theme/vibrant-ink.css
+++ b/applications/admin/static/codemirror/theme/vibrant-ink.css
@@ -18,13 +18,13 @@
.cm-s-vibrant-ink .cm-string { color: #A5C25C }
.cm-s-vibrant-ink .cm-string-2 { color: red }
.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
-.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-header { color: #FF6400; }
.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
.cm-s-vibrant-ink .cm-link { color: blue; }
+.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E !important;}
.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
diff --git a/applications/admin/static/codemirror/theme/xq-dark.css b/applications/admin/static/codemirror/theme/xq-dark.css
index e493d324..4a0b2138 100644
--- a/applications/admin/static/codemirror/theme/xq-dark.css
+++ b/applications/admin/static/codemirror/theme/xq-dark.css
@@ -38,12 +38,12 @@ THE SOFTWARE.
.cm-s-xq-dark span.cm-comment {color: gray;}
.cm-s-xq-dark span.cm-string {color: #9FEE00;}
.cm-s-xq-dark span.cm-meta {color: yellow;}
-.cm-s-xq-dark span.cm-error {color: #f00;}
.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}
.cm-s-xq-dark span.cm-builtin {color: #30a;}
.cm-s-xq-dark span.cm-bracket {color: #cc7;}
.cm-s-xq-dark span.cm-tag {color: #FFBD40;}
.cm-s-xq-dark span.cm-attribute {color: #FFF700;}
+.cm-s-xq-dark span.cm-error {color: #f00;}
.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E !important;}
.cm-s-xq-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}
\ No newline at end of file
diff --git a/applications/admin/static/codemirror/theme/xq-light.css b/applications/admin/static/codemirror/theme/xq-light.css
index 8cd815d2..20b5c796 100644
--- a/applications/admin/static/codemirror/theme/xq-light.css
+++ b/applications/admin/static/codemirror/theme/xq-light.css
@@ -32,12 +32,12 @@ THE SOFTWARE.
.cm-s-xq-light span.cm-comment {color: #0080FF; font-style: italic;}
.cm-s-xq-light span.cm-string {color: red;}
.cm-s-xq-light span.cm-meta {color: yellow;}
-.cm-s-xq-light span.cm-error {color: #f00;}
.cm-s-xq-light span.cm-qualifier {color: grey}
.cm-s-xq-light span.cm-builtin {color: #7EA656;}
.cm-s-xq-light span.cm-bracket {color: #cc7;}
.cm-s-xq-light span.cm-tag {color: #3F7F7F;}
.cm-s-xq-light span.cm-attribute {color: #7F007F;}
+.cm-s-xq-light span.cm-error {color: #f00;}
.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff !important;}
.cm-s-xq-light .CodeMirror-matchingbracket {outline:1px solid grey;color:black !important;background:yellow;}
\ No newline at end of file