Run codemirror update script
This commit is contained in:
parent
aab29a809a
commit
ebdedbe040
|
@ -494,17 +494,21 @@ onDOMscriptReady('/codemirror.js').then(() => {
|
|||
'blackboard',
|
||||
'cobalt',
|
||||
'colorforth',
|
||||
'darcula',
|
||||
'dracula',
|
||||
'duotone-dark',
|
||||
'duotone-light',
|
||||
'eclipse',
|
||||
'elegant',
|
||||
'erlang-dark',
|
||||
'gruvbox-dark',
|
||||
'hopscotch',
|
||||
'icecoder',
|
||||
'idea',
|
||||
'isotope',
|
||||
'lesser-dark',
|
||||
'liquibyte',
|
||||
'lucario',
|
||||
'material',
|
||||
'mbo',
|
||||
'mdn-like',
|
||||
|
@ -523,6 +527,7 @@ onDOMscriptReady('/codemirror.js').then(() => {
|
|||
'seti',
|
||||
'shadowfox',
|
||||
'solarized',
|
||||
'ssms',
|
||||
'the-matrix',
|
||||
'tomorrow-night-bright',
|
||||
'tomorrow-night-eighties',
|
||||
|
|
2
vendor/codemirror/README.md
vendored
2
vendor/codemirror/README.md
vendored
|
@ -1,4 +1,4 @@
|
|||
## v0.0.0
|
||||
## v5.39.0
|
||||
|
||||
List of essential folders & files copied from `node_modules/codemirror` to `vendor/codemirror`:
|
||||
|
||||
|
|
4
vendor/codemirror/addon/dialog/dialog.js
vendored
4
vendor/codemirror/addon/dialog/dialog.js
vendored
|
@ -25,6 +25,7 @@
|
|||
} else { // Assuming it's a detached DOM element.
|
||||
dialog.appendChild(template);
|
||||
}
|
||||
CodeMirror.addClass(wrap, 'dialog-opened');
|
||||
return dialog;
|
||||
}
|
||||
|
||||
|
@ -47,6 +48,7 @@
|
|||
} else {
|
||||
if (closed) return;
|
||||
closed = true;
|
||||
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
||||
dialog.parentNode.removeChild(dialog);
|
||||
me.focus();
|
||||
|
||||
|
@ -102,6 +104,7 @@
|
|||
function close() {
|
||||
if (closed) return;
|
||||
closed = true;
|
||||
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
||||
dialog.parentNode.removeChild(dialog);
|
||||
me.focus();
|
||||
}
|
||||
|
@ -141,6 +144,7 @@
|
|||
if (closed) return;
|
||||
closed = true;
|
||||
clearTimeout(doneTimer);
|
||||
CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
|
||||
dialog.parentNode.removeChild(dialog);
|
||||
}
|
||||
|
||||
|
|
13
vendor/codemirror/addon/hint/show-hint.js
vendored
13
vendor/codemirror/addon/hint/show-hint.js
vendored
|
@ -333,7 +333,7 @@
|
|||
i = avoidWrap ? 0 : this.data.list.length - 1;
|
||||
if (this.selectedHint == i) return;
|
||||
var node = this.hints.childNodes[this.selectedHint];
|
||||
node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, "");
|
||||
if (node) node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, "");
|
||||
node = this.hints.childNodes[this.selectedHint = i];
|
||||
node.className += " " + ACTIVE_HINT_ELEMENT_CLASS;
|
||||
if (node.offsetTop < this.hints.scrollTop)
|
||||
|
@ -397,12 +397,13 @@
|
|||
});
|
||||
|
||||
CodeMirror.registerHelper("hint", "fromList", function(cm, options) {
|
||||
var cur = cm.getCursor(), token = cm.getTokenAt(cur);
|
||||
var to = CodeMirror.Pos(cur.line, token.end);
|
||||
if (token.string && /\w/.test(token.string[token.string.length - 1])) {
|
||||
var term = token.string, from = CodeMirror.Pos(cur.line, token.start);
|
||||
var cur = cm.getCursor(), token = cm.getTokenAt(cur)
|
||||
var term, from = CodeMirror.Pos(cur.line, token.start), to = cur
|
||||
if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) {
|
||||
term = token.string.substr(0, cur.ch - token.start)
|
||||
} else {
|
||||
var term = "", from = to;
|
||||
term = ""
|
||||
from = cur
|
||||
}
|
||||
var found = [];
|
||||
for (var i = 0; i < options.words.length; i++) {
|
||||
|
|
3
vendor/codemirror/addon/lint/json-lint.js
vendored
3
vendor/codemirror/addon/lint/json-lint.js
vendored
|
@ -23,6 +23,9 @@ CodeMirror.registerHelper("lint", "json", function(text) {
|
|||
}
|
||||
return found;
|
||||
}
|
||||
// for jsonlint's web dist jsonlint is exported as an object with a single property parser, of which parseError
|
||||
// is a subproperty
|
||||
var jsonlint = window.jsonlint.parser || window.jsonlint
|
||||
jsonlint.parseError = function(str, hash) {
|
||||
var loc = hash.loc;
|
||||
found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
|
||||
|
|
1
vendor/codemirror/keymap/emacs.js
vendored
1
vendor/codemirror/keymap/emacs.js
vendored
|
@ -307,6 +307,7 @@
|
|||
"Backspace": function(cm) { killRegion(cm, false) || killTo(cm, byChar, -1, false); },
|
||||
|
||||
"Alt-F": move(byWord, 1), "Alt-B": move(byWord, -1),
|
||||
"Alt-Right": move(byWord, 1), "Alt-Left": move(byWord, -1),
|
||||
"Alt-D": function(cm) { killTo(cm, byWord, 1, "grow"); },
|
||||
"Alt-Backspace": function(cm) { killTo(cm, byWord, -1, "grow"); },
|
||||
|
||||
|
|
188
vendor/codemirror/keymap/vim.js
vendored
188
vendor/codemirror/keymap/vim.js
vendored
|
@ -93,6 +93,8 @@
|
|||
{ keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},
|
||||
{ keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},
|
||||
{ keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},
|
||||
{ keys: '(', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: false }},
|
||||
{ keys: ')', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: true }},
|
||||
{ keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},
|
||||
{ keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},
|
||||
{ keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},
|
||||
|
@ -423,6 +425,9 @@
|
|||
function isWhiteSpaceString(k) {
|
||||
return (/^\s*$/).test(k);
|
||||
}
|
||||
function isEndOfSentenceSymbol(k) {
|
||||
return '.?!'.indexOf(k) != -1;
|
||||
}
|
||||
function inArray(val, arr) {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (arr[i] == val) {
|
||||
|
@ -866,7 +871,7 @@
|
|||
if (vim.insertMode) { command = handleKeyInsertMode(); }
|
||||
else { command = handleKeyNonInsertMode(); }
|
||||
if (command === false) {
|
||||
return undefined;
|
||||
return !vim.insertMode && key.length === 1 ? function() { return true; } : undefined;
|
||||
} else if (command === true) {
|
||||
// TODO: Look into using CodeMirror's multi-key handling.
|
||||
// Return no-op since we are caching the key. Counts as handled, but
|
||||
|
@ -1811,6 +1816,10 @@
|
|||
var dir = motionArgs.forward ? 1 : -1;
|
||||
return findParagraph(cm, head, motionArgs.repeat, dir);
|
||||
},
|
||||
moveBySentence: function(cm, head, motionArgs) {
|
||||
var dir = motionArgs.forward ? 1 : -1;
|
||||
return findSentence(cm, head, motionArgs.repeat, dir);
|
||||
},
|
||||
moveByScroll: function(cm, head, motionArgs, vim) {
|
||||
var scrollbox = cm.getScrollInfo();
|
||||
var curEnd = null;
|
||||
|
@ -3534,6 +3543,179 @@
|
|||
return { start: start, end: end };
|
||||
}
|
||||
|
||||
function findSentence(cm, cur, repeat, dir) {
|
||||
|
||||
/*
|
||||
Takes an index object
|
||||
{
|
||||
line: the line string,
|
||||
ln: line number,
|
||||
pos: index in line,
|
||||
dir: direction of traversal (-1 or 1)
|
||||
}
|
||||
and modifies the line, ln, and pos members to represent the
|
||||
next valid position or sets them to null if there are
|
||||
no more valid positions.
|
||||
*/
|
||||
function nextChar(cm, idx) {
|
||||
if (idx.pos + idx.dir < 0 || idx.pos + idx.dir >= idx.line.length) {
|
||||
idx.ln += idx.dir;
|
||||
if (!isLine(cm, idx.ln)) {
|
||||
idx.line = null;
|
||||
idx.ln = null;
|
||||
idx.pos = null;
|
||||
return;
|
||||
}
|
||||
idx.line = cm.getLine(idx.ln);
|
||||
idx.pos = (idx.dir > 0) ? 0 : idx.line.length - 1;
|
||||
}
|
||||
else {
|
||||
idx.pos += idx.dir;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Performs one iteration of traversal in forward direction
|
||||
Returns an index object of the new location
|
||||
*/
|
||||
function forward(cm, ln, pos, dir) {
|
||||
var line = cm.getLine(ln);
|
||||
var stop = (line === "");
|
||||
|
||||
var curr = {
|
||||
line: line,
|
||||
ln: ln,
|
||||
pos: pos,
|
||||
dir: dir,
|
||||
}
|
||||
|
||||
var last_valid = {
|
||||
ln: curr.ln,
|
||||
pos: curr.pos,
|
||||
}
|
||||
|
||||
var skip_empty_lines = (curr.line === "");
|
||||
|
||||
// Move one step to skip character we start on
|
||||
nextChar(cm, curr);
|
||||
|
||||
while (curr.line !== null) {
|
||||
last_valid.ln = curr.ln;
|
||||
last_valid.pos = curr.pos;
|
||||
|
||||
if (curr.line === "" && !skip_empty_lines) {
|
||||
return { ln: curr.ln, pos: curr.pos, };
|
||||
}
|
||||
else if (stop && curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
|
||||
return { ln: curr.ln, pos: curr.pos, };
|
||||
}
|
||||
else if (isEndOfSentenceSymbol(curr.line[curr.pos])
|
||||
&& !stop
|
||||
&& (curr.pos === curr.line.length - 1
|
||||
|| isWhiteSpaceString(curr.line[curr.pos + 1]))) {
|
||||
stop = true;
|
||||
}
|
||||
|
||||
nextChar(cm, curr);
|
||||
}
|
||||
|
||||
/*
|
||||
Set the position to the last non whitespace character on the last
|
||||
valid line in the case that we reach the end of the document.
|
||||
*/
|
||||
var line = cm.getLine(last_valid.ln);
|
||||
last_valid.pos = 0;
|
||||
for(var i = line.length - 1; i >= 0; --i) {
|
||||
if (!isWhiteSpaceString(line[i])) {
|
||||
last_valid.pos = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return last_valid;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
Performs one iteration of traversal in reverse direction
|
||||
Returns an index object of the new location
|
||||
*/
|
||||
function reverse(cm, ln, pos, dir) {
|
||||
var line = cm.getLine(ln);
|
||||
|
||||
var curr = {
|
||||
line: line,
|
||||
ln: ln,
|
||||
pos: pos,
|
||||
dir: dir,
|
||||
}
|
||||
|
||||
var last_valid = {
|
||||
ln: curr.ln,
|
||||
pos: null,
|
||||
};
|
||||
|
||||
var skip_empty_lines = (curr.line === "");
|
||||
|
||||
// Move one step to skip character we start on
|
||||
nextChar(cm, curr);
|
||||
|
||||
while (curr.line !== null) {
|
||||
|
||||
if (curr.line === "" && !skip_empty_lines) {
|
||||
if (last_valid.pos !== null) {
|
||||
return last_valid;
|
||||
}
|
||||
else {
|
||||
return { ln: curr.ln, pos: curr.pos };
|
||||
}
|
||||
}
|
||||
else if (isEndOfSentenceSymbol(curr.line[curr.pos])
|
||||
&& last_valid.pos !== null
|
||||
&& !(curr.ln === last_valid.ln && curr.pos + 1 === last_valid.pos)) {
|
||||
return last_valid;
|
||||
}
|
||||
else if (curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
|
||||
skip_empty_lines = false;
|
||||
last_valid = { ln: curr.ln, pos: curr.pos }
|
||||
}
|
||||
|
||||
nextChar(cm, curr);
|
||||
}
|
||||
|
||||
/*
|
||||
Set the position to the first non whitespace character on the last
|
||||
valid line in the case that we reach the beginning of the document.
|
||||
*/
|
||||
var line = cm.getLine(last_valid.ln);
|
||||
last_valid.pos = 0;
|
||||
for(var i = 0; i < line.length; ++i) {
|
||||
if (!isWhiteSpaceString(line[i])) {
|
||||
last_valid.pos = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return last_valid;
|
||||
}
|
||||
|
||||
var curr_index = {
|
||||
ln: cur.line,
|
||||
pos: cur.ch,
|
||||
};
|
||||
|
||||
while (repeat > 0) {
|
||||
if (dir < 0) {
|
||||
curr_index = reverse(cm, curr_index.ln, curr_index.pos, dir);
|
||||
}
|
||||
else {
|
||||
curr_index = forward(cm, curr_index.ln, curr_index.pos, dir);
|
||||
}
|
||||
repeat--;
|
||||
}
|
||||
|
||||
return Pos(curr_index.ln, curr_index.pos);
|
||||
}
|
||||
|
||||
// TODO: perhaps this finagling of start and end positions belonds
|
||||
// in codemirror/replaceRange?
|
||||
function selectCompanionObject(cm, head, symb, inclusive) {
|
||||
|
@ -3552,8 +3734,8 @@
|
|||
// cursor is on a matching open bracket.
|
||||
var offset = curChar === openSym ? 1 : 0;
|
||||
|
||||
start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, null, {'bracketRegex': bracketRegexp});
|
||||
end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, null, {'bracketRegex': bracketRegexp});
|
||||
start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});
|
||||
end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});
|
||||
|
||||
if (!start || !end) {
|
||||
return { start: cur, end: cur };
|
||||
|
|
7491
vendor/codemirror/lib/codemirror.js
vendored
7491
vendor/codemirror/lib/codemirror.js
vendored
File diff suppressed because it is too large
Load Diff
107
vendor/codemirror/mode/javascript/javascript.js
vendored
107
vendor/codemirror/mode/javascript/javascript.js
vendored
|
@ -75,17 +75,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
return ret(ch);
|
||||
} else if (ch == "=" && stream.eat(">")) {
|
||||
return ret("=>", "operator");
|
||||
} else if (ch == "0" && stream.eat(/x/i)) {
|
||||
stream.eatWhile(/[\da-f]/i);
|
||||
return ret("number", "number");
|
||||
} else if (ch == "0" && stream.eat(/o/i)) {
|
||||
stream.eatWhile(/[0-7]/i);
|
||||
return ret("number", "number");
|
||||
} else if (ch == "0" && stream.eat(/b/i)) {
|
||||
stream.eatWhile(/[01]/i);
|
||||
} else if (ch == "0" && stream.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i)) {
|
||||
return ret("number", "number");
|
||||
} else if (/\d/.test(ch)) {
|
||||
stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
|
||||
stream.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/);
|
||||
return ret("number", "number");
|
||||
} else if (ch == "/") {
|
||||
if (stream.eat("*")) {
|
||||
|
@ -96,7 +89,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
return ret("comment", "comment");
|
||||
} else if (expressionAllowed(stream, state, 1)) {
|
||||
readRegexp(stream);
|
||||
stream.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);
|
||||
stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);
|
||||
return ret("regexp", "string-2");
|
||||
} else {
|
||||
stream.eat("=");
|
||||
|
@ -126,7 +119,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
var kw = keywords[word]
|
||||
return ret(kw.type, kw.style, word)
|
||||
}
|
||||
if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\(\w]/, false))
|
||||
if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false))
|
||||
return ret("async", "keyword", word)
|
||||
}
|
||||
return ret("variable", "variable", word)
|
||||
|
@ -265,21 +258,42 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
pass.apply(null, arguments);
|
||||
return true;
|
||||
}
|
||||
function inList(name, list) {
|
||||
for (var v = list; v; v = v.next) if (v.name == name) return true
|
||||
return false;
|
||||
}
|
||||
function register(varname) {
|
||||
function inList(list) {
|
||||
for (var v = list; v; v = v.next)
|
||||
if (v.name == varname) return true;
|
||||
return false;
|
||||
}
|
||||
var state = cx.state;
|
||||
cx.marked = "def";
|
||||
if (state.context) {
|
||||
if (inList(state.localVars)) return;
|
||||
state.localVars = {name: varname, next: state.localVars};
|
||||
if (state.lexical.info == "var" && state.context && state.context.block) {
|
||||
// FIXME function decls are also not block scoped
|
||||
var newContext = registerVarScoped(varname, state.context)
|
||||
if (newContext != null) {
|
||||
state.context = newContext
|
||||
return
|
||||
}
|
||||
} else if (!inList(varname, state.localVars)) {
|
||||
state.localVars = new Var(varname, state.localVars)
|
||||
return
|
||||
}
|
||||
}
|
||||
// Fall through means this is global
|
||||
if (parserConfig.globalVars && !inList(varname, state.globalVars))
|
||||
state.globalVars = new Var(varname, state.globalVars)
|
||||
}
|
||||
function registerVarScoped(varname, context) {
|
||||
if (!context) {
|
||||
return null
|
||||
} else if (context.block) {
|
||||
var inner = registerVarScoped(varname, context.prev)
|
||||
if (!inner) return null
|
||||
if (inner == context.prev) return context
|
||||
return new Context(inner, context.vars, true)
|
||||
} else if (inList(varname, context.vars)) {
|
||||
return context
|
||||
} else {
|
||||
if (inList(state.globalVars)) return;
|
||||
if (parserConfig.globalVars)
|
||||
state.globalVars = {name: varname, next: state.globalVars};
|
||||
return new Context(context.prev, new Var(varname, context.vars), false)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -289,15 +303,23 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
|
||||
// Combinators
|
||||
|
||||
var defaultVars = {name: "this", next: {name: "arguments"}};
|
||||
function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }
|
||||
function Var(name, next) { this.name = name; this.next = next }
|
||||
|
||||
var defaultVars = new Var("this", new Var("arguments", null))
|
||||
function pushcontext() {
|
||||
cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
|
||||
cx.state.localVars = defaultVars;
|
||||
cx.state.context = new Context(cx.state.context, cx.state.localVars, false)
|
||||
cx.state.localVars = defaultVars
|
||||
}
|
||||
function pushblockcontext() {
|
||||
cx.state.context = new Context(cx.state.context, cx.state.localVars, true)
|
||||
cx.state.localVars = null
|
||||
}
|
||||
function popcontext() {
|
||||
cx.state.localVars = cx.state.context.vars;
|
||||
cx.state.context = cx.state.context.prev;
|
||||
cx.state.localVars = cx.state.context.vars
|
||||
cx.state.context = cx.state.context.prev
|
||||
}
|
||||
popcontext.lex = true
|
||||
function pushlex(type, info) {
|
||||
var result = function() {
|
||||
var state = cx.state, indent = state.indented;
|
||||
|
@ -322,19 +344,19 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
function expect(wanted) {
|
||||
function exp(type) {
|
||||
if (type == wanted) return cont();
|
||||
else if (wanted == ";") return pass();
|
||||
else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass();
|
||||
else return cont(exp);
|
||||
};
|
||||
return exp;
|
||||
}
|
||||
|
||||
function statement(type, value) {
|
||||
if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex);
|
||||
if (type == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex);
|
||||
if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
|
||||
if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
|
||||
if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex);
|
||||
if (type == "debugger") return cont(expect(";"));
|
||||
if (type == "{") return cont(pushlex("}"), block, poplex);
|
||||
if (type == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext);
|
||||
if (type == ";") return cont();
|
||||
if (type == "if") {
|
||||
if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
|
||||
|
@ -356,22 +378,27 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
} else if (isTS && value == "namespace") {
|
||||
cx.marked = "keyword"
|
||||
return cont(pushlex("form"), expression, block, poplex)
|
||||
} else if (isTS && value == "abstract") {
|
||||
cx.marked = "keyword"
|
||||
return cont(statement)
|
||||
} else {
|
||||
return cont(pushlex("stat"), maybelabel);
|
||||
}
|
||||
}
|
||||
if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"),
|
||||
block, poplex, poplex);
|
||||
if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext,
|
||||
block, poplex, poplex, popcontext);
|
||||
if (type == "case") return cont(expression, expect(":"));
|
||||
if (type == "default") return cont(expect(":"));
|
||||
if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
|
||||
statement, poplex, popcontext);
|
||||
if (type == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);
|
||||
if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
|
||||
if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
|
||||
if (type == "async") return cont(statement)
|
||||
if (value == "@") return cont(expression, statement)
|
||||
return pass(pushlex("stat"), expression, expect(";"), poplex);
|
||||
}
|
||||
function maybeCatchBinding(type) {
|
||||
if (type == "(") return cont(funarg, expect(")"))
|
||||
}
|
||||
function expression(type, value) {
|
||||
return expressionInner(type, value, false);
|
||||
}
|
||||
|
@ -562,7 +589,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
function typeexpr(type, value) {
|
||||
if (value == "keyof" || value == "typeof") {
|
||||
cx.marked = "keyword"
|
||||
return cont(value == "keyof" ? typeexpr : expression)
|
||||
return cont(value == "keyof" ? typeexpr : expressionNoComma)
|
||||
}
|
||||
if (type == "variable" || value == "void") {
|
||||
cx.marked = "type"
|
||||
|
@ -572,6 +599,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
|
||||
if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
|
||||
if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
|
||||
if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr)
|
||||
}
|
||||
function maybeReturnType(type) {
|
||||
if (type == "=>") return cont(typeexpr)
|
||||
|
@ -588,9 +616,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
return cont(expression, maybetype, expect("]"), typeprop)
|
||||
}
|
||||
}
|
||||
function typearg(type) {
|
||||
if (type == "variable") return cont(typearg)
|
||||
else if (type == ":") return cont(typeexpr)
|
||||
function typearg(type, value) {
|
||||
if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg)
|
||||
if (type == ":") return cont(typeexpr)
|
||||
return pass(typeexpr)
|
||||
}
|
||||
function afterType(type, value) {
|
||||
if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
|
||||
|
@ -778,7 +807,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
cc: [],
|
||||
lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
|
||||
localVars: parserConfig.localVars,
|
||||
context: parserConfig.localVars && {vars: parserConfig.localVars},
|
||||
context: parserConfig.localVars && new Context(null, null, false),
|
||||
indented: basecolumn || 0
|
||||
};
|
||||
if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
|
||||
|
@ -819,7 +848,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||
lexical = lexical.prev;
|
||||
var type = lexical.type, closing = firstChar == type;
|
||||
|
||||
if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0);
|
||||
if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);
|
||||
else if (type == "form" && firstChar == "{") return lexical.indented;
|
||||
else if (type == "form") return lexical.indented + indentUnit;
|
||||
else if (type == "stat")
|
||||
|
|
46
vendor/codemirror/theme/darcula.css
vendored
Normal file
46
vendor/codemirror/theme/darcula.css
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
Name: IntelliJ IDEA darcula theme
|
||||
From IntelliJ IDEA by JetBrains
|
||||
*/
|
||||
|
||||
.cm-s-darcula span.cm-meta { color: #BBB529; }
|
||||
.cm-s-darcula span.cm-number { color: #6897BB; }
|
||||
.cm-s-darcula span.cm-keyword { line-height: 1em; font-weight: bold; color: #CC7832; }
|
||||
.cm-s-darcula span.cm-def { color: #FFC66D; }
|
||||
.cm-s-darcula span.cm-variable { color: #A9B7C6; }
|
||||
.cm-s-darcula span.cm-variable-2 { color: #A9B7C6; }
|
||||
.cm-s-darcula span.cm-variable-3, .cm-s-darcula span.cm-type { color: #A9B7C6; }
|
||||
.cm-s-darcula span.cm-property { color: #A9B7C6; }
|
||||
.cm-s-darcula span.cm-operator { color: #A9B7C6; }
|
||||
.cm-s-darcula span.cm-string { color: #6A8759; }
|
||||
.cm-s-darcula span.cm-string-2 { color: #6A8759; }
|
||||
.cm-s-darcula span.cm-comment { color: #808080; }
|
||||
.cm-s-darcula span.cm-link { color: #287BDE; }
|
||||
.cm-s-darcula span.cm-atom { font-weight: bold; color: #CC7832; }
|
||||
.cm-s-darcula span.cm-error { color: #BC3F3C; }
|
||||
.cm-s-darcula span.cm-tag { color: #CC7832; }
|
||||
.cm-s-darcula span.cm-attribute { color: #6A8759; }
|
||||
.cm-s-darcula span.cm-qualifier { color: #6A8759; }
|
||||
.cm-s-darcula span.cm-bracket { color: #A9B7C6; }
|
||||
.cm-s-darcula.CodeMirror { background: #2B2B2B; color: #A9B7C6; }
|
||||
|
||||
|
||||
.cm-s-darcula .CodeMirror-cursor { border-left: 1px solid #dddddd; }
|
||||
.cm-s-darcula .CodeMirror-activeline-background { background: #3A3A3A; }
|
||||
.cm-s-darcula div.CodeMirror-selected { background: #085a9c; }
|
||||
.cm-s-darcula .CodeMirror-gutters { background: rgb(72, 72, 72); border-right: 1px solid grey; color: #606366 }
|
||||
|
||||
.cm-s-darcula span.cm-builtin { color: #A9B7C6; }
|
||||
.cm-s-darcula { font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}
|
||||
.cm-s-darcula .CodeMirror-matchingbracket { outline:1px solid #A9B7C6; color: yellow !important; }
|
||||
|
||||
.CodeMirror-hints {
|
||||
font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
color: #9c9e9e;
|
||||
background-color: #3b3e3f !important;
|
||||
}
|
||||
|
||||
.CodeMirror-hint-active {
|
||||
background-color: #494d4e !important;
|
||||
color: #9c9e9e !important;
|
||||
}
|
34
vendor/codemirror/theme/gruvbox-dark.css
vendored
Normal file
34
vendor/codemirror/theme/gruvbox-dark.css
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
|
||||
Name: gruvbox-dark
|
||||
Author: kRkk (https://github.com/krkk)
|
||||
|
||||
Original gruvbox color scheme by Pavel Pertsev (https://github.com/morhetz/gruvbox)
|
||||
|
||||
*/
|
||||
|
||||
.cm-s-gruvbox-dark.CodeMirror, .cm-s-gruvbox-dark .CodeMirror-gutters { background-color: #282828; color: #bdae93; }
|
||||
.cm-s-gruvbox-dark .CodeMirror-gutters {background: #282828; border-right: 0px;}
|
||||
.cm-s-gruvbox-dark .CodeMirror-linenumber {color: #7c6f64;}
|
||||
.cm-s-gruvbox-dark .CodeMirror-cursor { border-left: 1px solid #ebdbb2; }
|
||||
.cm-s-gruvbox-dark div.CodeMirror-selected { background: #928374; }
|
||||
.cm-s-gruvbox-dark span.cm-meta { color: #808000; }
|
||||
|
||||
.cm-s-gruvbox-dark span.cm-comment { color: #928374; }
|
||||
.cm-s-gruvbox-dark span.cm-number, span.cm-atom { color: #d3869b; }
|
||||
.cm-s-gruvbox-dark span.cm-keyword { color: #f84934; }
|
||||
|
||||
.cm-s-gruvbox-dark span.cm-variable { color: #ebdbb2; }
|
||||
.cm-s-gruvbox-dark span.cm-variable-2 { color: #ebdbb2; }
|
||||
.cm-s-gruvbox-dark span.cm-variable-3, .cm-s-gruvbox-dark span.cm-type { color: black; }
|
||||
.cm-s-gruvbox-dark span.cm-operator { color: #ebdbb2; }
|
||||
.cm-s-gruvbox-dark span.cm-def { color: #ebdbb2; }
|
||||
.cm-s-gruvbox-dark span.cm-string { color: #b8bb26; }
|
||||
.cm-s-gruvbox-dark span.cm-string-2 { color: #8ec07c; }
|
||||
.cm-s-gruvbox-dark span.cm-qualifier { color: #555; }
|
||||
.cm-s-gruvbox-dark span.cm-attribute { color: #8ec07c; }
|
||||
|
||||
.cm-s-gruvbox-dark .CodeMirror-activeline-background { background: #3c3836; }
|
||||
.cm-s-gruvbox-dark .CodeMirror-matchingbracket { background: #928374; color:#282828 !important; }
|
||||
|
||||
.cm-s-gruvbox-dark span.cm-builtin { color: #fe8019; }
|
42
vendor/codemirror/theme/idea.css
vendored
Normal file
42
vendor/codemirror/theme/idea.css
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
/**
|
||||
Name: IDEA default theme
|
||||
From IntelliJ IDEA by JetBrains
|
||||
*/
|
||||
|
||||
.cm-s-idea span.cm-meta { color: #808000; }
|
||||
.cm-s-idea span.cm-number { color: #0000FF; }
|
||||
.cm-s-idea span.cm-keyword { line-height: 1em; font-weight: bold; color: #000080; }
|
||||
.cm-s-idea span.cm-atom { font-weight: bold; color: #000080; }
|
||||
.cm-s-idea span.cm-def { color: #000000; }
|
||||
.cm-s-idea span.cm-variable { color: black; }
|
||||
.cm-s-idea span.cm-variable-2 { color: black; }
|
||||
.cm-s-idea span.cm-variable-3, .cm-s-idea span.cm-type { color: black; }
|
||||
.cm-s-idea span.cm-property { color: black; }
|
||||
.cm-s-idea span.cm-operator { color: black; }
|
||||
.cm-s-idea span.cm-comment { color: #808080; }
|
||||
.cm-s-idea span.cm-string { color: #008000; }
|
||||
.cm-s-idea span.cm-string-2 { color: #008000; }
|
||||
.cm-s-idea span.cm-qualifier { color: #555; }
|
||||
.cm-s-idea span.cm-error { color: #FF0000; }
|
||||
.cm-s-idea span.cm-attribute { color: #0000FF; }
|
||||
.cm-s-idea span.cm-tag { color: #000080; }
|
||||
.cm-s-idea span.cm-link { color: #0000FF; }
|
||||
.cm-s-idea .CodeMirror-activeline-background { background: #FFFAE3; }
|
||||
|
||||
.cm-s-idea span.cm-builtin { color: #30a; }
|
||||
.cm-s-idea span.cm-bracket { color: #cc7; }
|
||||
.cm-s-idea { font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}
|
||||
|
||||
|
||||
.cm-s-idea .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
|
||||
|
||||
.CodeMirror-hints {
|
||||
font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
|
||||
color: #616569;
|
||||
background-color: #ebf3fd !important;
|
||||
}
|
||||
|
||||
.CodeMirror-hint-active {
|
||||
background-color: #a2b8c9 !important;
|
||||
color: #5c6065 !important;
|
||||
}
|
2
vendor/codemirror/theme/lesser-dark.css
vendored
2
vendor/codemirror/theme/lesser-dark.css
vendored
|
@ -38,7 +38,7 @@ Ported to CodeMirror by Peter Kroon
|
|||
.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
|
||||
.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
|
||||
.cm-s-lesser-dark span.cm-tag { color: #669199; }
|
||||
.cm-s-lesser-dark span.cm-attribute { color: #00c; }
|
||||
.cm-s-lesser-dark span.cm-attribute { color: #81a4d5; }
|
||||
.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; }
|
||||
|
|
37
vendor/codemirror/theme/lucario.css
vendored
Normal file
37
vendor/codemirror/theme/lucario.css
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
Name: lucario
|
||||
Author: Raphael Amorim
|
||||
|
||||
Original Lucario color scheme (https://github.com/raphamorim/lucario)
|
||||
*/
|
||||
|
||||
.cm-s-lucario.CodeMirror, .cm-s-lucario .CodeMirror-gutters {
|
||||
background-color: #2b3e50 !important;
|
||||
color: #f8f8f2 !important;
|
||||
border: none;
|
||||
}
|
||||
.cm-s-lucario .CodeMirror-gutters { color: #2b3e50; }
|
||||
.cm-s-lucario .CodeMirror-cursor { border-left: solid thin #E6C845; }
|
||||
.cm-s-lucario .CodeMirror-linenumber { color: #f8f8f2; }
|
||||
.cm-s-lucario .CodeMirror-selected { background: #243443; }
|
||||
.cm-s-lucario .CodeMirror-line::selection, .cm-s-lucario .CodeMirror-line > span::selection, .cm-s-lucario .CodeMirror-line > span > span::selection { background: #243443; }
|
||||
.cm-s-lucario .CodeMirror-line::-moz-selection, .cm-s-lucario .CodeMirror-line > span::-moz-selection, .cm-s-lucario .CodeMirror-line > span > span::-moz-selection { background: #243443; }
|
||||
.cm-s-lucario span.cm-comment { color: #5c98cd; }
|
||||
.cm-s-lucario span.cm-string, .cm-s-lucario span.cm-string-2 { color: #E6DB74; }
|
||||
.cm-s-lucario span.cm-number { color: #ca94ff; }
|
||||
.cm-s-lucario span.cm-variable { color: #f8f8f2; }
|
||||
.cm-s-lucario span.cm-variable-2 { color: #f8f8f2; }
|
||||
.cm-s-lucario span.cm-def { color: #72C05D; }
|
||||
.cm-s-lucario span.cm-operator { color: #66D9EF; }
|
||||
.cm-s-lucario span.cm-keyword { color: #ff6541; }
|
||||
.cm-s-lucario span.cm-atom { color: #bd93f9; }
|
||||
.cm-s-lucario span.cm-meta { color: #f8f8f2; }
|
||||
.cm-s-lucario span.cm-tag { color: #ff6541; }
|
||||
.cm-s-lucario span.cm-attribute { color: #66D9EF; }
|
||||
.cm-s-lucario span.cm-qualifier { color: #72C05D; }
|
||||
.cm-s-lucario span.cm-property { color: #f8f8f2; }
|
||||
.cm-s-lucario span.cm-builtin { color: #72C05D; }
|
||||
.cm-s-lucario span.cm-variable-3, .cm-s-lucario span.cm-type { color: #ffb86c; }
|
||||
|
||||
.cm-s-lucario .CodeMirror-activeline-background { background: #243443; }
|
||||
.cm-s-lucario .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
|
5
vendor/codemirror/theme/monokai.css
vendored
5
vendor/codemirror/theme/monokai.css
vendored
|
@ -14,6 +14,11 @@
|
|||
.cm-s-monokai span.cm-atom { color: #ae81ff; }
|
||||
.cm-s-monokai span.cm-number { color: #ae81ff; }
|
||||
|
||||
.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }
|
||||
.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }
|
||||
.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }
|
||||
.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }
|
||||
|
||||
.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }
|
||||
.cm-s-monokai span.cm-keyword { color: #f92672; }
|
||||
.cm-s-monokai span.cm-builtin { color: #66d9ef; }
|
||||
|
|
16
vendor/codemirror/theme/ssms.css
vendored
Normal file
16
vendor/codemirror/theme/ssms.css
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
.cm-s-ssms span.cm-keyword { color: blue; }
|
||||
.cm-s-ssms span.cm-comment { color: darkgreen; }
|
||||
.cm-s-ssms span.cm-string { color: red; }
|
||||
.cm-s-ssms span.cm-def { color: black; }
|
||||
.cm-s-ssms span.cm-variable { color: black; }
|
||||
.cm-s-ssms span.cm-variable-2 { color: black; }
|
||||
.cm-s-ssms span.cm-atom { color: darkgray; }
|
||||
.cm-s-ssms .CodeMirror-linenumber { color: teal; }
|
||||
.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }
|
||||
.cm-s-ssms span.cm-string-2 { color: #FF00FF; }
|
||||
.cm-s-ssms span.cm-operator,
|
||||
.cm-s-ssms span.cm-bracket,
|
||||
.cm-s-ssms span.cm-punctuation { color: darkgray; }
|
||||
.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }
|
||||
.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }
|
||||
|
Loading…
Reference in New Issue
Block a user