mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
upgrade code mirror to 5.65.15 and fix modes requiring multiplex or overlay, fixes #4279
This commit is contained in:
parent
7e486fda06
commit
9767b6269a
2
libraries/codemirror/addon/lint/eslint.js
vendored
2
libraries/codemirror/addon/lint/eslint.js
vendored
@ -46,7 +46,7 @@
|
|||||||
const errors = new eslint().verify(text, {
|
const errors = new eslint().verify(text, {
|
||||||
root: true,
|
root: true,
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
ecmaVersion: 2022
|
ecmaVersion: "latest"
|
||||||
},
|
},
|
||||||
extends: ['eslint:recommended', 'airbnb-base'],
|
extends: ['eslint:recommended', 'airbnb-base'],
|
||||||
env: {
|
env: {
|
||||||
|
13
libraries/codemirror/addon/lint/lint.js
vendored
13
libraries/codemirror/addon/lint/lint.js
vendored
@ -24,8 +24,10 @@
|
|||||||
|
|
||||||
function position(e) {
|
function position(e) {
|
||||||
if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position);
|
if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position);
|
||||||
tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + "px";
|
var top = Math.max(0, e.clientY - tt.offsetHeight - 5);
|
||||||
tt.style.left = (e.clientX + 5) + "px";
|
var left = Math.max(0, Math.min(e.clientX + 5, tt.ownerDocument.defaultView.innerWidth - tt.offsetWidth));
|
||||||
|
tt.style.top = top + "px"
|
||||||
|
tt.style.left = left + "px";
|
||||||
}
|
}
|
||||||
CodeMirror.on(document, "mousemove", position);
|
CodeMirror.on(document, "mousemove", position);
|
||||||
position(e);
|
position(e);
|
||||||
@ -199,10 +201,6 @@
|
|||||||
var anns = annotations[line];
|
var anns = annotations[line];
|
||||||
if (!anns) continue;
|
if (!anns) continue;
|
||||||
|
|
||||||
// filter out duplicate messages
|
|
||||||
var message = [];
|
|
||||||
anns = anns.filter(function(item) { return message.indexOf(item.message) > -1 ? false : message.push(item.message) });
|
|
||||||
|
|
||||||
var maxSeverity = null;
|
var maxSeverity = null;
|
||||||
var tipLabel = state.hasGutter && document.createDocumentFragment();
|
var tipLabel = state.hasGutter && document.createDocumentFragment();
|
||||||
|
|
||||||
@ -220,9 +218,8 @@
|
|||||||
__annotation: ann
|
__annotation: ann
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
// use original annotations[line] to show multiple messages
|
|
||||||
if (state.hasGutter)
|
if (state.hasGutter)
|
||||||
cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, annotations[line].length > 1,
|
cm.setGutterMarker(line, GUTTER_ID, makeMarker(cm, tipLabel, maxSeverity, anns.length > 1,
|
||||||
options.tooltips));
|
options.tooltips));
|
||||||
|
|
||||||
if (options.highlightLines)
|
if (options.highlightLines)
|
||||||
|
136
libraries/codemirror/addon/mode/multiplex.js
vendored
Normal file
136
libraries/codemirror/addon/mode/multiplex.js
vendored
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||||
|
// Distributed under an MIT license: https://codemirror.net/5/LICENSE
|
||||||
|
|
||||||
|
(function(mod) {
|
||||||
|
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||||
|
mod(require("../../lib/codemirror"));
|
||||||
|
else if (typeof define == "function" && define.amd) // AMD
|
||||||
|
define(["../../lib/codemirror"], mod);
|
||||||
|
else // Plain browser env
|
||||||
|
mod(CodeMirror);
|
||||||
|
})(function(CodeMirror) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
CodeMirror.multiplexingMode = function(outer /*, others */) {
|
||||||
|
// Others should be {open, close, mode [, delimStyle] [, innerStyle] [, parseDelimiters]} objects
|
||||||
|
var others = Array.prototype.slice.call(arguments, 1);
|
||||||
|
|
||||||
|
function indexOf(string, pattern, from, returnEnd) {
|
||||||
|
if (typeof pattern == "string") {
|
||||||
|
var found = string.indexOf(pattern, from);
|
||||||
|
return returnEnd && found > -1 ? found + pattern.length : found;
|
||||||
|
}
|
||||||
|
var m = pattern.exec(from ? string.slice(from) : string);
|
||||||
|
return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
startState: function() {
|
||||||
|
return {
|
||||||
|
outer: CodeMirror.startState(outer),
|
||||||
|
innerActive: null,
|
||||||
|
inner: null,
|
||||||
|
startingInner: false
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
copyState: function(state) {
|
||||||
|
return {
|
||||||
|
outer: CodeMirror.copyState(outer, state.outer),
|
||||||
|
innerActive: state.innerActive,
|
||||||
|
inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner),
|
||||||
|
startingInner: state.startingInner
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
token: function(stream, state) {
|
||||||
|
if (!state.innerActive) {
|
||||||
|
var cutOff = Infinity, oldContent = stream.string;
|
||||||
|
for (var i = 0; i < others.length; ++i) {
|
||||||
|
var other = others[i];
|
||||||
|
var found = indexOf(oldContent, other.open, stream.pos);
|
||||||
|
if (found == stream.pos) {
|
||||||
|
if (!other.parseDelimiters) stream.match(other.open);
|
||||||
|
state.startingInner = !!other.parseDelimiters
|
||||||
|
state.innerActive = other;
|
||||||
|
|
||||||
|
// Get the outer indent, making sure to handle CodeMirror.Pass
|
||||||
|
var outerIndent = 0;
|
||||||
|
if (outer.indent) {
|
||||||
|
var possibleOuterIndent = outer.indent(state.outer, "", "");
|
||||||
|
if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;
|
||||||
|
}
|
||||||
|
|
||||||
|
state.inner = CodeMirror.startState(other.mode, outerIndent);
|
||||||
|
return other.delimStyle && (other.delimStyle + " " + other.delimStyle + "-open");
|
||||||
|
} else if (found != -1 && found < cutOff) {
|
||||||
|
cutOff = found;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);
|
||||||
|
var outerToken = outer.token(stream, state.outer);
|
||||||
|
if (cutOff != Infinity) stream.string = oldContent;
|
||||||
|
return outerToken;
|
||||||
|
} else {
|
||||||
|
var curInner = state.innerActive, oldContent = stream.string;
|
||||||
|
if (!curInner.close && stream.sol()) {
|
||||||
|
state.innerActive = state.inner = null;
|
||||||
|
return this.token(stream, state);
|
||||||
|
}
|
||||||
|
var found = curInner.close && !state.startingInner ?
|
||||||
|
indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;
|
||||||
|
if (found == stream.pos && !curInner.parseDelimiters) {
|
||||||
|
stream.match(curInner.close);
|
||||||
|
state.innerActive = state.inner = null;
|
||||||
|
return curInner.delimStyle && (curInner.delimStyle + " " + curInner.delimStyle + "-close");
|
||||||
|
}
|
||||||
|
if (found > -1) stream.string = oldContent.slice(0, found);
|
||||||
|
var innerToken = curInner.mode.token(stream, state.inner);
|
||||||
|
if (found > -1) stream.string = oldContent;
|
||||||
|
else if (stream.pos > stream.start) state.startingInner = false
|
||||||
|
|
||||||
|
if (found == stream.pos && curInner.parseDelimiters)
|
||||||
|
state.innerActive = state.inner = null;
|
||||||
|
|
||||||
|
if (curInner.innerStyle) {
|
||||||
|
if (innerToken) innerToken = innerToken + " " + curInner.innerStyle;
|
||||||
|
else innerToken = curInner.innerStyle;
|
||||||
|
}
|
||||||
|
|
||||||
|
return innerToken;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
indent: function(state, textAfter, line) {
|
||||||
|
var mode = state.innerActive ? state.innerActive.mode : outer;
|
||||||
|
if (!mode.indent) return CodeMirror.Pass;
|
||||||
|
return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);
|
||||||
|
},
|
||||||
|
|
||||||
|
blankLine: function(state) {
|
||||||
|
var mode = state.innerActive ? state.innerActive.mode : outer;
|
||||||
|
if (mode.blankLine) {
|
||||||
|
mode.blankLine(state.innerActive ? state.inner : state.outer);
|
||||||
|
}
|
||||||
|
if (!state.innerActive) {
|
||||||
|
for (var i = 0; i < others.length; ++i) {
|
||||||
|
var other = others[i];
|
||||||
|
if (other.open === "\n") {
|
||||||
|
state.innerActive = other;
|
||||||
|
state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "", "") : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (state.innerActive.close === "\n") {
|
||||||
|
state.innerActive = state.inner = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
electricChars: outer.electricChars,
|
||||||
|
|
||||||
|
innerMode: function(state) {
|
||||||
|
return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
90
libraries/codemirror/addon/mode/overlay.js
vendored
Normal file
90
libraries/codemirror/addon/mode/overlay.js
vendored
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||||
|
// Distributed under an MIT license: https://codemirror.net/5/LICENSE
|
||||||
|
|
||||||
|
// Utility function that allows modes to be combined. The mode given
|
||||||
|
// as the base argument takes care of most of the normal mode
|
||||||
|
// functionality, but a second (typically simple) mode is used, which
|
||||||
|
// can override the style of text. Both modes get to parse all of the
|
||||||
|
// text, but when both assign a non-null style to a piece of code, the
|
||||||
|
// overlay wins, unless the combine argument was true and not overridden,
|
||||||
|
// or state.overlay.combineTokens was true, in which case the styles are
|
||||||
|
// combined.
|
||||||
|
|
||||||
|
(function(mod) {
|
||||||
|
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||||
|
mod(require("../../lib/codemirror"));
|
||||||
|
else if (typeof define == "function" && define.amd) // AMD
|
||||||
|
define(["../../lib/codemirror"], mod);
|
||||||
|
else // Plain browser env
|
||||||
|
mod(CodeMirror);
|
||||||
|
})(function(CodeMirror) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
CodeMirror.overlayMode = function(base, overlay, combine) {
|
||||||
|
return {
|
||||||
|
startState: function() {
|
||||||
|
return {
|
||||||
|
base: CodeMirror.startState(base),
|
||||||
|
overlay: CodeMirror.startState(overlay),
|
||||||
|
basePos: 0, baseCur: null,
|
||||||
|
overlayPos: 0, overlayCur: null,
|
||||||
|
streamSeen: null
|
||||||
|
};
|
||||||
|
},
|
||||||
|
copyState: function(state) {
|
||||||
|
return {
|
||||||
|
base: CodeMirror.copyState(base, state.base),
|
||||||
|
overlay: CodeMirror.copyState(overlay, state.overlay),
|
||||||
|
basePos: state.basePos, baseCur: null,
|
||||||
|
overlayPos: state.overlayPos, overlayCur: null
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
token: function(stream, state) {
|
||||||
|
if (stream != state.streamSeen ||
|
||||||
|
Math.min(state.basePos, state.overlayPos) < stream.start) {
|
||||||
|
state.streamSeen = stream;
|
||||||
|
state.basePos = state.overlayPos = stream.start;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stream.start == state.basePos) {
|
||||||
|
state.baseCur = base.token(stream, state.base);
|
||||||
|
state.basePos = stream.pos;
|
||||||
|
}
|
||||||
|
if (stream.start == state.overlayPos) {
|
||||||
|
stream.pos = stream.start;
|
||||||
|
state.overlayCur = overlay.token(stream, state.overlay);
|
||||||
|
state.overlayPos = stream.pos;
|
||||||
|
}
|
||||||
|
stream.pos = Math.min(state.basePos, state.overlayPos);
|
||||||
|
|
||||||
|
// state.overlay.combineTokens always takes precedence over combine,
|
||||||
|
// unless set to null
|
||||||
|
if (state.overlayCur == null) return state.baseCur;
|
||||||
|
else if (state.baseCur != null &&
|
||||||
|
state.overlay.combineTokens ||
|
||||||
|
combine && state.overlay.combineTokens == null)
|
||||||
|
return state.baseCur + " " + state.overlayCur;
|
||||||
|
else return state.overlayCur;
|
||||||
|
},
|
||||||
|
|
||||||
|
indent: base.indent && function(state, textAfter, line) {
|
||||||
|
return base.indent(state.base, textAfter, line);
|
||||||
|
},
|
||||||
|
electricChars: base.electricChars,
|
||||||
|
|
||||||
|
innerMode: function(state) { return {state: state.base, mode: base}; },
|
||||||
|
|
||||||
|
blankLine: function(state) {
|
||||||
|
var baseToken, overlayToken;
|
||||||
|
if (base.blankLine) baseToken = base.blankLine(state.base);
|
||||||
|
if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);
|
||||||
|
|
||||||
|
return overlayToken == null ?
|
||||||
|
baseToken :
|
||||||
|
(combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
});
|
@ -8259,8 +8259,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {
|
function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {
|
||||||
field.setAttribute("autocorrect", autocorrect ? "" : "off");
|
field.setAttribute("autocorrect", autocorrect ? "on" : "off");
|
||||||
field.setAttribute("autocapitalize", autocapitalize ? "" : "off");
|
field.setAttribute("autocapitalize", autocapitalize ? "on" : "off");
|
||||||
field.setAttribute("spellcheck", !!spellcheck);
|
field.setAttribute("spellcheck", !!spellcheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8275,7 +8275,6 @@
|
|||||||
else { te.setAttribute("wrap", "off"); }
|
else { te.setAttribute("wrap", "off"); }
|
||||||
// If border: 0; -- iOS fails to open keyboard (issue #1287)
|
// If border: 0; -- iOS fails to open keyboard (issue #1287)
|
||||||
if (ios) { te.style.border = "1px solid black"; }
|
if (ios) { te.style.border = "1px solid black"; }
|
||||||
disableBrowserMagic(te);
|
|
||||||
return div
|
return div
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8897,6 +8896,7 @@
|
|||||||
}
|
}
|
||||||
// Old-fashioned briefly-focus-a-textarea hack
|
// Old-fashioned briefly-focus-a-textarea hack
|
||||||
var kludge = hiddenTextarea(), te = kludge.firstChild;
|
var kludge = hiddenTextarea(), te = kludge.firstChild;
|
||||||
|
disableBrowserMagic(te);
|
||||||
cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
|
cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
|
||||||
te.value = lastCopied.text.join("\n");
|
te.value = lastCopied.text.join("\n");
|
||||||
var hadFocus = activeElt(div.ownerDocument);
|
var hadFocus = activeElt(div.ownerDocument);
|
||||||
@ -9461,6 +9461,8 @@
|
|||||||
// The semihidden textarea that is focused when the editor is
|
// The semihidden textarea that is focused when the editor is
|
||||||
// focused, and receives input.
|
// focused, and receives input.
|
||||||
this.textarea = this.wrapper.firstChild;
|
this.textarea = this.wrapper.firstChild;
|
||||||
|
var opts = this.cm.options;
|
||||||
|
disableBrowserMagic(this.textarea, opts.spellcheck, opts.autocorrect, opts.autocapitalize);
|
||||||
};
|
};
|
||||||
|
|
||||||
TextareaInput.prototype.screenReaderLabelChanged = function (label) {
|
TextareaInput.prototype.screenReaderLabelChanged = function (label) {
|
||||||
@ -9865,7 +9867,7 @@
|
|||||||
|
|
||||||
addLegacyProps(CodeMirror);
|
addLegacyProps(CodeMirror);
|
||||||
|
|
||||||
CodeMirror.version = "5.65.9";
|
CodeMirror.version = "5.65.15";
|
||||||
|
|
||||||
return CodeMirror;
|
return CodeMirror;
|
||||||
|
|
||||||
|
10
libraries/codemirror/mode/clike/clike.js
vendored
10
libraries/codemirror/mode/clike/clike.js
vendored
@ -218,7 +218,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
indent: function(state, textAfter) {
|
indent: function(state, textAfter) {
|
||||||
if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;
|
if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine && isTopScope(state.context))
|
||||||
|
return CodeMirror.Pass;
|
||||||
var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
|
var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
|
||||||
var closing = firstChar == ctx.type;
|
var closing = firstChar == ctx.type;
|
||||||
if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
|
if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
|
||||||
@ -512,8 +513,8 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|||||||
name: "clike",
|
name: "clike",
|
||||||
keywords: words("abstract as async await base break case catch checked class const continue" +
|
keywords: words("abstract as async await base break case catch checked class const continue" +
|
||||||
" default delegate do else enum event explicit extern finally fixed for" +
|
" default delegate do else enum event explicit extern finally fixed for" +
|
||||||
" foreach goto if implicit in interface internal is lock namespace new" +
|
" foreach goto if implicit in init interface internal is lock namespace new" +
|
||||||
" operator out override params private protected public readonly ref return sealed" +
|
" operator out override params private protected public readonly record ref required return sealed" +
|
||||||
" sizeof stackalloc static struct switch this throw try typeof unchecked" +
|
" sizeof stackalloc static struct switch this throw try typeof unchecked" +
|
||||||
" unsafe using virtual void volatile while add alias ascending descending dynamic from get" +
|
" unsafe using virtual void volatile while add alias ascending descending dynamic from get" +
|
||||||
" global group into join let orderby partial remove select set value var yield"),
|
" global group into join let orderby partial remove select set value var yield"),
|
||||||
@ -522,7 +523,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|||||||
" UInt64 bool byte char decimal double short int long object" +
|
" UInt64 bool byte char decimal double short int long object" +
|
||||||
" sbyte float string ushort uint ulong"),
|
" sbyte float string ushort uint ulong"),
|
||||||
blockKeywords: words("catch class do else finally for foreach if struct switch try while"),
|
blockKeywords: words("catch class do else finally for foreach if struct switch try while"),
|
||||||
defKeywords: words("class interface namespace struct var"),
|
defKeywords: words("class interface namespace record struct var"),
|
||||||
typeFirstDefinitions: true,
|
typeFirstDefinitions: true,
|
||||||
atoms: words("true false null"),
|
atoms: words("true false null"),
|
||||||
hooks: {
|
hooks: {
|
||||||
@ -613,6 +614,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
|
|||||||
return state.tokenize(stream, state);
|
return state.tokenize(stream, state);
|
||||||
},
|
},
|
||||||
"'": function(stream) {
|
"'": function(stream) {
|
||||||
|
if (stream.match(/^(\\[^'\s]+|[^\\'])'/)) return "string-2"
|
||||||
stream.eatWhile(/[\w\$_\xa1-\uffff]/);
|
stream.eatWhile(/[\w\$_\xa1-\uffff]/);
|
||||||
return "atom";
|
return "atom";
|
||||||
},
|
},
|
||||||
|
8
libraries/codemirror/mode/dart/dart.js
vendored
8
libraries/codemirror/mode/dart/dart.js
vendored
@ -12,10 +12,10 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var keywords = ("this super static final const abstract class extends external factory " +
|
var keywords = ("this super static final const abstract class extends external factory " +
|
||||||
"implements mixin get native set typedef with enum throw rethrow " +
|
"implements mixin get native set typedef with enum throw rethrow assert break case " +
|
||||||
"assert break case continue default in return new deferred async await covariant " +
|
"continue default in return new deferred async await covariant try catch finally " +
|
||||||
"try catch finally do else for if switch while import library export " +
|
"do else for if switch while import library export part of show hide is as extension " +
|
||||||
"part of show hide is as extension on yield late required").split(" ");
|
"on yield late required sealed base interface when inline").split(" ");
|
||||||
var blockKeywords = "try catch finally do else for if switch while".split(" ");
|
var blockKeywords = "try catch finally do else for if switch while".split(" ");
|
||||||
var atoms = "true false null".split(" ");
|
var atoms = "true false null".split(" ");
|
||||||
var builtins = "void bool num int double dynamic var String Null Never".split(" ");
|
var builtins = "void bool num int double dynamic var String Null Never".split(" ");
|
||||||
|
@ -779,7 +779,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
|
|||||||
if (type == "async" ||
|
if (type == "async" ||
|
||||||
(type == "variable" &&
|
(type == "variable" &&
|
||||||
(value == "static" || value == "get" || value == "set" || (isTS && isModifier(value))) &&
|
(value == "static" || value == "get" || value == "set" || (isTS && isModifier(value))) &&
|
||||||
cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
|
cx.stream.match(/^\s+#?[\w$\xa1-\uffff]/, false))) {
|
||||||
cx.marked = "keyword";
|
cx.marked = "keyword";
|
||||||
return cont(classBody);
|
return cont(classBody);
|
||||||
}
|
}
|
||||||
|
2
libraries/codemirror/mode/nsis/nsis.js
vendored
2
libraries/codemirror/mode/nsis/nsis.js
vendored
@ -24,7 +24,7 @@ CodeMirror.defineSimpleMode("nsis",{
|
|||||||
{ regex: /`(?:[^\\`]|\\.)*`?/, token: "string" },
|
{ regex: /`(?:[^\\`]|\\.)*`?/, token: "string" },
|
||||||
|
|
||||||
// Compile Time Commands
|
// Compile Time Commands
|
||||||
{regex: /^\s*(?:\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i, token: "keyword"},
|
{regex: /^\s*(?:\!(addincludedir|addplugindir|appendfile|assert|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i, token: "keyword"},
|
||||||
|
|
||||||
// Conditional Compilation
|
// Conditional Compilation
|
||||||
{regex: /^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i, token: "keyword", indent: true},
|
{regex: /^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i, token: "keyword", indent: true},
|
||||||
|
3
libraries/codemirror/mode/pegjs/pegjs.js
vendored
3
libraries/codemirror/mode/pegjs/pegjs.js
vendored
@ -31,8 +31,6 @@ CodeMirror.defineMode("pegjs", function (config) {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
token: function (stream, state) {
|
token: function (stream, state) {
|
||||||
if (stream)
|
|
||||||
|
|
||||||
//check for state changes
|
//check for state changes
|
||||||
if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) {
|
if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) {
|
||||||
state.stringType = stream.peek();
|
state.stringType = stream.peek();
|
||||||
@ -43,7 +41,6 @@ CodeMirror.defineMode("pegjs", function (config) {
|
|||||||
state.inComment = true;
|
state.inComment = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//return state
|
|
||||||
if (state.inString) {
|
if (state.inString) {
|
||||||
while (state.inString && !stream.eol()) {
|
while (state.inString && !stream.eol()) {
|
||||||
if (stream.peek() === state.stringType) {
|
if (stream.peek() === state.stringType) {
|
||||||
|
6
libraries/codemirror/mode/python/python.js
vendored
6
libraries/codemirror/mode/python/python.js
vendored
@ -20,7 +20,7 @@
|
|||||||
"def", "del", "elif", "else", "except", "finally",
|
"def", "del", "elif", "else", "except", "finally",
|
||||||
"for", "from", "global", "if", "import",
|
"for", "from", "global", "if", "import",
|
||||||
"lambda", "pass", "raise", "return",
|
"lambda", "pass", "raise", "return",
|
||||||
"try", "while", "with", "yield", "in"];
|
"try", "while", "with", "yield", "in", "False", "True"];
|
||||||
var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr",
|
var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr",
|
||||||
"classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod",
|
"classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod",
|
||||||
"enumerate", "eval", "filter", "float", "format", "frozenset",
|
"enumerate", "eval", "filter", "float", "format", "frozenset",
|
||||||
@ -60,7 +60,7 @@
|
|||||||
if (py3) {
|
if (py3) {
|
||||||
// since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator
|
// since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator
|
||||||
var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/;
|
var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/;
|
||||||
myKeywords = myKeywords.concat(["nonlocal", "False", "True", "None", "async", "await"]);
|
myKeywords = myKeywords.concat(["nonlocal", "None", "aiter", "anext", "async", "await", "breakpoint", "match", "case"]);
|
||||||
myBuiltins = myBuiltins.concat(["ascii", "bytes", "exec", "print"]);
|
myBuiltins = myBuiltins.concat(["ascii", "bytes", "exec", "print"]);
|
||||||
var stringPrefixes = new RegExp("^(([rbuf]|(br)|(rb)|(fr)|(rf))?('{3}|\"{3}|['\"]))", "i");
|
var stringPrefixes = new RegExp("^(([rbuf]|(br)|(rb)|(fr)|(rf))?('{3}|\"{3}|['\"]))", "i");
|
||||||
} else {
|
} else {
|
||||||
@ -68,7 +68,7 @@
|
|||||||
myKeywords = myKeywords.concat(["exec", "print"]);
|
myKeywords = myKeywords.concat(["exec", "print"]);
|
||||||
myBuiltins = myBuiltins.concat(["apply", "basestring", "buffer", "cmp", "coerce", "execfile",
|
myBuiltins = myBuiltins.concat(["apply", "basestring", "buffer", "cmp", "coerce", "execfile",
|
||||||
"file", "intern", "long", "raw_input", "reduce", "reload",
|
"file", "intern", "long", "raw_input", "reduce", "reload",
|
||||||
"unichr", "unicode", "xrange", "False", "True", "None"]);
|
"unichr", "unicode", "xrange", "None"]);
|
||||||
var stringPrefixes = new RegExp("^(([rubf]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
|
var stringPrefixes = new RegExp("^(([rubf]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
|
||||||
}
|
}
|
||||||
var keywords = wordRegexp(myKeywords);
|
var keywords = wordRegexp(myKeywords);
|
||||||
|
9
libraries/codemirror/mode/sparql/sparql.js
vendored
9
libraries/codemirror/mode/sparql/sparql.js
vendored
@ -33,6 +33,9 @@ CodeMirror.defineMode("sparql", function(config) {
|
|||||||
"true", "false", "with",
|
"true", "false", "with",
|
||||||
"data", "copy", "to", "move", "add", "create", "drop", "clear", "load", "into"]);
|
"data", "copy", "to", "move", "add", "create", "drop", "clear", "load", "into"]);
|
||||||
var operatorChars = /[*+\-<>=&|\^\/!\?]/;
|
var operatorChars = /[*+\-<>=&|\^\/!\?]/;
|
||||||
|
var PN_CHARS = "[A-Za-z_\\-0-9]";
|
||||||
|
var PREFIX_START = new RegExp("[A-Za-z]");
|
||||||
|
var PREFIX_REMAINDER = new RegExp("((" + PN_CHARS + "|\\.)*(" + PN_CHARS + "))?:");
|
||||||
|
|
||||||
function tokenBase(stream, state) {
|
function tokenBase(stream, state) {
|
||||||
var ch = stream.next();
|
var ch = stream.next();
|
||||||
@ -71,12 +74,11 @@ CodeMirror.defineMode("sparql", function(config) {
|
|||||||
stream.eatWhile(/[a-z\d\-]/i);
|
stream.eatWhile(/[a-z\d\-]/i);
|
||||||
return "meta";
|
return "meta";
|
||||||
}
|
}
|
||||||
else {
|
else if (PREFIX_START.test(ch) && stream.match(PREFIX_REMAINDER)) {
|
||||||
stream.eatWhile(/[_\w\d]/);
|
|
||||||
if (stream.eat(":")) {
|
|
||||||
eatPnLocal(stream);
|
eatPnLocal(stream);
|
||||||
return "atom";
|
return "atom";
|
||||||
}
|
}
|
||||||
|
stream.eatWhile(/[_\w\d]/);
|
||||||
var word = stream.current();
|
var word = stream.current();
|
||||||
if (ops.test(word))
|
if (ops.test(word))
|
||||||
return "builtin";
|
return "builtin";
|
||||||
@ -85,7 +87,6 @@ CodeMirror.defineMode("sparql", function(config) {
|
|||||||
else
|
else
|
||||||
return "variable";
|
return "variable";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function eatPnLocal(stream) {
|
function eatPnLocal(stream) {
|
||||||
stream.match(/(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/i);
|
stream.match(/(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/i);
|
||||||
|
26
libraries/codemirror/mode/sql/sql.js
vendored
26
libraries/codemirror/mode/sql/sql.js
vendored
File diff suppressed because one or more lines are too long
2
libraries/codemirror/mode/yaml/yaml.js
vendored
2
libraries/codemirror/mode/yaml/yaml.js
vendored
@ -85,7 +85,7 @@ CodeMirror.defineMode("yaml", function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* pairs (associative arrays) -> key */
|
/* pairs (associative arrays) -> key */
|
||||||
if (!state.pair && stream.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)) {
|
if (!state.pair && stream.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^\s,\[\]{}#&*!|>'"%@`])[^#:]*(?=:($|\s))/)) {
|
||||||
state.pair = true;
|
state.pair = true;
|
||||||
state.keyCol = stream.indentation();
|
state.keyCol = stream.indentation();
|
||||||
return "atom";
|
return "atom";
|
||||||
|
@ -10,6 +10,8 @@ const CODE_MIRROR = {
|
|||||||
"libraries/codemirror/addon/lint/lint.js",
|
"libraries/codemirror/addon/lint/lint.js",
|
||||||
"libraries/codemirror/addon/lint/eslint.js",
|
"libraries/codemirror/addon/lint/eslint.js",
|
||||||
"libraries/codemirror/addon/mode/loadmode.js",
|
"libraries/codemirror/addon/mode/loadmode.js",
|
||||||
|
"libraries/codemirror/addon/mode/multiplex.js",
|
||||||
|
"libraries/codemirror/addon/mode/overlay.js",
|
||||||
"libraries/codemirror/addon/mode/simple.js",
|
"libraries/codemirror/addon/mode/simple.js",
|
||||||
"libraries/codemirror/addon/search/match-highlighter.js",
|
"libraries/codemirror/addon/search/match-highlighter.js",
|
||||||
"libraries/codemirror/mode/meta.js",
|
"libraries/codemirror/mode/meta.js",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user