mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-28 05:54:43 -04:00
Upgrade CodeMirror to 5.10.1 and now support fullscreen, jump-to-line in editor
This commit is contained in:
parent
ce65e58096
commit
eaa8ccaccb
381 changed files with 6726 additions and 2636 deletions
86
public/vendor/codemirror/mode/dart/dart.js
vendored
Executable file → Normal file
86
public/vendor/codemirror/mode/dart/dart.js
vendored
Executable file → Normal file
|
@ -15,7 +15,7 @@
|
|||
"implements get native operator set typedef with enum throw rethrow " +
|
||||
"assert break case continue default in return new deferred async await " +
|
||||
"try catch finally do else for if switch while import library export " +
|
||||
"part of show hide is").split(" ");
|
||||
"part of show hide is as").split(" ");
|
||||
var blockKeywords = "try catch finally do else for if switch while".split(" ");
|
||||
var atoms = "true false null".split(" ");
|
||||
var builtins = "void bool num int double dynamic var String".split(" ");
|
||||
|
@ -26,21 +26,101 @@
|
|||
return obj;
|
||||
}
|
||||
|
||||
function pushInterpolationStack(state) {
|
||||
(state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);
|
||||
}
|
||||
|
||||
function popInterpolationStack(state) {
|
||||
return (state.interpolationStack || (state.interpolationStack = [])).pop();
|
||||
}
|
||||
|
||||
function sizeInterpolationStack(state) {
|
||||
return state.interpolationStack ? state.interpolationStack.length : 0;
|
||||
}
|
||||
|
||||
CodeMirror.defineMIME("application/dart", {
|
||||
name: "clike",
|
||||
keywords: set(keywords),
|
||||
multiLineStrings: true,
|
||||
blockKeywords: set(blockKeywords),
|
||||
builtin: set(builtins),
|
||||
atoms: set(atoms),
|
||||
hooks: {
|
||||
"@": function(stream) {
|
||||
stream.eatWhile(/[\w\$_]/);
|
||||
stream.eatWhile(/[\w\$_\.]/);
|
||||
return "meta";
|
||||
},
|
||||
|
||||
// custom string handling to deal with triple-quoted strings and string interpolation
|
||||
"'": function(stream, state) {
|
||||
return tokenString("'", stream, state, false);
|
||||
},
|
||||
"\"": function(stream, state) {
|
||||
return tokenString("\"", stream, state, false);
|
||||
},
|
||||
"r": function(stream, state) {
|
||||
var peek = stream.peek();
|
||||
if (peek == "'" || peek == "\"") {
|
||||
return tokenString(stream.next(), stream, state, true);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
"}": function(_stream, state) {
|
||||
// "}" is end of interpolation, if interpolation stack is non-empty
|
||||
if (sizeInterpolationStack(state) > 0) {
|
||||
state.tokenize = popInterpolationStack(state);
|
||||
return null;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function tokenString(quote, stream, state, raw) {
|
||||
var tripleQuoted = false;
|
||||
if (stream.eat(quote)) {
|
||||
if (stream.eat(quote)) tripleQuoted = true;
|
||||
else return "string"; //empty string
|
||||
}
|
||||
function tokenStringHelper(stream, state) {
|
||||
var escaped = false;
|
||||
while (!stream.eol()) {
|
||||
if (!raw && !escaped && stream.peek() == "$") {
|
||||
pushInterpolationStack(state);
|
||||
state.tokenize = tokenInterpolation;
|
||||
return "string";
|
||||
}
|
||||
var next = stream.next();
|
||||
if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {
|
||||
state.tokenize = null;
|
||||
break;
|
||||
}
|
||||
escaped = !raw && !escaped && next == "\\";
|
||||
}
|
||||
return "string";
|
||||
}
|
||||
state.tokenize = tokenStringHelper;
|
||||
return tokenStringHelper(stream, state);
|
||||
}
|
||||
|
||||
function tokenInterpolation(stream, state) {
|
||||
stream.eat("$");
|
||||
if (stream.eat("{")) {
|
||||
// let clike handle the content of ${...},
|
||||
// we take over again when "}" appears (see hooks).
|
||||
state.tokenize = null;
|
||||
} else {
|
||||
state.tokenize = tokenInterpolationIdentifier;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function tokenInterpolationIdentifier(stream, state) {
|
||||
stream.eatWhile(/[\w_]/);
|
||||
state.tokenize = popInterpolationStack(state);
|
||||
return "variable";
|
||||
}
|
||||
|
||||
CodeMirror.registerHelper("hintWords", "application/dart", keywords.concat(atoms).concat(builtins));
|
||||
|
||||
// This is needed to make loading through meta.js work.
|
||||
|
|
0
public/vendor/codemirror/mode/dart/index.html
vendored
Executable file → Normal file
0
public/vendor/codemirror/mode/dart/index.html
vendored
Executable file → Normal file
Loading…
Add table
Add a link
Reference in a new issue