Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/files_texteditor.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2017-07-13 17:00:31 +0300
committerRoeland Jago Douma <roeland@famdouma.nl>2017-08-02 23:32:27 +0300
commit8e2977163746052bd2acd20776f81bc16258e49f (patch)
tree0b40d532c838fef9050cb88e70d6570973a3c06e /js
parentcfc5239271006b8357ae379356c8480bbe32657d (diff)
update ace editor to 1.2.8
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'js')
-rw-r--r--js/bower.json2
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/ace.js984
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/ext-modelist.js8
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/ext-searchbox.js229
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/keybinding-vim.js24
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-abc.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-actionscript.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-ada.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-apache_conf.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-applescript.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-assembly_x86.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-autohotkey.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-batchfile.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-bro.js327
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-c9search.js5
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-c_cpp.js5
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-cirru.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-clojure.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-cobol.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-coldfusion.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-csharp.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-css.js142
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-curly.js220
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-d.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-dart.js13
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-django.js222
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-dot.js8
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-drools.js14
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-eiffel.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-ejs.js222
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-elixir.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-elm.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-erlang.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-forth.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-fortran.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-ftl.js203
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-gcode.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-gherkin.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-gitignore.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-glsl.js5
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-gobstones.js46
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-graphqlschema.js206
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-groovy.js45
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-haml.js433
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-handlebars.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-haskell.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-haskell_cabal.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-haxe.js5
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-hjson.js346
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-html.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-html_elixir.js218
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-html_ruby.js222
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-ini.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-io.js6
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-jade.js240
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-java.js45
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-javascript.js40
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-json.js24
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-jsp.js202
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-jsx.js5
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-julia.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-latex.js5
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-less.js147
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-liquid.js201
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-lisp.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-lua.js9
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-luapage.js226
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-lucene.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-makefile.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-markdown.js221
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-mask.js200
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-matlab.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-maze.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-mushcode.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-mysql.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-nix.js11
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-nsis.js19
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-objectivec.js9
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-ocaml.js6
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-pascal.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-perl.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-pgsql.js81
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-php.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-pig.js303
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-praat.js6
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-prolog.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-properties.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-protobuf.js14
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-python.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-r.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-razor.js224
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-rdoc.js8
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-rhtml.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-rst.js6
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-ruby.js5
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-rust.js8
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-sass.js34
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-scad.js8
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-scala.js46
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-scheme.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-scss.js33
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-sjs.js40
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-smarty.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-snippets.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-soy_template.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-space.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-sparql.js313
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-sql.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-sqlserver.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-stylus.js148
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-svg.js73
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-swift.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-tcl.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-tex.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-textile.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-toml.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-tsx.js42
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-turtle.js289
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-twig.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-typescript.js40
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-vbscript.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-velocity.js217
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-verilog.js1
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-vhdl.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-wollok.js40
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-xml.js33
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/mode-yaml.js49
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/snippets/bro.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/snippets/graphqlschema.js39
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/snippets/hjson.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/snippets/pig.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/snippets/sh.js2
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/snippets/sparql.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/snippets/turtle.js7
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/worker-lua.js4
-rw-r--r--js/core/vendor/ace-builds/src-noconflict/worker-php.js5505
136 files changed, 8272 insertions, 6982 deletions
diff --git a/js/bower.json b/js/bower.json
index 8009f63..dac8e6c 100644
--- a/js/bower.json
+++ b/js/bower.json
@@ -17,6 +17,6 @@
"tests"
],
"dependencies": {
- "ace-builds": "^1.2.5"
+ "ace-builds": "1.2.8"
}
}
diff --git a/js/core/vendor/ace-builds/src-noconflict/ace.js b/js/core/vendor/ace-builds/src-noconflict/ace.js
index 19c1ae7..d93cddc 100644
--- a/js/core/vendor/ace-builds/src-noconflict/ace.js
+++ b/js/core/vendor/ace-builds/src-noconflict/ace.js
@@ -1370,10 +1370,12 @@ exports.isAIR = ua.indexOf("AdobeAIR") >= 0;
exports.isIPad = ua.indexOf("iPad") >= 0;
-exports.isTouchPad = ua.indexOf("TouchPad") >= 0;
-
exports.isChromeOS = ua.indexOf(" CrOS ") >= 0;
+exports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;
+
+if (exports.isIOS) exports.isMac = true;
+
});
ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"], function(require, exports, module) {
@@ -1909,19 +1911,22 @@ exports.delayedCall = function(fcn, defaultTimeout) {
};
});
-ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang"], function(require, exports, module) {
+ace.define("ace/keyboard/textinput_ios",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/lib/keys"], function(require, exports, module) {
"use strict";
var event = require("../lib/event");
var useragent = require("../lib/useragent");
var dom = require("../lib/dom");
var lang = require("../lib/lang");
+var KEYS = require("../lib/keys");
+var MODS = KEYS.KEY_MODS;
var BROKEN_SETDATA = useragent.isChrome < 18;
var USE_IE_MIME_TYPE = useragent.isIE;
var TextInput = function(parentNode, host) {
+ var self = this;
var text = dom.createElement("textarea");
- text.className = "ace_text-input";
+ text.className = useragent.isIOS ? "ace_text-input ace_text-input-ios" : "ace_text-input";
if (useragent.isTouchPad)
text.setAttribute("x-palm-disable-auto-cap", true);
@@ -1932,10 +1937,480 @@ var TextInput = function(parentNode, host) {
text.setAttribute("spellcheck", false);
text.style.opacity = "0";
- if (useragent.isOldIE) text.style.top = "-1000px";
parentNode.insertBefore(text, parentNode.firstChild);
- var PLACEHOLDER = "\x01\x01";
+ var PLACEHOLDER = "\n aaaa a\n";
+
+ var copied = false;
+ var cut = false;
+ var pasted = false;
+ var inComposition = false;
+ var tempStyle = '';
+ var isSelectionEmpty = true;
+ try { var isFocused = document.activeElement === text; } catch(e) {}
+
+ event.addListener(text, "blur", function(e) {
+ host.onBlur(e);
+ isFocused = false;
+ });
+ event.addListener(text, "focus", function(e) {
+ isFocused = true;
+ host.onFocus(e);
+ resetSelection();
+ });
+ this.focus = function() {
+ if (tempStyle) return text.focus();
+ text.style.position = "fixed";
+ text.focus();
+ };
+ this.blur = function() {
+ text.blur();
+ };
+ this.isFocused = function() {
+ return isFocused;
+ };
+ var syncSelection = lang.delayedCall(function() {
+ isFocused && resetSelection(isSelectionEmpty);
+ });
+ var syncValue = lang.delayedCall(function() {
+ if (!inComposition) {
+ text.value = PLACEHOLDER;
+ isFocused && resetSelection();
+ }
+ });
+
+ function resetSelection(isEmpty) {
+ if (inComposition)
+ return;
+ inComposition = true;
+
+ if (inputHandler) {
+ selectionStart = 0;
+ selectionEnd = isEmpty ? 0 : text.value.length - 1;
+ } else {
+ var selectionStart = 4;
+ var selectionEnd = 5;
+ }
+ try {
+ text.setSelectionRange(selectionStart, selectionEnd);
+ } catch(e) {}
+
+ inComposition = false;
+ }
+
+ function resetValue() {
+ if (inComposition)
+ return;
+ text.value = PLACEHOLDER;
+ if (useragent.isWebKit)
+ syncValue.schedule();
+ }
+
+ useragent.isWebKit || host.addEventListener('changeSelection', function() {
+ if (host.selection.isEmpty() != isSelectionEmpty) {
+ isSelectionEmpty = !isSelectionEmpty;
+ syncSelection.schedule();
+ }
+ });
+
+ resetValue();
+ if (isFocused)
+ host.onFocus();
+
+
+ var isAllSelected = function(text) {
+ return text.selectionStart === 0 && text.selectionEnd === text.value.length;
+ };
+
+ var onSelect = function(e) {
+ if (isAllSelected(text)) {
+ host.selectAll();
+ resetSelection();
+ } else if (inputHandler) {
+ resetSelection(host.selection.isEmpty());
+ }
+ };
+
+ var inputHandler = null;
+ this.setInputHandler = function(cb) {inputHandler = cb};
+ this.getInputHandler = function() {return inputHandler};
+ var afterContextMenu = false;
+
+ var sendText = function(data) {
+ if (text.selectionStart === 4 && text.selectionEnd === 5) {
+ return;
+ }
+ if (inputHandler) {
+ data = inputHandler(data);
+ inputHandler = null;
+ }
+ if (pasted) {
+ resetSelection();
+ if (data)
+ host.onPaste(data);
+ pasted = false;
+ } else if (data == PLACEHOLDER.substr(0) && text.selectionStart === 4) {
+ if (afterContextMenu)
+ host.execCommand("del", {source: "ace"});
+ else // some versions of android do not fire keydown when pressing backspace
+ host.execCommand("backspace", {source: "ace"});
+ } else if (!copied) {
+ if (data.substring(0, 9) == PLACEHOLDER && data.length > PLACEHOLDER.length)
+ data = data.substr(9);
+ else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4))
+ data = data.substr(4, data.length - PLACEHOLDER.length + 1);
+ else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))
+ data = data.slice(0, -1);
+ if (data == PLACEHOLDER.charAt(0)) {
+ } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0))
+ data = data.slice(0, -1);
+
+ if (data)
+ host.onTextInput(data);
+ }
+ if (copied) {
+ copied = false;
+ }
+ if (afterContextMenu)
+ afterContextMenu = false;
+ };
+ var onInput = function(e) {
+ if (inComposition)
+ return;
+ var data = text.value;
+ sendText(data);
+ resetValue();
+ };
+
+ var handleClipboardData = function(e, data, forceIEMime) {
+ var clipboardData = e.clipboardData || window.clipboardData;
+ if (!clipboardData || BROKEN_SETDATA)
+ return;
+ var mime = USE_IE_MIME_TYPE || forceIEMime ? "Text" : "text/plain";
+ try {
+ if (data) {
+ return clipboardData.setData(mime, data) !== false;
+ } else {
+ return clipboardData.getData(mime);
+ }
+ } catch(e) {
+ if (!forceIEMime)
+ return handleClipboardData(e, data, true);
+ }
+ };
+
+ var doCopy = function(e, isCut) {
+ var data = host.getCopyText();
+ if (!data)
+ return event.preventDefault(e);
+
+ if (handleClipboardData(e, data)) {
+ if (useragent.isIOS) {
+ cut = isCut;
+ text.value = "\n aa" + data + "a a\n";
+ text.setSelectionRange(4, 4 + data.length);
+ copied = {
+ value: data
+ };
+ }
+ isCut ? host.onCut() : host.onCopy();
+ if (!useragent.isIOS) event.preventDefault(e);
+ } else {
+ copied = true;
+ text.value = data;
+ text.select();
+ setTimeout(function(){
+ copied = false;
+ resetValue();
+ resetSelection();
+ isCut ? host.onCut() : host.onCopy();
+ });
+ }
+ };
+
+ var onCut = function(e) {
+ doCopy(e, true);
+ };
+
+ var onCopy = function(e) {
+ doCopy(e, false);
+ };
+
+ var onPaste = function(e) {
+ var data = handleClipboardData(e);
+ if (typeof data == "string") {
+ if (data)
+ host.onPaste(data, e);
+ if (useragent.isIE)
+ setTimeout(resetSelection);
+ event.preventDefault(e);
+ }
+ else {
+ text.value = "";
+ pasted = true;
+ }
+ };
+
+ event.addCommandKeyListener(text, host.onCommandKey.bind(host));
+
+ event.addListener(text, "select", onSelect);
+
+ event.addListener(text, "input", onInput);
+
+ event.addListener(text, "cut", onCut);
+ event.addListener(text, "copy", onCopy);
+ event.addListener(text, "paste", onPaste);
+ var onCompositionStart = function(e) {
+ if (inComposition || !host.onCompositionStart || host.$readOnly)
+ return;
+ inComposition = {};
+ inComposition.canUndo = host.session.$undoManager;
+ host.onCompositionStart();
+ setTimeout(onCompositionUpdate, 0);
+ host.on("mousedown", onCompositionEnd);
+ if (inComposition.canUndo && !host.selection.isEmpty()) {
+ host.insert("");
+ host.session.markUndoGroup();
+ host.selection.clearSelection();
+ }
+ host.session.markUndoGroup();
+ };
+
+ var onCompositionUpdate = function() {
+ if (!inComposition || !host.onCompositionUpdate || host.$readOnly)
+ return;
+ var val = text.value.replace(/\x01/g, "");
+ if (inComposition.lastValue === val) return;
+
+ host.onCompositionUpdate(val);
+ if (inComposition.lastValue)
+ host.undo();
+ if (inComposition.canUndo)
+ inComposition.lastValue = val;
+ if (inComposition.lastValue) {
+ var r = host.selection.getRange();
+ host.insert(inComposition.lastValue);
+ host.session.markUndoGroup();
+ inComposition.range = host.selection.getRange();
+ host.selection.setRange(r);
+ host.selection.clearSelection();
+ }
+ };
+
+ var onCompositionEnd = function(e) {
+ if (!host.onCompositionEnd || host.$readOnly) return;
+ var c = inComposition;
+ inComposition = false;
+ var timer = setTimeout(function() {
+ timer = null;
+ var str = text.value.replace(/\x01/g, "");
+ if (inComposition)
+ return;
+ else if (str == c.lastValue)
+ resetValue();
+ else if (!c.lastValue && str) {
+ resetValue();
+ sendText(str);
+ }
+ });
+ inputHandler = function compositionInputHandler(str) {
+ if (timer)
+ clearTimeout(timer);
+ str = str.replace(/\x01/g, "");
+ if (str == c.lastValue)
+ return "";
+ if (c.lastValue && timer)
+ host.undo();
+ return str;
+ };
+ host.onCompositionEnd();
+ host.removeListener("mousedown", onCompositionEnd);
+ if (e.type == "compositionend" && c.range) {
+ host.selection.setRange(c.range);
+ }
+ var needsOnInput =
+ (!!useragent.isChrome && useragent.isChrome >= 53) ||
+ (!!useragent.isWebKit && useragent.isWebKit >= 603);
+
+ if (needsOnInput) {
+ onInput();
+ }
+ };
+
+
+
+ var syncComposition = lang.delayedCall(onCompositionUpdate, 50);
+
+ event.addListener(text, "compositionstart", onCompositionStart);
+ if (useragent.isGecko) {
+ event.addListener(text, "text", function(){syncComposition.schedule()});
+ } else {
+ event.addListener(text, "keyup", function(){syncComposition.schedule()});
+ event.addListener(text, "keydown", function(){syncComposition.schedule()});
+ }
+ event.addListener(text, "compositionend", onCompositionEnd);
+
+ this.getElement = function() {
+ return text;
+ };
+
+ this.setReadOnly = function(readOnly) {
+ text.readOnly = readOnly;
+ };
+
+ this.onContextMenu = function(e) {
+ afterContextMenu = true;
+ resetSelection(host.selection.isEmpty());
+ host._emit("nativecontextmenu", {target: host, domEvent: e});
+ this.moveToMouse(e, true);
+ };
+
+ this.moveToMouse = function(e, bringToFront) {
+ if (!tempStyle)
+ tempStyle = text.style.cssText;
+ text.style.cssText = (bringToFront ? "z-index:100000;" : "")
+ + "height:" + text.style.height + ";"
+ + (useragent.isIE ? "opacity:0.1;" : "");
+
+ var rect = host.container.getBoundingClientRect();
+ var style = dom.computedStyle(host.container);
+ var top = rect.top + (parseInt(style.borderTopWidth) || 0);
+ var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);
+ var maxTop = rect.bottom - top - text.clientHeight -2;
+ var move = function(e) {
+ text.style.left = e.clientX - left - 2 + "px";
+ text.style.top = Math.min(e.clientY - top - 2, maxTop) + "px";
+ };
+ move(e);
+
+ if (e.type != "mousedown")
+ return;
+
+ if (host.renderer.$keepTextAreaAtCursor)
+ host.renderer.$keepTextAreaAtCursor = null;
+
+ clearTimeout(closeTimeout);
+ if (useragent.isWin)
+ event.capture(host.container, move, onContextMenuClose);
+ };
+
+ this.onContextMenuClose = onContextMenuClose;
+ var closeTimeout;
+ function onContextMenuClose() {
+ clearTimeout(closeTimeout);
+ closeTimeout = setTimeout(function () {
+ if (tempStyle) {
+ text.style.cssText = tempStyle;
+ tempStyle = '';
+ }
+ if (host.renderer.$keepTextAreaAtCursor == null) {
+ host.renderer.$keepTextAreaAtCursor = true;
+ host.renderer.$moveTextAreaToCursor();
+ }
+ }, 0);
+ }
+
+ var onContextMenu = function(e) {
+ host.textInput.onContextMenu(e);
+ onContextMenuClose();
+ };
+ event.addListener(text, "mouseup", onContextMenu);
+ event.addListener(text, "mousedown", function(e) {
+ e.preventDefault();
+ onContextMenuClose();
+ });
+ event.addListener(host.renderer.scroller, "contextmenu", onContextMenu);
+ event.addListener(text, "contextmenu", onContextMenu);
+
+ if (useragent.isIOS) {
+ var typingResetTimeout = null;
+ var typing = false;
+
+ parentNode.addEventListener("keydown", function (e) {
+ if (typingResetTimeout) clearTimeout(typingResetTimeout);
+ typing = true;
+ });
+
+ parentNode.addEventListener("keyup", function (e) {
+ typingResetTimeout = setTimeout(function () {
+ typing = false;
+ }, 100);
+ });
+ var detectArrowKeys = function(e) {
+ if (document.activeElement !== text) return;
+ if (typing) return;
+
+ if (cut) {
+ return setTimeout(function () {
+ cut = false;
+ }, 100);
+ }
+ var selectionStart = text.selectionStart;
+ var selectionEnd = text.selectionEnd;
+ text.setSelectionRange(4, 5);
+ if (selectionStart == selectionEnd) {
+ switch (selectionStart) {
+ case 0: host.onCommandKey(null, 0, KEYS.up); break;
+ case 1: host.onCommandKey(null, 0, KEYS.home); break;
+ case 2: host.onCommandKey(null, MODS.option, KEYS.left); break;
+ case 4: host.onCommandKey(null, 0, KEYS.left); break;
+ case 5: host.onCommandKey(null, 0, KEYS.right); break;
+ case 7: host.onCommandKey(null, MODS.option, KEYS.right); break;
+ case 8: host.onCommandKey(null, 0, KEYS.end); break;
+ case 9: host.onCommandKey(null, 0, KEYS.down); break;
+ }
+ } else {
+ switch (selectionEnd) {
+ case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break;
+ case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break;
+ case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break;
+ case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break;
+ }
+ switch (selectionStart) {
+ case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break;
+ case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break;
+ case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break;
+ case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break;
+ }
+ }
+ }
+ document.addEventListener("selectionchange", detectArrowKeys);
+ host.on("destroy", function() {
+ document.removeEventListener("selectionchange", detectArrowKeys);
+ })
+ }
+};
+
+exports.TextInput = TextInput;
+});
+
+ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"], function(require, exports, module) {
+"use strict";
+
+var event = require("../lib/event");
+var useragent = require("../lib/useragent");
+var dom = require("../lib/dom");
+var lang = require("../lib/lang");
+var BROKEN_SETDATA = useragent.isChrome < 18;
+var USE_IE_MIME_TYPE = useragent.isIE;
+
+var TextInputIOS = require("./textinput_ios").TextInput
+var TextInput = function(parentNode, host) {
+ if (useragent.isIOS)
+ return TextInputIOS.call(this, parentNode, host);
+
+ var text = dom.createElement("textarea");
+ text.className = "ace_text-input";
+
+ text.setAttribute("wrap", "off");
+ text.setAttribute("autocorrect", "off");
+ text.setAttribute("autocapitalize", "off");
+ text.setAttribute("spellcheck", false);
+
+ text.style.opacity = "0";
+ parentNode.insertBefore(text, parentNode.firstChild);
+
+ var PLACEHOLDER = "\u2028\u2028";
var copied = false;
var pasted = false;
@@ -2023,54 +2498,6 @@ var TextInput = function(parentNode, host) {
var isAllSelected = function(text) {
return text.selectionStart === 0 && text.selectionEnd === text.value.length;
};
- if (!text.setSelectionRange && text.createTextRange) {
- text.setSelectionRange = function(selectionStart, selectionEnd) {
- var range = this.createTextRange();
- range.collapse(true);
- range.moveStart('character', selectionStart);
- range.moveEnd('character', selectionEnd);
- range.select();
- };
- isAllSelected = function(text) {
- try {
- var range = text.ownerDocument.selection.createRange();
- }catch(e) {}
- if (!range || range.parentElement() != text) return false;
- return range.text == text.value;
- }
- }
- if (useragent.isOldIE) {
- var inPropertyChange = false;
- var onPropertyChange = function(e){
- if (inPropertyChange)
- return;
- var data = text.value;
- if (inComposition || !data || data == PLACEHOLDER)
- return;
- if (e && data == PLACEHOLDER[0])
- return syncProperty.schedule();
-
- sendText(data);
- inPropertyChange = true;
- resetValue();
- inPropertyChange = false;
- };
- var syncProperty = lang.delayedCall(onPropertyChange);
- event.addListener(text, "propertychange", onPropertyChange);
-
- var keytable = { 13:1, 27:1 };
- event.addListener(text, "keyup", function (e) {
- if (inComposition && (!text.value || keytable[e.keyCode]))
- setTimeout(onCompositionEnd, 0);
- if ((text.value.charCodeAt(0)||0) < 129) {
- return syncProperty.call();
- }
- inComposition ? onCompositionUpdate() : onCompositionStart();
- });
- event.addListener(text, "keydown", function (e) {
- syncProperty.schedule(50);
- });
- }
var onSelect = function(e) {
if (copied) {
@@ -2197,7 +2624,7 @@ var TextInput = function(parentNode, host) {
event.addListener(text, "cut", onCut);
event.addListener(text, "copy", onCopy);
event.addListener(text, "paste", onPaste);
- if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)){
+ if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {
event.addListener(parentNode, "keydown", function(e) {
if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)
return;
@@ -2234,7 +2661,7 @@ var TextInput = function(parentNode, host) {
var onCompositionUpdate = function() {
if (!inComposition || !host.onCompositionUpdate || host.$readOnly)
return;
- var val = text.value.replace(/\x01/g, "");
+ var val = text.value.replace(/\u2028/g, "");
if (inComposition.lastValue === val) return;
host.onCompositionUpdate(val);
@@ -2258,7 +2685,7 @@ var TextInput = function(parentNode, host) {
inComposition = false;
var timer = setTimeout(function() {
timer = null;
- var str = text.value.replace(/\x01/g, "");
+ var str = text.value.replace(/\u2028/g, "");
if (inComposition)
return;
else if (str == c.lastValue)
@@ -2271,7 +2698,7 @@ var TextInput = function(parentNode, host) {
inputHandler = function compositionInputHandler(str) {
if (timer)
clearTimeout(timer);
- str = str.replace(/\x01/g, "");
+ str = str.replace(/\u2028/g, "");
if (str == c.lastValue)
return "";
if (c.lastValue && timer)
@@ -2283,6 +2710,13 @@ var TextInput = function(parentNode, host) {
if (e.type == "compositionend" && c.range) {
host.selection.setRange(c.range);
}
+ var needsOnInput =
+ (!!useragent.isChrome && useragent.isChrome >= 53) ||
+ (!!useragent.isWebKit && useragent.isWebKit >= 603);
+
+ if (needsOnInput) {
+ onInput();
+ }
};
@@ -2314,8 +2748,6 @@ var TextInput = function(parentNode, host) {
};
this.moveToMouse = function(e, bringToFront) {
- if (!bringToFront && useragent.isOldIE)
- return;
if (!tempStyle)
tempStyle = text.style.cssText;
text.style.cssText = (bringToFront ? "z-index:100000;" : "")
@@ -2340,7 +2772,7 @@ var TextInput = function(parentNode, host) {
host.renderer.$keepTextAreaAtCursor = null;
clearTimeout(closeTimeout);
- if (useragent.isWin && !useragent.isOldIE)
+ if (useragent.isWin)
event.capture(host.container, move, onContextMenuClose);
};
@@ -2357,7 +2789,7 @@ var TextInput = function(parentNode, host) {
host.renderer.$keepTextAreaAtCursor = true;
host.renderer.$moveTextAreaToCursor();
}
- }, useragent.isOldIE ? 200 : 0);
+ }, 0);
}
var onContextMenu = function(e) {
@@ -2423,9 +2855,12 @@ function DefaultHandlers(mouseHandler) {
if (selectionEmpty || button == 1)
editor.selection.moveToPosition(pos);
editor.$blockScrolling--;
- if (button == 2)
+ if (button == 2) {
editor.textInput.onContextMenu(ev.domEvent);
- return; // stopping event here breaks contextmenu on ff mac
+ if (!useragent.isMozilla)
+ ev.preventDefault();
+ }
+ return;
}
this.mousedownEvent.time = Date.now();
@@ -2693,6 +3128,13 @@ function Tooltip (parentNode) {
this.getWidth = function() {
return this.getElement().offsetWidth;
};
+
+ this.destroy = function() {
+ this.isOpen = false;
+ if (this.$element && this.$element.parentNode) {
+ this.$element.parentNode.removeChild(this.$element);
+ }
+ };
}).call(Tooltip.prototype);
@@ -3327,7 +3769,7 @@ exports.get = function (url, callback) {
exports.loadScript = function(path, callback) {
var head = dom.getDocumentHead();
var s = document.createElement('script');
- s.setAttribute('nonce', btoa(OC.requestToken));
+
s.src = path;
head.appendChild(s);
@@ -4585,6 +5027,16 @@ var Selection = function(session) {
this.moveCursorDown = function() {
this.moveCursorBy(1, 0);
};
+ this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) {
+ var start = cursor.column;
+ var end = cursor.column + tabSize;
+
+ if (direction < 0) {
+ start = cursor.column - tabSize;
+ end = cursor.column;
+ }
+ return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(" ").length-1 == tabSize
+ }
this.moveCursorLeft = function() {
var cursor = this.lead.getPosition(),
fold;
@@ -4598,10 +5050,11 @@ var Selection = function(session) {
}
else {
var tabSize = this.session.getTabSize();
- if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column-tabSize, cursor.column).split(" ").length-1 == tabSize)
+ if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {
this.moveCursorBy(0, -tabSize);
- else
+ } else {
this.moveCursorBy(0, -1);
+ }
}
};
this.moveCursorRight = function() {
@@ -4618,10 +5071,11 @@ var Selection = function(session) {
else {
var tabSize = this.session.getTabSize();
var cursor = this.lead;
- if (this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(cursor.column, cursor.column+tabSize).split(" ").length-1 == tabSize)
+ if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {
this.moveCursorBy(0, tabSize);
- else
+ } else {
this.moveCursorBy(0, 1);
+ }
}
};
this.moveCursorLineStart = function() {
@@ -5189,7 +5643,7 @@ var Tokenizer = function(rules) {
rule = state[mapping[i]];
if (rule.onMatch)
- type = rule.onMatch(value, currentState, stack);
+ type = rule.onMatch(value, currentState, stack, line);
else
type = rule.token;
@@ -5211,6 +5665,8 @@ var Tokenizer = function(rules) {
re = this.regExps[currentState];
re.lastIndex = index;
}
+ if (rule.consumeLineEnd)
+ lastIndex = index;
break;
}
@@ -5424,13 +5880,12 @@ var TextHighlightRules = function() {
}
}
}
- var includeName = typeof rule == "string"
- ? rule
- : typeof rule.include == "string"
- ? rule.include
- : "";
+ var includeName = typeof rule == "string" ? rule : rule.include;
if (includeName) {
- toInsert = rules[includeName];
+ if (Array.isArray(includeName))
+ toInsert = includeName.map(function(x) { return rules[x]; });
+ else
+ toInsert = rules[includeName];
}
if (toInsert) {
@@ -5633,6 +6088,8 @@ var SAFE_INSERT_BEFORE_TOKENS =
var context;
var contextCache = {};
+var defaultQuotes = {'"' : '"', "'" : "'"};
+
var initContext = function(editor) {
var id = -1;
if (editor.multiSelect) {
@@ -5666,7 +6123,7 @@ var getWrapped = function(selection, selected, opening, closing) {
};
};
-var CstyleBehaviour = function() {
+var CstyleBehaviour = function(options) {
this.add("braces", "insertion", function(state, action, editor, session, text) {
var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row);
@@ -5677,7 +6134,7 @@ var CstyleBehaviour = function() {
if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) {
return getWrapped(selection, selected, '{', '}');
} else if (CstyleBehaviour.isSaneInsertion(editor, session)) {
- if (/[\]\}\)]/.test(line[cursor.column]) || editor.inMultiSelectMode) {
+ if (/[\]\}\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) {
CstyleBehaviour.recordAutoInsert(editor, session, "}");
return {
text: '{}',
@@ -5840,14 +6297,15 @@ var CstyleBehaviour = function() {
});
this.add("string_dquotes", "insertion", function(state, action, editor, session, text) {
- if (text == '"' || text == "'") {
+ var quotes = session.$mode.$quotes || defaultQuotes;
+ if (text.length == 1 && quotes[text]) {
if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)
return;
initContext(editor);
var quote = text;
var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection);
- if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) {
+ if (selected !== "" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {
return getWrapped(selection, selected, quote, quote);
} else if (!selected) {
var cursor = editor.getCursorPosition();
@@ -6047,7 +6505,7 @@ var Mode = function() {
};
(function() {
- this.$behaviour = new CstyleBehaviour();
+ this.$defaultBehaviour = new CstyleBehaviour();
this.tokenRe = new RegExp("^["
+ unicode.packages.L
@@ -6974,6 +7432,9 @@ var BackgroundTokenizer = function(tokenizer, editor) {
}
self.currentLine = currentLine;
+ if (endLine == -1)
+ endLine = currentLine;
+
if (startLine <= endLine)
self.fireUpdateEvent(startLine, endLine);
};
@@ -8148,9 +8609,13 @@ function Folding() {
this.getCommentFoldRange = function(row, column, dir) {
var iterator = new TokenIterator(this, row, column);
var token = iterator.getCurrentToken();
- if (token && /^comment|string/.test(token.type)) {
+ var type = token.type;
+ if (token && /^comment|string/.test(type)) {
+ type = type.match(/comment|string/)[0];
+ if (type == "comment")
+ type += "|doc-start";
+ var re = new RegExp(type);
var range = new Range();
- var re = new RegExp(token.type.replace(/\..*/, "\\."));
if (dir != 1) {
do {
token = iterator.stepBackward();
@@ -8164,8 +8629,16 @@ function Folding() {
iterator = new TokenIterator(this, row, column);
if (dir != -1) {
+ var lastRow = -1;
do {
token = iterator.stepForward();
+ if (lastRow == -1) {
+ var state = this.getState(iterator.$row);
+ if (!re.test(state))
+ lastRow = iterator.$row;
+ } else if (iterator.$row > lastRow) {
+ break;
+ }
} while (token && re.test(token.type));
token = iterator.stepBackward();
} else
@@ -8615,6 +9088,8 @@ var EditSession = function(text, mode) {
};
+EditSession.$uid = 0;
+
(function() {
oop.implement(this, EventEmitter);
@@ -8824,6 +9299,12 @@ var EditSession = function(text, mode) {
this.isTabStop = function(position) {
return this.$useSoftTabs && (position.column % this.$tabSize === 0);
};
+ this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {
+ this.setOption("navigateWithinSoftTabs", navigateWithinSoftTabs)
+ }
+ this.getNavigateWithinSoftTabs = function() {
+ return this.$navigateWithinSoftTabs;
+ }
this.$overwrite = false;
this.setOverwrite = function(overwrite) {
@@ -10303,6 +10784,7 @@ config.defineOptions(EditSession.prototype, "session", {
initialValue: 4,
handlesSet: true
},
+ navigateWithinSoftTabs: {initialValue: false},
overwrite: {
set: function(val) {this._signal("changeOverwrite");},
initialValue: false
@@ -10350,18 +10832,15 @@ var Search = function() {
return false;
var firstRange = null;
- iterator.forEach(function(range, row, offset) {
- if (!range.start) {
- var column = range.offset + (offset || 0);
- firstRange = new Range(row, column, row, column + range.length);
- if (!range.length && options.start && options.start.start
- && options.skipCurrent != false && firstRange.isEqual(options.start)
- ) {
- firstRange = null;
- return false;
- }
- } else
- firstRange = range;
+ iterator.forEach(function(sr, sc, er, ec) {
+ firstRange = new Range(sr, sc, er, ec);
+ if (sc == ec && options.start && options.start.start
+ && options.skipCurrent != false && firstRange.isEqual(options.start)
+ ) {
+ firstRange = null;
+ return false;
+ }
+
return true;
});
@@ -10464,62 +10943,6 @@ var Search = function() {
return replacement;
};
- this.$matchIterator = function(session, options) {
- var re = this.$assembleRegExp(options);
- if (!re)
- return false;
-
- var callback;
- if (options.$isMultiLine) {
- var len = re.length;
- var matchIterator = function(line, row, offset) {
- var startIndex = line.search(re[0]);
- if (startIndex == -1)
- return;
- for (var i = 1; i < len; i++) {
- line = session.getLine(row + i);
- if (line.search(re[i]) == -1)
- return;
- }
-
- var endIndex = line.match(re[len - 1])[0].length;
-
- var range = new Range(row, startIndex, row + len - 1, endIndex);
- if (re.offset == 1) {
- range.start.row--;
- range.start.column = Number.MAX_VALUE;
- } else if (offset)
- range.start.column += offset;
-
- if (callback(range))
- return true;
- };
- } else if (options.backwards) {
- var matchIterator = function(line, row, startIndex) {
- var matches = lang.getMatchOffsets(line, re);
- for (var i = matches.length-1; i >= 0; i--)
- if (callback(matches[i], row, startIndex))
- return true;
- };
- } else {
- var matchIterator = function(line, row, startIndex) {
- var matches = lang.getMatchOffsets(line, re);
- for (var i = 0; i < matches.length; i++)
- if (callback(matches[i], row, startIndex))
- return true;
- };
- }
-
- var lineIterator = this.$lineIterator(session, options);
-
- return {
- forEach: function(_callback) {
- callback = _callback;
- lineIterator.forEach(matchIterator);
- }
- };
- };
-
this.$assembleRegExp = function(options, $disableFakeMultiline) {
if (options.needle instanceof RegExp)
return options.re = options.needle;
@@ -10533,7 +10956,7 @@ var Search = function() {
needle = lang.escapeRegExp(needle);
if (options.wholeWord)
- needle = "\\b" + needle + "\\b";
+ needle = addWordBoundary(needle, options);
var modifier = options.caseSensitive ? "gm" : "gmi";
@@ -10557,16 +10980,13 @@ var Search = function() {
} catch(e) {
return false;
}
- if (parts[0] == "") {
- re.shift();
- re.offset = 1;
- } else {
- re.offset = 0;
- }
return re;
};
- this.$lineIterator = function(session, options) {
+ this.$matchIterator = function(session, options) {
+ var re = this.$assembleRegExp(options);
+ if (!re)
+ return false;
var backwards = options.backwards == true;
var skipCurrent = options.skipCurrent != false;
@@ -10580,48 +11000,114 @@ var Search = function() {
var firstRow = range ? range.start.row : 0;
var lastRow = range ? range.end.row : session.getLength() - 1;
-
- var forEach = backwards ? function(callback) {
+
+ if (backwards) {
+ var forEach = function(callback) {
var row = start.row;
-
- var line = session.getLine(row).substring(0, start.column);
- if (callback(line, row))
+ if (forEachInLine(row, start.column, callback))
return;
-
for (row--; row >= firstRow; row--)
- if (callback(session.getLine(row), row))
+ if (forEachInLine(row, Number.MAX_VALUE, callback))
return;
-
if (options.wrap == false)
return;
-
for (row = lastRow, firstRow = start.row; row >= firstRow; row--)
- if (callback(session.getLine(row), row))
+ if (forEachInLine(row, Number.MAX_VALUE, callback))
return;
- } : function(callback) {
+ };
+ }
+ else {
+ var forEach = function(callback) {
var row = start.row;
-
- var line = session.getLine(row).substr(start.column);
- if (callback(line, row, start.column))
+ if (forEachInLine(row, start.column, callback))
return;
-
- for (row = row+1; row <= lastRow; row++)
- if (callback(session.getLine(row), row))
+ for (row = row + 1; row <= lastRow; row++)
+ if (forEachInLine(row, 0, callback))
return;
-
if (options.wrap == false)
return;
-
for (row = firstRow, lastRow = start.row; row <= lastRow; row++)
- if (callback(session.getLine(row), row))
+ if (forEachInLine(row, 0, callback))
return;
};
+ }
+ if (options.$isMultiLine) {
+ var len = re.length;
+ var forEachInLine = function(row, offset, callback) {
+ var startRow = backwards ? row - len + 1 : row;
+ if (startRow < 0) return;
+ var line = session.getLine(startRow);
+ var startIndex = line.search(re[0])
+ if (!backwards && startIndex < offset || startIndex === -1) return;
+ for (var i = 1; i < len; i++) {
+ line = session.getLine(startRow + i);
+ if (line.search(re[i]) == -1)
+ return;
+ }
+ var endIndex = line.match(re[len - 1])[0].length;
+ if (backwards && endIndex > offset) return;
+ if (callback(startRow, startIndex, startRow + len - 1, endIndex))
+ return true;
+ };
+ }
+ else if (backwards) {
+ var forEachInLine = function(row, endIndex, callback) {
+ var line = session.getLine(row);
+ var matches = [];
+ var m, last = 0;
+ re.lastIndex = 0;
+ while((m = re.exec(line))) {
+ var length = m[0].length;
+ last = m.index;
+ if (!length) {
+ if (last >= line.length) break;
+ re.lastIndex = last += 1;
+ }
+ if (m.index + length > endIndex)
+ break;
+ matches.push(m.index, length)
+ }
+ for (var i = matches.length - 1; i >= 0; i -= 2) {
+ var column = matches[i - 1];
+ var length = matches[i];
+ if (callback(row, column, row, column + length))
+ return true;
+ }
+ };
+ }
+ else {
+ var forEachInLine = function(row, startIndex, callback) {
+ var line = session.getLine(row);
+ var m;
+ var last = startIndex;
+ re.lastIndex = startIndex;
+ while((m = re.exec(line))) {
+ var length = m[0].length;
+ last = m.index;
+ if (callback(row, last, row,last + length))
+ return true;
+ if (!length) {
+ re.lastIndex = last += 1;
+ if (last >= line.length) return false;
+ }
+ }
+ };
+ }
return {forEach: forEach};
};
}).call(Search.prototype);
+function addWordBoundary(needle, options) {
+ function wordBoundary(c) {
+ if (/\w/.test(c) || options.regExp) return "\\b";
+ return "";
+ }
+ return wordBoundary(needle[0]) + needle
+ + wordBoundary(needle[needle.length - 1]);
+}
+
exports.Search = Search;
});
@@ -10713,7 +11199,8 @@ MultiHashHandler.prototype = HashHandler.prototype;
function getPosition(command) {
return typeof command == "object" && command.bindKey
- && command.bindKey.position || 0;
+ && command.bindKey.position
+ || (command.isDefault ? -100 : 0);
}
this._addCommandToBinding = function(keyId, command, position) {
var ckb = this.commandKeyBinding, i;
@@ -10727,13 +11214,11 @@ MultiHashHandler.prototype = HashHandler.prototype;
} else if ((i = ckb[keyId].indexOf(command)) != -1) {
ckb[keyId].splice(i, 1);
}
-
+
if (typeof position != "number") {
- if (position || command.isDefault)
- position = -100;
- else
- position = getPosition(command);
+ position = getPosition(command);
}
+
var commands = ckb[keyId];
for (i = 0; i < commands.length; i++) {
var other = commands[i];
@@ -10875,7 +11360,7 @@ oop.inherits(CommandManager, MultiHashHandler);
}
return false;
}
-
+
if (typeof command === "string")
command = this.commands[command];
@@ -10885,6 +11370,9 @@ oop.inherits(CommandManager, MultiHashHandler);
if (editor && editor.$readOnly && !command.readOnly)
return false;
+ if (command.isAvailable && !command.isAvailable(editor))
+ return false;
+
var e = {editor: editor, command: command, args: args};
e.returnValue = this._emit("exec", e);
this._signal("afterExec", e);
@@ -10976,7 +11464,7 @@ exports.commands = [{
readOnly: true
}, {
name: "goToNextError",
- bindKey: bindKey("Alt-E", "Ctrl-E"),
+ bindKey: bindKey("Alt-E", "F4"),
exec: function(editor) {
config.loadModule("ace/ext/error_marker", function(module) {
module.showErrorMarker(editor, 1);
@@ -10986,7 +11474,7 @@ exports.commands = [{
readOnly: true
}, {
name: "goToPreviousError",
- bindKey: bindKey("Alt-Shift-E", "Ctrl-Shift-E"),
+ bindKey: bindKey("Alt-Shift-E", "Shift-F4"),
exec: function(editor) {
config.loadModule("ace/ext/error_marker", function(module) {
module.showErrorMarker(editor, -1);
@@ -11111,7 +11599,7 @@ exports.commands = [{
readOnly: true
}, {
name: "selecttostart",
- bindKey: bindKey("Ctrl-Shift-Home", "Command-Shift-Up"),
+ bindKey: bindKey("Ctrl-Shift-Home", "Command-Shift-Home|Command-Shift-Up"),
exec: function(editor) { editor.getSelection().selectFileStart(); },
multiSelectAction: "forEach",
readOnly: true,
@@ -11127,7 +11615,7 @@ exports.commands = [{
aceCommandGroup: "fileJump"
}, {
name: "selectup",
- bindKey: bindKey("Shift-Up", "Shift-Up"),
+ bindKey: bindKey("Shift-Up", "Shift-Up|Ctrl-Shift-P"),
exec: function(editor) { editor.getSelection().selectUp(); },
multiSelectAction: "forEach",
scrollIntoView: "cursor",
@@ -11141,7 +11629,7 @@ exports.commands = [{
readOnly: true
}, {
name: "selecttoend",
- bindKey: bindKey("Ctrl-Shift-End", "Command-Shift-Down"),
+ bindKey: bindKey("Ctrl-Shift-End", "Command-Shift-End|Command-Shift-Down"),
exec: function(editor) { editor.getSelection().selectFileEnd(); },
multiSelectAction: "forEach",
readOnly: true,
@@ -11157,7 +11645,7 @@ exports.commands = [{
aceCommandGroup: "fileJump"
}, {
name: "selectdown",
- bindKey: bindKey("Shift-Down", "Shift-Down"),
+ bindKey: bindKey("Shift-Down", "Shift-Down|Ctrl-Shift-N"),
exec: function(editor) { editor.getSelection().selectDown(); },
multiSelectAction: "forEach",
scrollIntoView: "cursor",
@@ -11185,7 +11673,7 @@ exports.commands = [{
readOnly: true
}, {
name: "selecttolinestart",
- bindKey: bindKey("Alt-Shift-Left", "Command-Shift-Left"),
+ bindKey: bindKey("Alt-Shift-Left", "Command-Shift-Left|Ctrl-Shift-A"),
exec: function(editor) { editor.getSelection().selectLineStart(); },
multiSelectAction: "forEach",
scrollIntoView: "cursor",
@@ -11199,7 +11687,7 @@ exports.commands = [{
readOnly: true
}, {
name: "selectleft",
- bindKey: bindKey("Shift-Left", "Shift-Left"),
+ bindKey: bindKey("Shift-Left", "Shift-Left|Ctrl-Shift-B"),
exec: function(editor) { editor.getSelection().selectLeft(); },
multiSelectAction: "forEach",
scrollIntoView: "cursor",
@@ -11227,7 +11715,7 @@ exports.commands = [{
readOnly: true
}, {
name: "selecttolineend",
- bindKey: bindKey("Alt-Shift-Right", "Command-Shift-Right"),
+ bindKey: bindKey("Alt-Shift-Right", "Command-Shift-Right|Shift-End|Ctrl-Shift-E"),
exec: function(editor) { editor.getSelection().selectLineEnd(); },
multiSelectAction: "forEach",
scrollIntoView: "cursor",
@@ -11540,7 +12028,7 @@ exports.commands = [{
scrollIntoView: "cursor"
}, {
name: "transposeletters",
- bindKey: bindKey("Ctrl-T", "Ctrl-T"),
+ bindKey: bindKey("Alt-Shift-X", "Ctrl-T"),
exec: function(editor) { editor.transposeLetters(); },
multiSelectAction: function(editor) {editor.transposeSelections(1); },
scrollIntoView: "cursor"
@@ -11672,13 +12160,17 @@ var Editor = function(renderer, session) {
var container = renderer.getContainerElement();
this.container = container;
this.renderer = renderer;
+ this.id = "editor" + (++Editor.$uid);
this.commands = new CommandManager(useragent.isMac ? "mac" : "win", defaultCommands);
- this.textInput = new TextInput(renderer.getTextAreaContainer(), this);
- this.renderer.textarea = this.textInput.getElement();
+ if (typeof document == "object") {
+ this.textInput = new TextInput(renderer.getTextAreaContainer(), this);
+ this.renderer.textarea = this.textInput.getElement();
+ this.$mouseHandler = new MouseHandler(this);
+ new FoldHandler(this);
+ }
+
this.keyBinding = new KeyBinding(this);
- this.$mouseHandler = new MouseHandler(this);
- new FoldHandler(this);
this.$blockScrolling = 0;
this.$search = new Search().set({
@@ -11705,6 +12197,8 @@ var Editor = function(renderer, session) {
config._signal("editor", this);
};
+Editor.$uid = 0;
+
(function(){
oop.implement(this, EventEmitter);
@@ -11951,6 +12445,9 @@ var Editor = function(renderer, session) {
oldSession && oldSession._signal("changeEditor", {oldEditor: this});
session && session._signal("changeEditor", {editor: this});
+
+ if (session && session.bgTokenizer)
+ session.bgTokenizer.scheduleStart();
};
this.getSession = function() {
return this.session;
@@ -12091,7 +12588,8 @@ var Editor = function(renderer, session) {
var row = iterator.getCurrentTokenRow();
var column = iterator.getCurrentTokenColumn();
var range = new Range(row, column, row, column+token.value.length);
- if (session.$tagHighlight && range.compareRange(session.$backMarkers[session.$tagHighlight].range)!==0) {
+ var sbm = session.$backMarkers[session.$tagHighlight];
+ if (session.$tagHighlight && sbm != undefined && range.compareRange(sbm.range) !== 0) {
session.removeMarker(session.$tagHighlight);
session.$tagHighlight = null;
}
@@ -12359,7 +12857,7 @@ var Editor = function(renderer, session) {
cursor = this.session.remove(range);
this.clearSelection();
}
- else if (this.session.getOverwrite()) {
+ else if (this.session.getOverwrite() && text.indexOf("\n") == -1) {
var range = new Range.fromPoints(cursor, cursor);
range.end.column += text.length;
this.session.remove(range);
@@ -12618,6 +13116,7 @@ var Editor = function(renderer, session) {
range = new Range(cursor.row, column-2, cursor.row, column);
}
this.session.replace(range, swap);
+ this.session.selection.moveToPosition(range.end);
};
this.toLowerCase = function() {
var originalRange = this.getSelectionRange();
@@ -13773,7 +14272,7 @@ var Gutter = function(parentEl) {
var text = lastLineNumber = gutterRenderer
? gutterRenderer.getText(session, row)
: row + firstLineNumber;
- if (text != cell.textNode.data)
+ if (text !== cell.textNode.data)
cell.textNode.data = text;
row++;
@@ -13880,9 +14379,7 @@ var Marker = function(parentEl) {
};
this.update = function(config) {
- var config = config || this.config;
- if (!config)
- return;
+ if (!config) return;
this.config = config;
@@ -14821,6 +15318,7 @@ var VScrollBar = function(parent, renderer) {
this.width = dom.scrollbarWidth(parent.ownerDocument);
this.inner.style.width =
this.element.style.width = (this.width || 15) + 5 + "px";
+ this.$minWidth = 0;
};
oop.inherits(VScrollBar, ScrollBar);
@@ -14840,7 +15338,7 @@ oop.inherits(VScrollBar, ScrollBar);
this.skipEvent = false;
};
this.getWidth = function() {
- return this.isVisible ? this.width : 0;
+ return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);
};
this.setHeight = function(height) {
this.element.style.height = height + "px";
@@ -15119,6 +15617,7 @@ overflow: hidden;\
font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\
direction: ltr;\
text-align: left;\
+-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\
}\
.ace_scroller {\
position: absolute;\
@@ -15292,6 +15791,9 @@ box-sizing: border-box;\
border-left: 2px solid;\
transform: translatez(0);\
}\
+.ace_multiselect .ace_cursor {\
+border-left-width: 1px;\
+}\
.ace_slim-cursors .ace_cursor {\
border-left-width: 1px;\
}\
@@ -15306,9 +15808,6 @@ opacity: 0.2;\
-webkit-transition: opacity 0.18s;\
transition: opacity 0.18s;\
}\
-.ace_editor.ace_multiselect .ace_cursor {\
-border-left-width: 1px;\
-}\
.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\
position: absolute;\
z-index: 3;\
@@ -15486,6 +15985,11 @@ z-index: 8;\
.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\
.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\
.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\
+.ace_text-input-ios {\
+position: absolute !important;\
+top: -100000px !important;\
+left: -100000px !important;\
+}\
";
dom.importCssString(editorCss, "ace_editor.css");
@@ -15644,7 +16148,7 @@ var VirtualRenderer = function(container, theme) {
this.$loop.schedule(this.CHANGE_FULL);
this.session.$setFontMetrics(this.$fontMetrics);
- this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null;
+ this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;
this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);
this.onChangeNewLineMode()
@@ -16247,6 +16751,7 @@ var VirtualRenderer = function(container, theme) {
};
this.$updateLines = function() {
+ if (!this.$changedLines) return;
var firstRow = this.$changedLines.firstRow;
var lastRow = this.$changedLines.lastRow;
this.$changedLines = null;
@@ -16761,7 +17266,26 @@ var net = require("../lib/net");
var EventEmitter = require("../lib/event_emitter").EventEmitter;
var config = require("../config");
-var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
+function $workerBlob(workerUrl) {
+ var script = "importScripts('" + net.qualifyURL(workerUrl) + "');";
+ try {
+ return new Blob([script], {"type": "application/javascript"});
+ } catch (e) { // Backwards-compatibility
+ var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
+ var blobBuilder = new BlobBuilder();
+ blobBuilder.append(script);
+ return blobBuilder.getBlob("application/javascript");
+ }
+}
+
+function createWorker(workerUrl) {
+ var blob = $workerBlob(workerUrl);
+ var URL = window.URL || window.webkitURL;
+ var blobURL = URL.createObjectURL(blob);
+ return new Worker(blobURL);
+}
+
+var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {
this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);
this.changeListener = this.changeListener.bind(this);
this.onMessage = this.onMessage.bind(this);
@@ -16780,19 +17304,9 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
});
}
- try {
- this.$worker = new Worker(workerUrl);
- } catch(e) {
- if (e instanceof window.DOMException) {
- var blob = this.$workerBlob(workerUrl);
- var URL = window.URL || window.webkitURL;
- var blobURL = URL.createObjectURL(blob);
-
- this.$worker = new Worker(blobURL);
- URL.revokeObjectURL(blobURL);
- } else {
- throw e;
- }
+ this.$worker = createWorker(workerUrl);
+ if (importScripts) {
+ this.send("importScripts", importScripts);
}
this.$worker.postMessage({
init : true,
@@ -16813,7 +17327,7 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
this.onMessage = function(e) {
var msg = e.data;
- switch(msg.type) {
+ switch (msg.type) {
case "event":
this._signal(msg.name, {data: msg.data});
break;
@@ -16874,7 +17388,7 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
};
this.attachToDocument = function(doc) {
- if(this.$doc)
+ if (this.$doc)
this.terminate();
this.$doc = doc;
@@ -16903,18 +17417,6 @@ var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl) {
this.emit("change", {data: q});
};
- this.$workerBlob = function(workerUrl) {
- var script = "importScripts('" + net.qualifyURL(workerUrl) + "');";
- try {
- return new Blob([script], {"type": "application/javascript"});
- } catch (e) { // Backwards-compatibility
- var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
- var blobBuilder = new BlobBuilder();
- blobBuilder.append(script);
- return blobBuilder.getBlob("application/javascript");
- }
- };
-
}).call(WorkerClient.prototype);
@@ -16972,6 +17474,8 @@ UIWorkerClient.prototype = WorkerClient.prototype;
exports.UIWorkerClient = UIWorkerClient;
exports.WorkerClient = WorkerClient;
+exports.createWorker = createWorker;
+
});
@@ -19039,7 +19543,7 @@ exports.createEditSession = function(text, mode) {
}
exports.EditSession = EditSession;
exports.UndoManager = UndoManager;
-exports.version = "1.2.5";
+exports.version = "1.2.8";
});
(function() {
ace.require(["ace/ace"], function(a) {
diff --git a/js/core/vendor/ace-builds/src-noconflict/ext-modelist.js b/js/core/vendor/ace-builds/src-noconflict/ext-modelist.js
index 8ead96e..b0c7fd0 100644
--- a/js/core/vendor/ace-builds/src-noconflict/ext-modelist.js
+++ b/js/core/vendor/ace-builds/src-noconflict/ext-modelist.js
@@ -44,6 +44,7 @@ var supportedModes = {
Assembly_x86:["asm|a"],
AutoHotKey: ["ahk"],
BatchFile: ["bat|cmd"],
+ Bro: ["bro"],
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
C9Search: ["c9search_results"],
Cirru: ["cirru|cr"],
@@ -76,19 +77,21 @@ var supportedModes = {
Glsl: ["glsl|frag|vert"],
Gobstones: ["gbs"],
golang: ["go"],
+ GraphQLSchema: ["gql"],
Groovy: ["groovy"],
HAML: ["haml"],
Handlebars: ["hbs|handlebars|tpl|mustache"],
Haskell: ["hs"],
Haskell_Cabal: ["cabal"],
haXe: ["hx"],
+ Hjson: ["hjson"],
HTML: ["html|htm|xhtml"],
HTML_Elixir: ["eex|html.eex"],
HTML_Ruby: ["erb|rhtml|html.erb"],
INI: ["ini|conf|cfg|prefs"],
Io: ["io"],
Jack: ["jack"],
- Jade: ["jade"],
+ Jade: ["jade|pug"],
Java: ["java"],
JavaScript: ["js|jsm|jsx"],
JSON: ["json"],
@@ -123,6 +126,7 @@ var supportedModes = {
Perl: ["pl|pm"],
pgSQL: ["pgsql"],
PHP: ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
+ Pig: ["pig"],
Powershell: ["ps1"],
Praat: ["praat|praatscript|psc|proc"],
Prolog: ["plg|prolog"],
@@ -157,9 +161,9 @@ var supportedModes = {
Text: ["txt"],
Textile: ["textile"],
Toml: ["toml"],
+ TSX: ["tsx"],
Twig: ["twig|swig"],
Typescript: ["ts|typescript|str"],
- TSX: ["tsx"],
Vala: ["vala"],
VBScript: ["vbs|vb"],
Velocity: ["vm"],
diff --git a/js/core/vendor/ace-builds/src-noconflict/ext-searchbox.js b/js/core/vendor/ace-builds/src-noconflict/ext-searchbox.js
index 2031506..81b936b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/ext-searchbox.js
+++ b/js/core/vendor/ace-builds/src-noconflict/ext-searchbox.js
@@ -7,16 +7,14 @@ var event = require("../lib/event");
var searchboxCss = "\
.ace_search {\
background-color: #ddd;\
+color: #666;\
border: 1px solid #cbcbcb;\
border-top: 0 none;\
-max-width: 325px;\
overflow: hidden;\
margin: 0;\
-padding: 4px;\
-padding-right: 6px;\
-padding-bottom: 0;\
+padding: 4px 6px 0 4px;\
position: absolute;\
-top: 0px;\
+top: 0;\
z-index: 99;\
white-space: normal;\
}\
@@ -31,59 +29,71 @@ border-right: 0 none;\
right: 0;\
}\
.ace_search_form, .ace_replace_form {\
-border-radius: 3px;\
-border: 1px solid #cbcbcb;\
-float: left;\
-margin-bottom: 4px;\
+margin: 0 20px 4px 0;\
overflow: hidden;\
+line-height: 1.9;\
+}\
+.ace_replace_form {\
+margin-right: 0;\
}\
.ace_search_form.ace_nomatch {\
outline: 1px solid red;\
}\
.ace_search_field {\
+border-radius: 3px 0 0 3px;\
background-color: white;\
-border-right: 1px solid #cbcbcb;\
-border: 0 none;\
--webkit-box-sizing: border-box;\
--moz-box-sizing: border-box;\
-box-sizing: border-box;\
-float: left;\
-height: 22px;\
+color: black;\
+border: 1px solid #cbcbcb;\
+border-right: 0 none;\
+box-sizing: border-box!important;\
outline: 0;\
-padding: 0 7px;\
-width: 214px;\
+padding: 0;\
+font-size: inherit;\
margin: 0;\
+line-height: inherit;\
+padding: 0 6px;\
+min-width: 17em;\
+vertical-align: top;\
}\
-.ace_searchbtn,\
-.ace_replacebtn {\
+.ace_searchbtn {\
+border: 1px solid #cbcbcb;\
+line-height: inherit;\
+display: inline-block;\
+padding: 0 6px;\
background: #fff;\
-border: 0 none;\
+border-right: 0 none;\
border-left: 1px solid #dcdcdc;\
cursor: pointer;\
-float: left;\
-height: 22px;\
margin: 0;\
position: relative;\
+box-sizing: content-box!important;\
+color: #666;\
}\
-.ace_searchbtn:last-child,\
-.ace_replacebtn:last-child {\
-border-top-right-radius: 3px;\
-border-bottom-right-radius: 3px;\
+.ace_searchbtn:last-child {\
+border-radius: 0 3px 3px 0;\
+border-right: 1px solid #cbcbcb;\
}\
.ace_searchbtn:disabled {\
background: none;\
cursor: default;\
}\
-.ace_searchbtn {\
-background-position: 50% 50%;\
-background-repeat: no-repeat;\
-width: 27px;\
+.ace_searchbtn:hover {\
+background-color: #eef1f6;\
+}\
+.ace_searchbtn.prev, .ace_searchbtn.next {\
+padding: 0px 0.7em\
}\
-.ace_searchbtn.prev {\
-background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \
+.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\
+content: \"\";\
+border: solid 2px #888;\
+width: 0.5em;\
+height: 0.5em;\
+border-width: 2px 0 0 2px;\
+display:inline-block;\
+transform: rotate(-45deg);\
}\
-.ace_searchbtn.next {\
-background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \
+.ace_searchbtn.next:after {\
+border-width: 0 2px 2px 0 ;\
}\
.ace_searchbtn_close {\
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\
@@ -91,25 +101,19 @@ border-radius: 50%;\
border: 0 none;\
color: #656565;\
cursor: pointer;\
-float: right;\
font: 16px/16px Arial;\
-height: 14px;\
-margin: 5px 1px 9px 5px;\
padding: 0;\
-text-align: center;\
+height: 14px;\
width: 14px;\
+top: 9px;\
+right: 7px;\
+position: absolute;\
}\
.ace_searchbtn_close:hover {\
background-color: #656565;\
background-position: 50% 100%;\
color: white;\
}\
-.ace_replacebtn.prev {\
-width: 54px\
-}\
-.ace_replacebtn.next {\
-width: 27px\
-}\
.ace_button {\
margin-left: 2px;\
cursor: pointer;\
@@ -122,8 +126,7 @@ overflow: hidden;\
opacity: 0.7;\
border: 1px solid rgba(100,100,100,0.23);\
padding: 1px;\
--moz-box-sizing: border-box;\
-box-sizing: border-box;\
+box-sizing: border-box!important;\
color: black;\
}\
.ace_button:hover {\
@@ -145,36 +148,50 @@ text-align: right;\
-o-user-select: none;\
-ms-user-select: none;\
user-select: none;\
+clear: both;\
+}\
+.ace_search_counter {\
+float: left;\
+font-family: arial;\
+padding: 0 8px;\
}";
var HashHandler = require("../keyboard/hash_handler").HashHandler;
var keyUtil = require("../lib/keys");
+var MAX_COUNT = 999;
+
dom.importCssString(searchboxCss, "ace_searchbox");
var html = '<div class="ace_search right">\
- <button type="button" action="hide" class="ace_searchbtn_close"></button>\
+ <span action="hide" class="ace_searchbtn_close"></span>\
<div class="ace_search_form">\
<input class="ace_search_field" placeholder="Search for" spellcheck="false"></input>\
- <button type="button" action="findNext" class="ace_searchbtn next"></button>\
- <button type="button" action="findPrev" class="ace_searchbtn prev"></button>\
- <button type="button" action="findAll" class="ace_searchbtn" title="Alt-Enter">All</button>\
+ <span action="findPrev" class="ace_searchbtn prev"></span>\
+ <span action="findNext" class="ace_searchbtn next"></span>\
+ <span action="findAll" class="ace_searchbtn" title="Alt-Enter">All</span>\
</div>\
<div class="ace_replace_form">\
<input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input>\
- <button type="button" action="replaceAndFindNext" class="ace_replacebtn">Replace</button>\
- <button type="button" action="replaceAll" class="ace_replacebtn">All</button>\
+ <span action="replaceAndFindNext" class="ace_searchbtn">Replace</span>\
+ <span action="replaceAll" class="ace_searchbtn">All</span>\
</div>\
<div class="ace_search_options">\
+ <span action="toggleReplace" class="ace_button" title="Toggel Replace mode"\
+ style="float:left;margin-top:-2px;padding:0 5px;">+</span>\
+ <span class="ace_search_counter"></span>\
<span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span>\
<span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span>\
<span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span>\
+ <span action="searchInSelection" class="ace_button" title="Search In Selection">S</span>\
</div>\
-</div>'.replace(/>\s+/g, ">");
+</div>'.replace(/> +/g, ">");
var SearchBox = function(editor, range, showReplaceForm) {
var div = dom.createElement("div");
div.innerHTML = html;
this.element = div.firstChild;
+
+ this.setSession = this.setSession.bind(this);
this.$init();
this.setEditor(editor);
@@ -183,19 +200,27 @@ var SearchBox = function(editor, range, showReplaceForm) {
(function() {
this.setEditor = function(editor) {
editor.searchBox = this;
- editor.container.appendChild(this.element);
+ editor.renderer.scroller.appendChild(this.element);
this.editor = editor;
};
+
+ this.setSession = function(e) {
+ debugger
+ this.searchRange = null;
+ this.$syncOptions(true);
+ }
this.$initElements = function(sb) {
this.searchBox = sb.querySelector(".ace_search_form");
this.replaceBox = sb.querySelector(".ace_replace_form");
- this.searchOptions = sb.querySelector(".ace_search_options");
+ this.searchOption = sb.querySelector("[action=searchInSelection]");
+ this.replaceOption = sb.querySelector("[action=toggleReplace]");
this.regExpOption = sb.querySelector("[action=toggleRegexpMode]");
this.caseSensitiveOption = sb.querySelector("[action=toggleCaseSensitive]");
this.wholeWordOption = sb.querySelector("[action=toggleWholeWords]");
this.searchInput = this.searchBox.querySelector(".ace_search_field");
this.replaceInput = this.replaceBox.querySelector(".ace_search_field");
+ this.searchCounter = sb.querySelector(".ace_search_counter");
};
this.$init = function() {
@@ -257,10 +282,13 @@ var SearchBox = function(editor, range, showReplaceForm) {
"Ctrl-f|Command-f": function(sb) {
var isReplace = sb.isReplace = !sb.isReplace;
sb.replaceBox.style.display = isReplace ? "" : "none";
+ sb.replaceOption.checked = false;
+ sb.$syncOptions();
sb.searchInput.focus();
},
"Ctrl-H|Command-Option-F": function(sb) {
- sb.replaceBox.style.display = "";
+ sb.replaceOption.checked = true;
+ sb.$syncOptions();
sb.replaceInput.focus();
},
"Ctrl-G|Command-G": function(sb) {
@@ -313,13 +341,40 @@ var SearchBox = function(editor, range, showReplaceForm) {
sb.wholeWordOption.checked = !sb.wholeWordOption.checked;
sb.$syncOptions();
}
+ }, {
+ name: "toggleReplace",
+ exec: function(sb) {
+ sb.replaceOption.checked = !sb.replaceOption.checked;
+ sb.$syncOptions();
+ }
+ }, {
+ name: "searchInSelection",
+ exec: function(sb) {
+ sb.searchOption.checked = !sb.searchRange;
+ sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange());
+ sb.$syncOptions();
+ }
}]);
+
+ this.setSearchRange = function(range) {
+ this.searchRange = range;
+ if (range) {
+ this.searchRangeMarker = this.editor.session.addMarker(range, "ace_active-line");
+ } else if (this.searchRangeMarker) {
+ this.editor.session.removeMarker(this.searchRangeMarker);
+ this.searchRangeMarker = null;
+ }
+ }
- this.$syncOptions = function() {
+ this.$syncOptions = function(preventScroll) {
+ dom.setCssClass(this.replaceOption, "checked", this.searchRange);
+ dom.setCssClass(this.searchOption, "checked", this.searchOption.checked);
+ this.replaceOption.textContent = this.replaceOption.checked ? "-" : "+";
dom.setCssClass(this.regExpOption, "checked", this.regExpOption.checked);
dom.setCssClass(this.wholeWordOption, "checked", this.wholeWordOption.checked);
dom.setCssClass(this.caseSensitiveOption, "checked", this.caseSensitiveOption.checked);
- this.find(false, false);
+ this.replaceBox.style.display = this.replaceOption.checked ? "" : "none";
+ this.find(false, false, preventScroll);
};
this.highlight = function(re) {
@@ -334,10 +389,46 @@ var SearchBox = function(editor, range, showReplaceForm) {
regExp: this.regExpOption.checked,
caseSensitive: this.caseSensitiveOption.checked,
wholeWord: this.wholeWordOption.checked,
- preventScroll: preventScroll
+ preventScroll: preventScroll,
+ range: this.searchRange
});
- dom.setCssClass(this.searchBox, "ace_nomatch", !range && this.searchInput.value);
+ var noMatch = !range && this.searchInput.value;
+ dom.setCssClass(this.searchBox, "ace_nomatch", noMatch);
+ this.editor._emit("findSearchBox", { match: !noMatch });
this.highlight();
+ this.updateCounter();
+ };
+ this.updateCounter = function() {
+ var editor = this.editor;
+ var regex = editor.$search.$options.re;
+ var all = 0;
+ var before = 0
+ if (regex) {
+ var value = this.searchRange
+ ? editor.session.getTextRange(this.searchRange)
+ : editor.getValue();
+
+ var offset = editor.session.doc.positionToIndex(editor.selection.anchor);
+ if (this.searchRange)
+ offset -= editor.session.doc.positionToIndex(this.searchRange.start);
+
+ var last = regex.lastIndex = 0;
+ var m;
+ while ((m = regex.exec(value))) {
+ all++;
+ last = m.index;
+ if (last <= offset)
+ before++;
+ if (all > MAX_COUNT)
+ break
+ if (!m[0]) {
+ regex.lastIndex = last += 1;
+ if (last >= value.length)
+ break;
+ }
+ }
+ }
+ this.searchCounter.textContent = before + " of " + (all > MAX_COUNT ? MAX_COUNT + "+" : all);
};
this.findNext = function() {
this.find(true, false);
@@ -373,25 +464,29 @@ var SearchBox = function(editor, range, showReplaceForm) {
};
this.hide = function() {
+ this.active = false;
+ this.setSearchRange(null)
+ this.editor.off("changeSession", this.setSession);
+
this.element.style.display = "none";
this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);
this.editor.focus();
};
this.show = function(value, isReplace) {
+ this.active = true;
+ this.editor.on("changeSession", this.setSession);
this.element.style.display = "";
- this.replaceBox.style.display = isReplace ? "" : "none";
-
- this.isReplace = isReplace;
-
+ this.replaceOption.checked = isReplace;
+
if (value)
this.searchInput.value = value;
- this.find(false, false, true);
-
this.searchInput.focus();
this.searchInput.select();
this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);
+
+ this.$syncOptions(true);
};
this.isFocused = function() {
diff --git a/js/core/vendor/ace-builds/src-noconflict/keybinding-vim.js b/js/core/vendor/ace-builds/src-noconflict/keybinding-vim.js
index 754d43c..5b0f378 100644
--- a/js/core/vendor/ace-builds/src-noconflict/keybinding-vim.js
+++ b/js/core/vendor/ace-builds/src-noconflict/keybinding-vim.js
@@ -1452,8 +1452,12 @@ dom.importCssString(".normal-mode .ace_cursor{\
if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); }
if (keysAreChars) {
- var here = cm.getCursor();
- cm.replaceRange('', offsetCursor(here, 0, -(keys.length - 1)), here, '+input');
+ var selections = cm.listSelections();
+ for (var i = 0; i < selections.length; i++) {
+ var here = selections[i].head;
+ cm.replaceRange('', offsetCursor(here, 0, -(keys.length - 1)), here, '+input');
+ }
+ vimGlobalState.macroModeState.lastInsertModeChanges.changes.pop();
}
clearInputState(cm);
return match.command;
@@ -1725,7 +1729,9 @@ dom.importCssString(".normal-mode .ace_cursor{\
}
}
if (bestMatch.keys.slice(-11) == '<character>') {
- inputState.selectedCharacter = lastChar(keys);
+ var character = lastChar(keys);
+ if (/<C-.>/.test(character)) return {type: 'none'};
+ inputState.selectedCharacter = character;
}
return {type: 'full', command: bestMatch};
},
@@ -4983,6 +4989,8 @@ dom.importCssString(".normal-mode .ace_cursor{\
cm.setCursor(cm.getCursor().line, cm.getCursor().ch-1);
cm.setOption('keyMap', 'vim');
cm.setOption('disableInput', true);
+
+ lastChange.overwrite = cm.state.overwrite;
cm.toggleOverwrite(false); // exit replace mode if we were in it.
insertModeChangeRegister.setText(lastChange.changes.join(''));
CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"});
@@ -5193,7 +5201,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
if (macroModeState.lastInsertModeChanges.changes.length > 0) {
repeat = !vim.lastEditActionCommand ? 1 : repeat;
var changeObject = macroModeState.lastInsertModeChanges;
- repeatInsertModeChanges(cm, changeObject.changes, repeat);
+ repeatInsertModeChanges(cm, changeObject.changes, repeat, changeObject.overwrite);
}
}
vim.inputState = vim.lastEditInputState;
@@ -5215,7 +5223,7 @@ dom.importCssString(".normal-mode .ace_cursor{\
macroModeState.isPlaying = false;
}
- function repeatInsertModeChanges(cm, changes, repeat) {
+ function repeatInsertModeChanges(cm, changes, repeat, overwrite) {
function keyHandler(binding) {
if (typeof binding == 'string') {
CodeMirror.commands[binding](cm);
@@ -5244,7 +5252,11 @@ dom.importCssString(".normal-mode .ace_cursor{\
CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler);
} else {
var cur = cm.getCursor();
- cm.replaceRange(change, cur, cur);
+ var end = cur;
+ if (overwrite && !/\n/.test(change)) {
+ end = offsetCursor(cur, 0, change.length);
+ }
+ cm.replaceRange(change, cur, end);
}
}
}
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-abc.js b/js/core/vendor/ace-builds/src-noconflict/mode-abc.js
index 41332e8..c03859d 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-abc.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-abc.js
@@ -249,6 +249,7 @@ ace.define("ace/mode/abc",["require","exports","module","ace/lib/oop","ace/mode/
var Mode = function () {
this.HighlightRules = ABCHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-actionscript.js b/js/core/vendor/ace-builds/src-noconflict/mode-actionscript.js
index ff7e7b9..c1af163 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-actionscript.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-actionscript.js
@@ -253,6 +253,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = ActionScriptHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-ada.js b/js/core/vendor/ace-builds/src-noconflict/mode-ada.js
index b4abcd5..da05988 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-ada.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-ada.js
@@ -62,16 +62,16 @@ oop.inherits(AdaHighlightRules, TextHighlightRules);
exports.AdaHighlightRules = AdaHighlightRules;
});
-ace.define("ace/mode/ada",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ada_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/ada",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ada_highlight_rules"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var AdaHighlightRules = require("./ada_highlight_rules").AdaHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = AdaHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-apache_conf.js b/js/core/vendor/ace-builds/src-noconflict/mode-apache_conf.js
index 13636f6..bb6566a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-apache_conf.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-apache_conf.js
@@ -343,6 +343,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = ApacheConfHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-applescript.js b/js/core/vendor/ace-builds/src-noconflict/mode-applescript.js
index 5270d43..936ce2f 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-applescript.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-applescript.js
@@ -246,18 +246,18 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/applescript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/applescript_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/applescript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/applescript_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
-var Tokenizer = require("../tokenizer").Tokenizer;
var AppleScriptHighlightRules = require("./applescript_highlight_rules").AppleScriptHighlightRules;
var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = AppleScriptHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-assembly_x86.js b/js/core/vendor/ace-builds/src-noconflict/mode-assembly_x86.js
index bbbc642..f6a56f1 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-assembly_x86.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-assembly_x86.js
@@ -173,6 +173,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = AssemblyX86HighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-autohotkey.js b/js/core/vendor/ace-builds/src-noconflict/mode-autohotkey.js
index f188860..538e6fd 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-autohotkey.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-autohotkey.js
@@ -221,6 +221,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = AutoHotKeyHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-batchfile.js b/js/core/vendor/ace-builds/src-noconflict/mode-batchfile.js
index ad03902..3f31ce1 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-batchfile.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-batchfile.js
@@ -209,6 +209,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = BatchFileHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-bro.js b/js/core/vendor/ace-builds/src-noconflict/mode-bro.js
new file mode 100644
index 0000000..dd259eb
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-bro.js
@@ -0,0 +1,327 @@
+ace.define("ace/mode/bro_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
+
+var BroHighlightRules = function() {
+
+ this.$rules = {
+ start: [{
+ token: "punctuation.definition.comment.bro",
+ regex: /#/,
+ push: [{
+ token: "comment.line.number-sign.bro",
+ regex: /$/,
+ next: "pop"
+ }, {
+ defaultToken: "comment.line.number-sign.bro"
+ }]
+ }, {
+ token: "keyword.control.bro",
+ regex: /\b(?:break|case|continue|else|for|if|return|switch|next|when|timeout|schedule)\b/
+ }, {
+ token: [
+ "meta.function.bro",
+ "meta.function.bro",
+ "storage.type.bro",
+ "meta.function.bro",
+ "entity.name.function.bro",
+ "meta.function.bro"
+ ],
+ regex: /^(\s*)(?:function|hook|event)(\s*)(.*)(\s*\()(.*)(\).*$)/
+ }, {
+ token: "storage.type.bro",
+ regex: /\b(?:bool|enum|double|int|count|port|addr|subnet|any|file|interval|time|string|table|vector|set|record|pattern|hook)\b/
+ }, {
+ token: "storage.modifier.bro",
+ regex: /\b(?:global|const|redef|local|&(?:optional|rotate_interval|rotate_size|add_func|del_func|expire_func|expire_create|expire_read|expire_write|persistent|synchronized|encrypt|mergeable|priority|group|type_column|log|error_handler))\b/
+ }, {
+ token: "keyword.operator.bro",
+ regex: /\s*(?:\||&&|(?:>|<|!)=?|==)\s*|\b!?in\b/
+ }, {
+ token: "constant.language.bro",
+ regex: /\b(?:T|F)\b/
+ }, {
+ token: "constant.numeric.bro",
+ regex: /\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\.?[0-9]*|\.[0-9]+)(?:(?:e|E)(?:\+|-)?[0-9]+)?)(?:\/(?:tcp|udp|icmp)|\s*(?:u?sec|min|hr|day)s?)?\b/
+ }, {
+ token: "punctuation.definition.string.begin.bro",
+ regex: /"/,
+ push: [{
+ token: "punctuation.definition.string.end.bro",
+ regex: /"/,
+ next: "pop"
+ }, {
+ include: "#string_escaped_char"
+ }, {
+ include: "#string_placeholder"
+ }, {
+ defaultToken: "string.quoted.double.bro"
+ }]
+ }, {
+ token: "punctuation.definition.string.begin.bro",
+ regex: /\//,
+ push: [{
+ token: "punctuation.definition.string.end.bro",
+ regex: /\//,
+ next: "pop"
+ }, {
+ include: "#string_escaped_char"
+ }, {
+ include: "#string_placeholder"
+ }, {
+ defaultToken: "string.quoted.regex.bro"
+ }]
+ }, {
+ token: [
+ "meta.preprocessor.bro.load",
+ "keyword.other.special-method.bro"
+ ],
+ regex: /^(\s*)(\@load(?:-sigs)?)\b/,
+ push: [{
+ token: [],
+ regex: /(?=\#)|$/,
+ next: "pop"
+ }, {
+ defaultToken: "meta.preprocessor.bro.load"
+ }]
+ }, {
+ token: [
+ "meta.preprocessor.bro.if",
+ "keyword.other.special-method.bro",
+ "meta.preprocessor.bro.if"
+ ],
+ regex: /^(\s*)(\@endif|\@if(?:n?def)?)(.*$)/,
+ push: [{
+ token: [],
+ regex: /$/,
+ next: "pop"
+ }, {
+ defaultToken: "meta.preprocessor.bro.if"
+ }]
+ }],
+ "#disabled": [{
+ token: "text",
+ regex: /^\s*\@if(?:n?def)?\b.*$/,
+ push: [{
+ token: "text",
+ regex: /^\s*\@endif\b.*$/,
+ next: "pop"
+ }, {
+ include: "#disabled"
+ }, {
+ include: "#pragma-mark"
+ }],
+ comment: "eat nested preprocessor ifdefs"
+ }],
+ "#preprocessor-rule-other": [{
+ token: [
+ "text",
+ "meta.preprocessor.bro",
+ "meta.preprocessor.bro",
+ "text"
+ ],
+ regex: /^(\s*)(@if)((?:n?def)?)\b(.*?)(?:(?=)|$)/,
+ push: [{
+ token: ["text", "meta.preprocessor.bro", "text"],
+ regex: /^(\s*)(@endif)\b(.*$)/,
+ next: "pop"
+ }, {
+ include: "$base"
+ }]
+ }],
+ "#string_escaped_char": [{
+ token: "constant.character.escape.bro",
+ regex: /\\(?:\\|[abefnprtv'"?]|[0-3]\d{,2}|[4-7]\d?|x[a-fA-F0-9]{,2})/
+ }, {
+ token: "invalid.illegal.unknown-escape.bro",
+ regex: /\\./
+ }],
+ "#string_placeholder": [{
+ token: "constant.other.placeholder.bro",
+ regex: /%(?:\d+\$)?[#0\- +']*[,;:_]?(?:-?\d+|\*(?:-?\d+\$)?)?(?:\.(?:-?\d+|\*(?:-?\d+\$)?)?)?(?:hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]/
+ }, {
+ token: "invalid.illegal.placeholder.bro",
+ regex: /%/
+ }]
+ }
+
+ this.normalizeRules();
+};
+
+BroHighlightRules.metaData = {
+ fileTypes: ["bro"],
+ foldingStartMarker: "^(\\@if(n?def)?)",
+ foldingStopMarker: "^\\@endif",
+ keyEquivalent: "@B",
+ name: "Bro",
+ scopeName: "source.bro"
+}
+
+
+oop.inherits(BroHighlightRules, TextHighlightRules);
+
+exports.BroHighlightRules = BroHighlightRules;
+});
+
+ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../../lib/oop");
+var Range = require("../../range").Range;
+var BaseFoldMode = require("./fold_mode").FoldMode;
+
+var FoldMode = exports.FoldMode = function(commentRegex) {
+ if (commentRegex) {
+ this.foldingStartMarker = new RegExp(
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
+ );
+ this.foldingStopMarker = new RegExp(
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
+ );
+ }
+};
+oop.inherits(FoldMode, BaseFoldMode);
+
+(function() {
+
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
+ this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/;
+ this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
+ this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
+ this._getFoldWidgetBase = this.getFoldWidget;
+ this.getFoldWidget = function(session, foldStyle, row) {
+ var line = session.getLine(row);
+
+ if (this.singleLineBlockCommentRe.test(line)) {
+ if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
+ return "";
+ }
+
+ var fw = this._getFoldWidgetBase(session, foldStyle, row);
+
+ if (!fw && this.startRegionRe.test(line))
+ return "start"; // lineCommentRegionStart
+
+ return fw;
+ };
+
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
+ var line = session.getLine(row);
+
+ if (this.startRegionRe.test(line))
+ return this.getCommentRegionBlock(session, line, row);
+
+ var match = line.match(this.foldingStartMarker);
+ if (match) {
+ var i = match.index;
+
+ if (match[1])
+ return this.openingBracketBlock(session, match[1], row, i);
+
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
+
+ if (range && !range.isMultiLine()) {
+ if (forceMultiline) {
+ range = this.getSectionRange(session, row);
+ } else if (foldStyle != "all")
+ range = null;
+ }
+
+ return range;
+ }
+
+ if (foldStyle === "markbegin")
+ return;
+
+ var match = line.match(this.foldingStopMarker);
+ if (match) {
+ var i = match.index + match[0].length;
+
+ if (match[1])
+ return this.closingBracketBlock(session, match[1], row, i);
+
+ return session.getCommentFoldRange(row, i, -1);
+ }
+ };
+
+ this.getSectionRange = function(session, row) {
+ var line = session.getLine(row);
+ var startIndent = line.search(/\S/);
+ var startRow = row;
+ var startColumn = line.length;
+ row = row + 1;
+ var endRow = row;
+ var maxRow = session.getLength();
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var indent = line.search(/\S/);
+ if (indent === -1)
+ continue;
+ if (startIndent > indent)
+ break;
+ var subRange = this.getFoldWidgetRange(session, "all", row);
+
+ if (subRange) {
+ if (subRange.start.row <= startRow) {
+ break;
+ } else if (subRange.isMultiLine()) {
+ row = subRange.end.row;
+ } else if (startIndent == indent) {
+ break;
+ }
+ }
+ endRow = row;
+ }
+
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
+ };
+ this.getCommentRegionBlock = function(session, line, row) {
+ var startColumn = line.search(/\s*$/);
+ var maxRow = session.getLength();
+ var startRow = row;
+
+ var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
+ var depth = 1;
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var m = re.exec(line);
+ if (!m) continue;
+ if (m[1]) depth--;
+ else depth++;
+
+ if (!depth) break;
+ }
+
+ var endRow = row;
+ if (endRow > startRow) {
+ return new Range(startRow, startColumn, endRow, line.length);
+ }
+ };
+
+}).call(FoldMode.prototype);
+
+});
+
+ace.define("ace/mode/bro",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/bro_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextMode = require("./text").Mode;
+var BroHighlightRules = require("./bro_highlight_rules").BroHighlightRules;
+var FoldMode = require("./folding/cstyle").FoldMode;
+
+var Mode = function() {
+ this.HighlightRules = BroHighlightRules;
+ this.foldingRules = new FoldMode();
+};
+oop.inherits(Mode, TextMode);
+
+(function() {
+ this.$id = "ace/mode/bro"
+}).call(Mode.prototype);
+
+exports.Mode = Mode;
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-c9search.js b/js/core/vendor/ace-builds/src-noconflict/mode-c9search.js
index 608df0e..aad3dc1 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-c9search.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-c9search.js
@@ -108,11 +108,6 @@ var C9SearchHighlightRules = function() {
});
}
- if (replace) {
- search = replace;
- options = "";
- }
-
if (search) {
if (!/regex/.test(options))
search = lang.escapeRegExp(search);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-c_cpp.js b/js/core/vendor/ace-builds/src-noconflict/mode-c_cpp.js
index 90b63ac..ea6d222 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-c_cpp.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-c_cpp.js
@@ -173,11 +173,10 @@ var c_cppHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"singleLineComment" : [
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-cirru.js b/js/core/vendor/ace-builds/src-noconflict/mode-cirru.js
index 274f89c..9d3bab8 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-cirru.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-cirru.js
@@ -190,6 +190,7 @@ var CoffeeFoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = CirruHighlightRules;
this.foldingRules = new CoffeeFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-clojure.js b/js/core/vendor/ace-builds/src-noconflict/mode-clojure.js
index 649f288..c8f7a0d 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-clojure.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-clojure.js
@@ -222,6 +222,7 @@ var MatchingParensOutdent = require("./matching_parens_outdent").MatchingParensO
var Mode = function() {
this.HighlightRules = ClojureHighlightRules;
this.$outdent = new MatchingParensOutdent();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-cobol.js b/js/core/vendor/ace-builds/src-noconflict/mode-cobol.js
index 75d8791..89367e0 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-cobol.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-cobol.js
@@ -69,16 +69,16 @@ oop.inherits(CobolHighlightRules, TextHighlightRules);
exports.CobolHighlightRules = CobolHighlightRules;
});
-ace.define("ace/mode/cobol",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/cobol_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/cobol",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/cobol_highlight_rules"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var CobolHighlightRules = require("./cobol_highlight_rules").CobolHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = CobolHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-coldfusion.js b/js/core/vendor/ace-builds/src-noconflict/mode-coldfusion.js
index 40ea623..edbdb5b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-coldfusion.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-coldfusion.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-csharp.js b/js/core/vendor/ace-builds/src-noconflict/mode-csharp.js
index ce3faf5..d91e998 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-csharp.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-csharp.js
@@ -75,7 +75,7 @@ var CSharpHighlightRules = function() {
next : "comment"
}, {
token : "string", // character
- regex : /'(?:.|\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n]))'/
+ regex : /'(?:.|\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n]))?'/
}, {
token : "string", start : '"', end : '"|$', next: [
{token: "constant.language.escape", regex: /\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/},
@@ -126,11 +126,10 @@ var CSharpHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-css.js b/js/core/vendor/ace-builds/src-noconflict/mode-css.js
index f8fdea2..b7a4185 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-css.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-css.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ next : "start"
}, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
- }, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-curly.js b/js/core/vendor/ace-builds/src-noconflict/mode-curly.js
index d2b13d7..d6d9d1c 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-curly.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-curly.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
@@ -2457,13 +2510,12 @@ exports.CurlyHighlightRules = CurlyHighlightRules;
});
-ace.define("ace/mode/curly",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/matching_brace_outdent","ace/mode/html_highlight_rules","ace/mode/folding/html","ace/mode/curly_highlight_rules"], function(require, exports, module) {
+ace.define("ace/mode/curly",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/matching_brace_outdent","ace/mode/folding/html","ace/mode/curly_highlight_rules"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var HtmlMode = require("./html").Mode;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
var HtmlFoldMode = require("./folding/html").FoldMode;
var CurlyHighlightRules = require("./curly_highlight_rules").CurlyHighlightRules;
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-d.js b/js/core/vendor/ace-builds/src-noconflict/mode-d.js
index aa85335..672411a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-d.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-d.js
@@ -499,6 +499,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = DHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-dart.js b/js/core/vendor/ace-builds/src-noconflict/mode-dart.js
index 665f276..c704234 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-dart.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-dart.js
@@ -173,11 +173,10 @@ var c_cppHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"singleLineComment" : [
@@ -513,8 +512,7 @@ var DartHighlightRules = function() {
}, "identifier");
var stringfill = {
- token : "string",
- regex : ".+"
+ defaultToken : "string"
};
this.$rules =
@@ -622,11 +620,10 @@ var DartHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"qdoc" : [
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-django.js b/js/core/vendor/ace-builds/src-noconflict/mode-django.js
index 42f25dc..b681d99 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-django.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-django.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
@@ -2448,11 +2501,6 @@ var DjangoHighlightRules = function(){
token: "variable",
regex: "[-_a-zA-Z0-9:]+"
}],
- 'comment': [{
- token : "comment.block",
- merge: true,
- regex : ".+?"
- }],
'tag': [{
token: "entity.name.function",
regex: "[a-zA-Z][_a-zA-Z0-9]*",
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-dot.js b/js/core/vendor/ace-builds/src-noconflict/mode-dot.js
index e352277..7291476 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-dot.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-dot.js
@@ -163,13 +163,10 @@ var DotHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
- merge : true,
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- merge : true,
- regex : ".+"
+ defaultToken : "comment"
}
],
"qqstring" : [
@@ -368,6 +365,7 @@ var Mode = function() {
this.HighlightRules = DotHighlightRules;
this.$outdent = new MatchingBraceOutdent();
this.foldingRules = new DotFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-drools.js b/js/core/vendor/ace-builds/src-noconflict/mode-drools.js
index 3e60388..5863afe 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-drools.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-drools.js
@@ -152,11 +152,10 @@ var JavaHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
@@ -267,11 +266,10 @@ var DroolsHighlightRules = function() {
return [
{
token : "comment.block", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : returnRule
}, {
- token : "comment.block", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment.block"
}
];
}
@@ -433,18 +431,18 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/drools",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/drools_highlight_rules","ace/range","ace/mode/folding/drools"], function(require, exports, module) {
+ace.define("ace/mode/drools",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/drools_highlight_rules","ace/mode/folding/drools"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var DroolsHighlightRules = require("./drools_highlight_rules").DroolsHighlightRules;
-var Range = require("../range").Range;
var DroolsFoldMode = require("./folding/drools").FoldMode;
var Mode = function() {
this.HighlightRules = DroolsHighlightRules;
this.foldingRules = new DroolsFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-eiffel.js b/js/core/vendor/ace-builds/src-noconflict/mode-eiffel.js
index 75a73a1..decf61d 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-eiffel.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-eiffel.js
@@ -105,16 +105,16 @@ oop.inherits(EiffelHighlightRules, TextHighlightRules);
exports.EiffelHighlightRules = EiffelHighlightRules;
});
-ace.define("ace/mode/eiffel",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/eiffel_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/eiffel",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/eiffel_highlight_rules"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var EiffelHighlightRules = require("./eiffel_highlight_rules").EiffelHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = EiffelHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-ejs.js b/js/core/vendor/ace-builds/src-noconflict/mode-ejs.js
index f679c3a..4309c8b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-ejs.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-ejs.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1133,14 +1178,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -1158,6 +1202,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
@@ -2461,6 +2514,11 @@ var constantNumericFloat = exports.constantNumericFloat = {
regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"
};
+var instanceVariable = exports.instanceVariable = {
+ token : "variable.instance", // instance variable
+ regex : "@{1,2}[a-zA-Z_\\d]+"
+};
+
var RubyHighlightRules = function() {
var builtinFunctions = (
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-elixir.js b/js/core/vendor/ace-builds/src-noconflict/mode-elixir.js
index 1e6d32b..d8931b9 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-elixir.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-elixir.js
@@ -481,6 +481,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = ElixirHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-elm.js b/js/core/vendor/ace-builds/src-noconflict/mode-elm.js
index 9f7d6f0..24406af 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-elm.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-elm.js
@@ -285,6 +285,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = HighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-erlang.js b/js/core/vendor/ace-builds/src-noconflict/mode-erlang.js
index b219b9e..3554bf7 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-erlang.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-erlang.js
@@ -472,7 +472,7 @@ var ErlangHighlightRules = function() {
'punctuation.definition.parameters.end.erlang',
'meta.directive.ifdef.erlang',
'punctuation.section.directive.end.erlang' ],
- regex: '^(\\s*)(-)(\\s*)(ifdef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' },
+ regex: '^(\\s*)(-)(\\s*)(ifdef)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' },
{ token:
[ 'meta.directive.ifndef.erlang',
'punctuation.section.directive.begin.erlang',
@@ -486,7 +486,7 @@ var ErlangHighlightRules = function() {
'punctuation.definition.parameters.end.erlang',
'meta.directive.ifndef.erlang',
'punctuation.section.directive.end.erlang' ],
- regex: '^(\\s*)(-)(\\s*)(ifndef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' },
+ regex: '^(\\s*)(-)(\\s*)(ifndef)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' },
{ token:
[ 'meta.directive.undef.erlang',
'punctuation.section.directive.begin.erlang',
@@ -500,7 +500,7 @@ var ErlangHighlightRules = function() {
'punctuation.definition.parameters.end.erlang',
'meta.directive.undef.erlang',
'punctuation.section.directive.end.erlang' ],
- regex: '^(\\s*)(-)(\\s*)(undef)(\\s*)(\\()(\\s*)([a-zA-z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' } ],
+ regex: '^(\\s*)(-)(\\s*)(undef)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' } ],
'#macro-usage':
[ { token:
[ 'keyword.operator.macro.erlang',
@@ -988,6 +988,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = ErlangHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-forth.js b/js/core/vendor/ace-builds/src-noconflict/mode-forth.js
index f15004c..f960fd6 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-forth.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-forth.js
@@ -276,6 +276,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = ForthHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-fortran.js b/js/core/vendor/ace-builds/src-noconflict/mode-fortran.js
index 6b290d0..3f2c5bd 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-fortran.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-fortran.js
@@ -352,6 +352,7 @@ var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = FortranHighlightRules;
this.foldingRules = new CStyleFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-ftl.js b/js/core/vendor/ace-builds/src-noconflict/mode-ftl.js
index f56a942..dbca4fd 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-ftl.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-ftl.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1100,11 +1145,10 @@ var FtlHighlightRules = function() {
this.addRules({
"ftl-dcomment" : [{
token : "comment",
- regex : ".*?-->",
+ regex : "-->",
next : "pop"
}, {
- token : "comment",
- regex : ".+"
+ defaultToken : "comment"
}]
});
@@ -1125,6 +1169,7 @@ var FtlHighlightRules = require("./ftl_highlight_rules").FtlHighlightRules;
var Mode = function() {
this.HighlightRules = FtlHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-gcode.js b/js/core/vendor/ace-builds/src-noconflict/mode-gcode.js
index 77e9e80..a648426 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-gcode.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-gcode.js
@@ -73,6 +73,7 @@ ace.define("ace/mode/gcode",["require","exports","module","ace/lib/oop","ace/mod
var Mode = function() {
this.HighlightRules = GcodeHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-gherkin.js b/js/core/vendor/ace-builds/src-noconflict/mode-gherkin.js
index 011e0c2..322dbe4 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-gherkin.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-gherkin.js
@@ -118,6 +118,7 @@ var GherkinHighlightRules = require("./gherkin_highlight_rules").GherkinHighligh
var Mode = function() {
this.HighlightRules = GherkinHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-gitignore.js b/js/core/vendor/ace-builds/src-noconflict/mode-gitignore.js
index a3cc839..c3eac55 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-gitignore.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-gitignore.js
@@ -39,6 +39,7 @@ var GitignoreHighlightRules = require("./gitignore_highlight_rules").GitignoreHi
var Mode = function() {
this.HighlightRules = GitignoreHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-glsl.js b/js/core/vendor/ace-builds/src-noconflict/mode-glsl.js
index 6684508..ee95fee 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-glsl.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-glsl.js
@@ -173,11 +173,10 @@ var c_cppHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"singleLineComment" : [
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-gobstones.js b/js/core/vendor/ace-builds/src-noconflict/mode-gobstones.js
index e4c75bc..746b341 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-gobstones.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-gobstones.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -872,11 +878,10 @@ var GobstonesHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
@@ -900,6 +905,7 @@ var GobstonesHighlightRules = require("./gobstones_highlight_rules").GobstonesHi
var Mode = function() {
JavaScriptMode.call(this);
this.HighlightRules = GobstonesHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, JavaScriptMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-graphqlschema.js b/js/core/vendor/ace-builds/src-noconflict/mode-graphqlschema.js
new file mode 100644
index 0000000..9d2833d
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-graphqlschema.js
@@ -0,0 +1,206 @@
+ace.define("ace/mode/graphqlschema_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
+
+var GraphQLSchemaHighlightRules = function() {
+
+ var keywords = (
+ "type|interface|union|enum|schema|input|implements|extends|scalar"
+ );
+
+ var dataTypes = (
+ "Int|Float|String|ID|Boolean"
+ );
+
+ var keywordMapper = this.createKeywordMapper({
+ "keyword": keywords,
+ "storage.type": dataTypes
+ }, "identifier");
+
+ this.$rules = {
+ "start" : [ {
+ token : "comment",
+ regex : "#.*$"
+ }, {
+ token : "paren.lparen",
+ regex : /[\[({]/,
+ next : "start"
+ }, {
+ token : "paren.rparen",
+ regex : /[\])}]/
+ }, {
+ token : keywordMapper,
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
+ } ]
+ };
+ this.normalizeRules();
+};
+
+oop.inherits(GraphQLSchemaHighlightRules, TextHighlightRules);
+
+exports.GraphQLSchemaHighlightRules = GraphQLSchemaHighlightRules;
+});
+
+ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../../lib/oop");
+var Range = require("../../range").Range;
+var BaseFoldMode = require("./fold_mode").FoldMode;
+
+var FoldMode = exports.FoldMode = function(commentRegex) {
+ if (commentRegex) {
+ this.foldingStartMarker = new RegExp(
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
+ );
+ this.foldingStopMarker = new RegExp(
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
+ );
+ }
+};
+oop.inherits(FoldMode, BaseFoldMode);
+
+(function() {
+
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
+ this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/;
+ this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
+ this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
+ this._getFoldWidgetBase = this.getFoldWidget;
+ this.getFoldWidget = function(session, foldStyle, row) {
+ var line = session.getLine(row);
+
+ if (this.singleLineBlockCommentRe.test(line)) {
+ if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
+ return "";
+ }
+
+ var fw = this._getFoldWidgetBase(session, foldStyle, row);
+
+ if (!fw && this.startRegionRe.test(line))
+ return "start"; // lineCommentRegionStart
+
+ return fw;
+ };
+
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
+ var line = session.getLine(row);
+
+ if (this.startRegionRe.test(line))
+ return this.getCommentRegionBlock(session, line, row);
+
+ var match = line.match(this.foldingStartMarker);
+ if (match) {
+ var i = match.index;
+
+ if (match[1])
+ return this.openingBracketBlock(session, match[1], row, i);
+
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
+
+ if (range && !range.isMultiLine()) {
+ if (forceMultiline) {
+ range = this.getSectionRange(session, row);
+ } else if (foldStyle != "all")
+ range = null;
+ }
+
+ return range;
+ }
+
+ if (foldStyle === "markbegin")
+ return;
+
+ var match = line.match(this.foldingStopMarker);
+ if (match) {
+ var i = match.index + match[0].length;
+
+ if (match[1])
+ return this.closingBracketBlock(session, match[1], row, i);
+
+ return session.getCommentFoldRange(row, i, -1);
+ }
+ };
+
+ this.getSectionRange = function(session, row) {
+ var line = session.getLine(row);
+ var startIndent = line.search(/\S/);
+ var startRow = row;
+ var startColumn = line.length;
+ row = row + 1;
+ var endRow = row;
+ var maxRow = session.getLength();
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var indent = line.search(/\S/);
+ if (indent === -1)
+ continue;
+ if (startIndent > indent)
+ break;
+ var subRange = this.getFoldWidgetRange(session, "all", row);
+
+ if (subRange) {
+ if (subRange.start.row <= startRow) {
+ break;
+ } else if (subRange.isMultiLine()) {
+ row = subRange.end.row;
+ } else if (startIndent == indent) {
+ break;
+ }
+ }
+ endRow = row;
+ }
+
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
+ };
+ this.getCommentRegionBlock = function(session, line, row) {
+ var startColumn = line.search(/\s*$/);
+ var maxRow = session.getLength();
+ var startRow = row;
+
+ var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
+ var depth = 1;
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var m = re.exec(line);
+ if (!m) continue;
+ if (m[1]) depth--;
+ else depth++;
+
+ if (!depth) break;
+ }
+
+ var endRow = row;
+ if (endRow > startRow) {
+ return new Range(startRow, startColumn, endRow, line.length);
+ }
+ };
+
+}).call(FoldMode.prototype);
+
+});
+
+ace.define("ace/mode/graphqlschema",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/graphqlschema_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextMode = require("./text").Mode;
+var GraphQLSchemaHighlightRules = require("./graphqlschema_highlight_rules").GraphQLSchemaHighlightRules;
+var FoldMode = require("./folding/cstyle").FoldMode;
+
+var Mode = function() {
+ this.HighlightRules = GraphQLSchemaHighlightRules;
+ this.foldingRules = new FoldMode();
+};
+oop.inherits(Mode, TextMode);
+
+(function() {
+ this.lineCommentStart = "#";
+ this.$id = "ace/mode/graphqlschema";
+}).call(Mode.prototype);
+
+exports.Mode = Mode;
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-groovy.js b/js/core/vendor/ace-builds/src-noconflict/mode-groovy.js
index 8236a87..b04ffd9 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-groovy.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-groovy.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -899,11 +905,10 @@ var GroovyHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"qqstring" : [
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-haml.js b/js/core/vendor/ace-builds/src-noconflict/mode-haml.js
index f98d56c..c4255c5 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-haml.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-haml.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -988,6 +1033,11 @@ var constantNumericFloat = exports.constantNumericFloat = {
regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"
};
+var instanceVariable = exports.instanceVariable = {
+ token : "variable.instance", // instance variable
+ regex : "@{1,2}[a-zA-Z_\\d]+"
+};
+
var RubyHighlightRules = function() {
var builtinFunctions = (
@@ -1252,116 +1302,130 @@ var RubyHighlightRules = RubyExports.RubyHighlightRules;
var HamlHighlightRules = function() {
HtmlHighlightRules.call(this);
- this.$rules.start.unshift(
- {
- token : "punctuation.section.comment",
- regex : /^\s*\/.*/
- },
- {
- token: "string.quoted.double",
- regex: "==.+?=="
- },
- {
- token: "keyword.other.doctype",
- regex: "^!!!\\s*(?:[a-zA-Z0-9-_]+)?"
- },
- RubyExports.qString,
- RubyExports.qqString,
- RubyExports.tString,
- {
- token: "character.escape.haml",
- regex: "^\\s*\\\\."
- },
- {
- token: "text",
- regex: /^\s*/,
- next: "tag_single"
- },
- RubyExports.constantNumericHex,
- RubyExports.constantNumericFloat,
-
- RubyExports.constantOtherSymbol,
- {
- token: "text",
- regex: "=|-|~",
- next: "embedded_ruby"
- }
- );
- this.$rules.tag_single = [
- {
- token: "meta.tag.haml",
- regex: /(%[\w:\-]+)/
- },
- {
- token: "keyword.attribute-name.class.haml",
- regex: "\\.[\\w-]+"
- },
- {
- token: "keyword.attribute-name.id.haml",
- regex: "#[\\w-]+"
- },
- {
- token: "punctuation.section",
- regex: "\\{",
- next: "section"
- },
-
- RubyExports.constantOtherSymbol,
-
- {
- token: "text",
- regex: /\s/,
- next: "start"
- },
- {
- token: "empty",
- regex: "$|(?!\\.|#|\\{|\\[|=|-|~|\\/)",
- next: "start"
- }
- ];
- this.$rules.section = [
- RubyExports.constantOtherSymbol,
-
- RubyExports.qString,
- RubyExports.qqString,
- RubyExports.tString,
-
- RubyExports.constantNumericHex,
- RubyExports.constantNumericFloat,
- {
- token: "punctuation.section",
- regex: "\\}",
- next: "start"
- }
- ];
-
- this.$rules.embedded_ruby = [
- RubyExports.constantNumericHex,
- RubyExports.constantNumericFloat,
- {
+
+ this.$rules = {
+ "start": [
+ {
+ token: "comment.block", // multiline HTML comment
+ regex: /^\/$/,
+ next: "comment"
+ },
+ {
+ token: "comment.block", // multiline HAML comment
+ regex: /^\-#$/,
+ next: "comment"
+ },
+ {
+ token: "comment.line", // HTML comment
+ regex: /\/\s*.*/
+ },
+ {
+ token: "comment.line", // HAML comment
+ regex: /-#\s*.*/
+ },
+ {
+ token: "keyword.other.doctype",
+ regex: "^!!!\\s*(?:[a-zA-Z0-9-_]+)?"
+ },
+ RubyExports.qString,
+ RubyExports.qqString,
+ RubyExports.tString,
+ {
+ token: "meta.tag.haml",
+ regex: /(%[\w:\-]+)/
+ },
+ {
+ token: "keyword.attribute-name.class.haml",
+ regex: /\.[\w-]+/
+ },
+ {
+ token: "keyword.attribute-name.id.haml",
+ regex: /#[\w-]+/,
+ next: "element_class"
+ },
+ RubyExports.constantNumericHex,
+ RubyExports.constantNumericFloat,
+ RubyExports.constantOtherSymbol,
+ {
+ token: "text",
+ regex: /=|-|~/,
+ next: "embedded_ruby"
+ }
+ ],
+ "element_class": [
+ {
+ token: "keyword.attribute-name.class.haml",
+ regex: /\.[\w-]+/
+ },
+ {
+ token: "punctuation.section",
+ regex: /\{/,
+ next: "element_attributes"
+ },
+ RubyExports.constantOtherSymbol,
+ {
+ token: "empty",
+ regex: "$|(?!\\.|#|\\{|\\[|=|-|~|\\/])",
+ next: "start"
+ }
+ ],
+ "element_attributes": [
+ RubyExports.constantOtherSymbol,
+ RubyExports.qString,
+ RubyExports.qqString,
+ RubyExports.tString,
+ RubyExports.constantNumericHex,
+ RubyExports.constantNumericFloat,
+ {
+ token: "punctuation.section",
+ regex: /$|\}/,
+ next: "start"
+ }
+ ],
+ "embedded_ruby": [
+ RubyExports.constantNumericHex,
+ RubyExports.constantNumericFloat,
+ RubyExports.instanceVariable,
+ RubyExports.qString,
+ RubyExports.qqString,
+ RubyExports.tString,
+ {
token : "support.class", // class name
regex : "[A-Z][a-zA-Z_\\d]+"
- },
- {
- token : new RubyHighlightRules().getKeywords(),
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
- },
- {
- token : ["keyword", "text", "text"],
- regex : "(?:do|\\{)(?: \\|[^|]+\\|)?$",
- next : "start"
- },
- {
- token : ["text"],
- regex : "^$",
- next : "start"
- },
- {
- token : ["text"],
- regex : "^(?!.*\\|\\s*$)",
- next : "start"
- }
- ];
+ },
+ {
+ token : new RubyHighlightRules().getKeywords(),
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
+ },
+ {
+ token : ["keyword", "text", "text"],
+ regex : "(?:do|\\{)(?: \\|[^|]+\\|)?$",
+ next : "start"
+ },
+ {
+ token : ["text"],
+ regex : "^$",
+ next : "start"
+ },
+ {
+ token : ["text"],
+ regex : "^(?!.*\\|\\s*$)",
+ next : "start"
+ }
+ ],
+ "comment": [
+ {
+ token: "comment.block",
+ regex: /^$/,
+ next: "start"
+ },
+ {
+ token: "comment.block", // comment spanning the whole line
+ regex: /\s+.*/
+ }
+ ]
+
+ };
this.normalizeRules();
};
@@ -1469,6 +1533,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = HamlHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-handlebars.js b/js/core/vendor/ace-builds/src-noconflict/mode-handlebars.js
index 3a91440..c970820 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-handlebars.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-handlebars.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-haskell.js b/js/core/vendor/ace-builds/src-noconflict/mode-haskell.js
index 2ef7dfa..51a5445 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-haskell.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-haskell.js
@@ -358,6 +358,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = HaskellHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-haskell_cabal.js b/js/core/vendor/ace-builds/src-noconflict/mode-haskell_cabal.js
index 6b79b42..5b69e04 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-haskell_cabal.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-haskell_cabal.js
@@ -120,6 +120,7 @@ var FoldMode = require("./folding/haskell_cabal").FoldMode;
var Mode = function() {
this.HighlightRules = CabalHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-haxe.js b/js/core/vendor/ace-builds/src-noconflict/mode-haxe.js
index f4a0012..694b9b8 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-haxe.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-haxe.js
@@ -124,11 +124,10 @@ var HaxeHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-hjson.js b/js/core/vendor/ace-builds/src-noconflict/mode-hjson.js
new file mode 100644
index 0000000..8575876
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-hjson.js
@@ -0,0 +1,346 @@
+ace.define("ace/mode/hjson_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
+
+var HjsonHighlightRules = function() {
+
+ this.$rules = {
+ start: [{
+ include: "#comments"
+ }, {
+ include: "#rootObject"
+ }, {
+ include: "#value"
+ }],
+ "#array": [{
+ token: "paren.lparen",
+ regex: /\[/,
+ push: [{
+ token: "paren.rparen",
+ regex: /\]/,
+ next: "pop"
+ }, {
+ include: "#value"
+ }, {
+ include: "#comments"
+ }, {
+ token: "text",
+ regex: /,|$/
+ }, {
+ token: "invalid.illegal",
+ regex: /[^\s\]]/
+ }, {
+ defaultToken: "array"
+ }]
+ }],
+ "#comments": [{
+ token: [
+ "comment.punctuation",
+ "comment.line"
+ ],
+ regex: /(#)(.*$)/
+ }, {
+ token: "comment.punctuation",
+ regex: /\/\*/,
+ push: [{
+ token: "comment.punctuation",
+ regex: /\*\//,
+ next: "pop"
+ }, {
+ defaultToken: "comment.block"
+ }]
+ }, {
+ token: [
+ "comment.punctuation",
+ "comment.line"
+ ],
+ regex: /(\/\/)(.*$)/
+ }],
+ "#constant": [{
+ token: "constant",
+ regex: /\b(?:true|false|null)\b/
+ }],
+ "#keyname": [{
+ token: "keyword",
+ regex: /(?:[^,\{\[\}\]\s]+|"(?:[^"\\]|\\.)*")\s*(?=:)/
+ }],
+ "#mstring": [{
+ token: "string",
+ regex: /'''/,
+ push: [{
+ token: "string",
+ regex: /'''/,
+ next: "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ "#number": [{
+ token: "constant.numeric",
+ regex: /-?(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:[eE][+-]?\d+)?)?/,
+ comment: "handles integer and decimal numbers"
+ }],
+ "#object": [{
+ token: "paren.lparen",
+ regex: /\{/,
+ push: [{
+ token: "paren.rparen",
+ regex: /\}/,
+ next: "pop"
+ }, {
+ include: "#keyname"
+ }, {
+ include: "#value"
+ }, {
+ token: "text",
+ regex: /:/
+ }, {
+ token: "text",
+ regex: /,/
+ }, {
+ defaultToken: "paren"
+ }]
+ }],
+ "#rootObject": [{
+ token: "paren",
+ regex: /(?=\s*(?:[^,\{\[\}\]\s]+|"(?:[^"\\]|\\.)*")\s*:)/,
+ push: [{
+ token: "paren.rparen",
+ regex: /---none---/,
+ next: "pop"
+ }, {
+ include: "#keyname"
+ }, {
+ include: "#value"
+ }, {
+ token: "text",
+ regex: /:/
+ }, {
+ token: "text",
+ regex: /,/
+ }, {
+ defaultToken: "paren"
+ }]
+ }],
+ "#string": [{
+ token: "string",
+ regex: /"/,
+ push: [{
+ token: "string",
+ regex: /"/,
+ next: "pop"
+ }, {
+ token: "constant.language.escape",
+ regex: /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/
+ }, {
+ token: "invalid.illegal",
+ regex: /\\./
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ "#ustring": [{
+ token: "string",
+ regex: /\b[^:,0-9\-\{\[\}\]\s].*$/
+ }],
+ "#value": [{
+ include: "#constant"
+ }, {
+ include: "#number"
+ }, {
+ include: "#string"
+ }, {
+ include: "#array"
+ }, {
+ include: "#object"
+ }, {
+ include: "#comments"
+ }, {
+ include: "#mstring"
+ }, {
+ include: "#ustring"
+ }]
+ }
+
+ this.normalizeRules();
+};
+
+HjsonHighlightRules.metaData = {
+ fileTypes: ["hjson"],
+ foldingStartMarker: "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [{\\[] # the start of an object or array\n (?! # but not followed by\n .* # whatever\n [}\\]] # and the close of an object or array\n ,? # an optional comma\n \\s* # some optional space\n $ # at the end of the line\n )\n | # ...or...\n [{\\[] # the start of an object or array\n \\s* # some optional space\n $ # at the end of the line\n )",
+ foldingStopMarker: "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [}\\]] # and the close of an object or array\n )",
+ keyEquivalent: "^~J",
+ name: "Hjson",
+ scopeName: "source.hjson"
+}
+
+
+oop.inherits(HjsonHighlightRules, TextHighlightRules);
+
+exports.HjsonHighlightRules = HjsonHighlightRules;
+});
+
+ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../../lib/oop");
+var Range = require("../../range").Range;
+var BaseFoldMode = require("./fold_mode").FoldMode;
+
+var FoldMode = exports.FoldMode = function(commentRegex) {
+ if (commentRegex) {
+ this.foldingStartMarker = new RegExp(
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
+ );
+ this.foldingStopMarker = new RegExp(
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
+ );
+ }
+};
+oop.inherits(FoldMode, BaseFoldMode);
+
+(function() {
+
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
+ this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/;
+ this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
+ this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
+ this._getFoldWidgetBase = this.getFoldWidget;
+ this.getFoldWidget = function(session, foldStyle, row) {
+ var line = session.getLine(row);
+
+ if (this.singleLineBlockCommentRe.test(line)) {
+ if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
+ return "";
+ }
+
+ var fw = this._getFoldWidgetBase(session, foldStyle, row);
+
+ if (!fw && this.startRegionRe.test(line))
+ return "start"; // lineCommentRegionStart
+
+ return fw;
+ };
+
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
+ var line = session.getLine(row);
+
+ if (this.startRegionRe.test(line))
+ return this.getCommentRegionBlock(session, line, row);
+
+ var match = line.match(this.foldingStartMarker);
+ if (match) {
+ var i = match.index;
+
+ if (match[1])
+ return this.openingBracketBlock(session, match[1], row, i);
+
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
+
+ if (range && !range.isMultiLine()) {
+ if (forceMultiline) {
+ range = this.getSectionRange(session, row);
+ } else if (foldStyle != "all")
+ range = null;
+ }
+
+ return range;
+ }
+
+ if (foldStyle === "markbegin")
+ return;
+
+ var match = line.match(this.foldingStopMarker);
+ if (match) {
+ var i = match.index + match[0].length;
+
+ if (match[1])
+ return this.closingBracketBlock(session, match[1], row, i);
+
+ return session.getCommentFoldRange(row, i, -1);
+ }
+ };
+
+ this.getSectionRange = function(session, row) {
+ var line = session.getLine(row);
+ var startIndent = line.search(/\S/);
+ var startRow = row;
+ var startColumn = line.length;
+ row = row + 1;
+ var endRow = row;
+ var maxRow = session.getLength();
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var indent = line.search(/\S/);
+ if (indent === -1)
+ continue;
+ if (startIndent > indent)
+ break;
+ var subRange = this.getFoldWidgetRange(session, "all", row);
+
+ if (subRange) {
+ if (subRange.start.row <= startRow) {
+ break;
+ } else if (subRange.isMultiLine()) {
+ row = subRange.end.row;
+ } else if (startIndent == indent) {
+ break;
+ }
+ }
+ endRow = row;
+ }
+
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
+ };
+ this.getCommentRegionBlock = function(session, line, row) {
+ var startColumn = line.search(/\s*$/);
+ var maxRow = session.getLength();
+ var startRow = row;
+
+ var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
+ var depth = 1;
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var m = re.exec(line);
+ if (!m) continue;
+ if (m[1]) depth--;
+ else depth++;
+
+ if (!depth) break;
+ }
+
+ var endRow = row;
+ if (endRow > startRow) {
+ return new Range(startRow, startColumn, endRow, line.length);
+ }
+ };
+
+}).call(FoldMode.prototype);
+
+});
+
+ace.define("ace/mode/hjson",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/hjson_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextMode = require("./text").Mode;
+var HjsonHighlightRules = require("./hjson_highlight_rules").HjsonHighlightRules;
+var FoldMode = require("./folding/cstyle").FoldMode;
+
+var Mode = function() {
+ this.HighlightRules = HjsonHighlightRules;
+ this.foldingRules = new FoldMode();
+};
+oop.inherits(Mode, TextMode);
+
+(function() {
+ this.lineCommentStart = "//";
+ this.blockComment = { start: "/*", end: "*/" };
+ this.$id = "ace/mode/hjson"
+}).call(Mode.prototype);
+
+exports.Mode = Mode;
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-html.js b/js/core/vendor/ace-builds/src-noconflict/mode-html.js
index cf48fc5..35aa2cc 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-html.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-html.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-html_elixir.js b/js/core/vendor/ace-builds/src-noconflict/mode-html_elixir.js
index 90eec80..207e489 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-html_elixir.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-html_elixir.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1573,14 +1618,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -1598,6 +1642,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -2246,7 +2291,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -2259,6 +2304,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -2377,8 +2428,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2719,7 +2772,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
@@ -2964,6 +3017,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = ElixirHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-html_ruby.js b/js/core/vendor/ace-builds/src-noconflict/mode-html_ruby.js
index 6290099..593e955 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-html_ruby.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-html_ruby.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -988,6 +1033,11 @@ var constantNumericFloat = exports.constantNumericFloat = {
regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"
};
+var instanceVariable = exports.instanceVariable = {
+ token : "variable.instance", // instance variable
+ regex : "@{1,2}[a-zA-Z_\\d]+"
+};
+
var RubyHighlightRules = function() {
var builtinFunctions = (
@@ -1477,14 +1527,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -1502,6 +1551,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -2150,7 +2200,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -2163,6 +2213,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -2281,8 +2337,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2623,7 +2681,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-ini.js b/js/core/vendor/ace-builds/src-noconflict/mode-ini.js
index 805433b..f53e87f 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-ini.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-ini.js
@@ -141,6 +141,7 @@ var FoldMode = require("./folding/ini").FoldMode;
var Mode = function() {
this.HighlightRules = IniHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-io.js b/js/core/vendor/ace-builds/src-noconflict/mode-io.js
index 3fd016e..93d53e2 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-io.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-io.js
@@ -221,25 +221,25 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/io",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/io_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/io",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/io_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
-var Tokenizer = require("../tokenizer").Tokenizer;
var IoHighlightRules = require("./io_highlight_rules").IoHighlightRules;
var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = IoHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
(function() {
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
- this.$id = "ace/mode/io"
+ this.$id = "ace/mode/io";
}).call(Mode.prototype);
exports.Mode = Mode;
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-jade.js b/js/core/vendor/ace-builds/src-noconflict/mode-jade.js
index 701b9b2..bfbe9c8 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-jade.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-jade.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -528,14 +534,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -547,9 +549,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -563,11 +565,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -605,7 +602,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -652,7 +649,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -736,10 +733,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -755,84 +752,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -852,14 +847,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1113,8 +1158,7 @@ var MarkdownHighlightRules = function() {
regex : "^\\s*```",
next : "start"
}, {
- token : "support.function",
- regex : ".+"
+ defaultToken : "support.function"
} ]
});
@@ -1226,7 +1270,7 @@ var ScssHighlightRules = function() {
"alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|" +
"floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|" +
"nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|" +
- "scale_color|transparentize|type_of|unit|unitless|unqoute").split("|")
+ "scale_color|transparentize|type_of|unit|unitless|unquote").split("|")
);
var constants = lang.arrayToMap(
@@ -1254,8 +1298,30 @@ var ScssHighlightRules = function() {
);
var colors = lang.arrayToMap(
- ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" +
- "purple|red|silver|teal|white|yellow").split("|")
+ ("aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|" +
+ "blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|" +
+ "chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|" +
+ "darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|" +
+ "darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|" +
+ "darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|" +
+ "darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|" +
+ "dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|" +
+ "ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|" +
+ "hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|" +
+ "lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|" +
+ "lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|" +
+ "lightsalmon|lightseagreen|lightskyblue|lightslategray|" +
+ "lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|" +
+ "magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|" +
+ "mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|" +
+ "mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|" +
+ "moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|" +
+ "orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|" +
+ "papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|" +
+ "red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|" +
+ "seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|" +
+ "springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|" +
+ "wheat|white|whitesmoke|yellow|yellowgreen").split("|")
);
var keywords = lang.arrayToMap(
@@ -1367,11 +1433,10 @@ var ScssHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"qqstring" : [
@@ -1522,11 +1587,10 @@ var LessHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
@@ -2051,8 +2115,8 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = JadeHighlightRules;
-
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-java.js b/js/core/vendor/ace-builds/src-noconflict/mode-java.js
index feba6ff..8fac1eb 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-java.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-java.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -886,11 +892,10 @@ var JavaHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-javascript.js b/js/core/vendor/ace-builds/src-noconflict/mode-javascript.js
index 5a25b0e..0e4a81a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-javascript.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-javascript.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-json.js b/js/core/vendor/ace-builds/src-noconflict/mode-json.js
index 2d009dc..6be2035 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-json.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-json.js
@@ -24,12 +24,16 @@ var JsonHighlightRules = function() {
token : "constant.language.boolean",
regex : "(?:true|false)\\b"
}, {
- token : "invalid.illegal", // single quoted strings are not allowed
+ token : "text", // single quoted strings are not allowed
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
}, {
- token : "invalid.illegal", // comments are not allowed
+ token : "comment", // comments are not allowed, but who cares?
regex : "\\/\\/.*$"
}, {
+ token : "comment.start", // comments are not allowed, but who cares?
+ regex : "\\/\\*",
+ next : "comment"
+ }, {
token : "paren.lparen",
regex : "[[({]"
}, {
@@ -46,15 +50,19 @@ var JsonHighlightRules = function() {
regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/
}, {
token : "string",
- regex : '[^"\\\\]+'
- }, {
- token : "string",
- regex : '"',
+ regex : '"|$',
next : "start"
}, {
- token : "string",
- regex : "",
+ defaultToken : "string"
+ }
+ ],
+ "comment" : [
+ {
+ token : "comment.end", // comments are not allowed, but who cares?
+ regex : "\\*\\/",
next : "start"
+ }, {
+ defaultToken: "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-jsp.js b/js/core/vendor/ace-builds/src-noconflict/mode-jsp.js
index 98f4e77..ad13aed 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-jsp.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-jsp.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1057,11 +1102,10 @@ var JavaHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-jsx.js b/js/core/vendor/ace-builds/src-noconflict/mode-jsx.js
index b2965e5..3f3d3e4 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-jsx.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-jsx.js
@@ -149,11 +149,10 @@ var JsxHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-julia.js b/js/core/vendor/ace-builds/src-noconflict/mode-julia.js
index ae692e3..ee1e88a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-julia.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-julia.js
@@ -282,6 +282,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = JuliaHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-latex.js b/js/core/vendor/ace-builds/src-noconflict/mode-latex.js
index cf91761..cfdf56f 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-latex.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-latex.js
@@ -195,18 +195,19 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/latex_highlight_rules","ace/mode/folding/latex","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/latex_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/latex"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var LatexHighlightRules = require("./latex_highlight_rules").LatexHighlightRules;
+var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var LatexFoldMode = require("./folding/latex").FoldMode;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = LatexHighlightRules;
this.foldingRules = new LatexFoldMode();
+ this.$behaviour = new CstyleBehaviour({ braces: true });
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-less.js b/js/core/vendor/ace-builds/src-noconflict/mode-less.js
index 43ea2e3..c407a09 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-less.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-less.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ next : "start"
}, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
- }, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -261,11 +309,10 @@ var LessHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-liquid.js b/js/core/vendor/ace-builds/src-noconflict/mode-liquid.js
index 18fe355..925ef30 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-liquid.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-liquid.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1085,17 +1130,17 @@ var MatchingBraceOutdent = function() {};
exports.MatchingBraceOutdent = MatchingBraceOutdent;
});
-ace.define("ace/mode/liquid",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/liquid_highlight_rules","ace/mode/matching_brace_outdent","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/liquid",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/liquid_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) {
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var LiquidHighlightRules = require("./liquid_highlight_rules").LiquidHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = LiquidHighlightRules;
this.$outdent = new MatchingBraceOutdent();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-lisp.js b/js/core/vendor/ace-builds/src-noconflict/mode-lisp.js
index 0c6fc4d..fb0897d 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-lisp.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-lisp.js
@@ -90,6 +90,7 @@ var LispHighlightRules = require("./lisp_highlight_rules").LispHighlightRules;
var Mode = function() {
this.HighlightRules = LispHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-lua.js b/js/core/vendor/ace-builds/src-noconflict/mode-lua.js
index 3d7e328..bcf4daa 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-lua.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-lua.js
@@ -96,7 +96,7 @@ var LuaHighlightRules = function() {
stateName: "bracketedString",
onMatch : function(value, currentState, stack){
stack.unshift(this.next, value.length, currentState);
- return "comment";
+ return "string.start";
},
regex : /\[=*\[/,
next : [
@@ -109,13 +109,13 @@ var LuaHighlightRules = function() {
} else {
this.next = "";
}
- return "comment";
+ return "string.end";
},
regex : /\]=*\]/,
next : "start"
}, {
- defaultToken : "comment"
+ defaultToken : "string"
}
]
},
@@ -305,6 +305,7 @@ var Mode = function() {
this.HighlightRules = LuaHighlightRules;
this.foldingRules = new LuaFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
@@ -395,7 +396,7 @@ oop.inherits(Mode, TextMode);
var tabLength = session.getTabString().length;
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
var curIndent = this.$getIndent(session.getLine(row)).length;
- if (curIndent < expectedIndent) {
+ if (curIndent <= expectedIndent) {
return;
}
session.outdentRows(new Range(row, 0, row + 2, 0));
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-luapage.js b/js/core/vendor/ace-builds/src-noconflict/mode-luapage.js
index 9c6d0e5..be6b092 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-luapage.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-luapage.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
@@ -2524,7 +2577,7 @@ var LuaHighlightRules = function() {
stateName: "bracketedString",
onMatch : function(value, currentState, stack){
stack.unshift(this.next, value.length, currentState);
- return "comment";
+ return "string.start";
},
regex : /\[=*\[/,
next : [
@@ -2537,13 +2590,13 @@ var LuaHighlightRules = function() {
} else {
this.next = "";
}
- return "comment";
+ return "string.end";
},
regex : /\]=*\]/,
next : "start"
}, {
- defaultToken : "comment"
+ defaultToken : "string"
}
]
},
@@ -2733,6 +2786,7 @@ var Mode = function() {
this.HighlightRules = LuaHighlightRules;
this.foldingRules = new LuaFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
@@ -2823,7 +2877,7 @@ oop.inherits(Mode, TextMode);
var tabLength = session.getTabString().length;
var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens);
var curIndent = this.$getIndent(session.getLine(row)).length;
- if (curIndent < expectedIndent) {
+ if (curIndent <= expectedIndent) {
return;
}
session.outdentRows(new Range(row, 0, row + 2, 0));
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-lucene.js b/js/core/vendor/ace-builds/src-noconflict/mode-lucene.js
index dbb214b..b830b7a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-lucene.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-lucene.js
@@ -57,6 +57,7 @@ var LuceneHighlightRules = require("./lucene_highlight_rules").LuceneHighlightRu
var Mode = function() {
this.HighlightRules = LuceneHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-makefile.js b/js/core/vendor/ace-builds/src-noconflict/mode-makefile.js
index 85636c9..cc6fc65 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-makefile.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-makefile.js
@@ -388,6 +388,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = MakefileHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-markdown.js b/js/core/vendor/ace-builds/src-noconflict/mode-markdown.js
index 8a9b07f..51df9be 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-markdown.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-markdown.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -795,14 +801,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -814,9 +816,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -830,11 +832,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -872,7 +869,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -919,7 +916,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1198,7 +1195,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1211,6 +1208,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1329,8 +1332,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -1457,10 +1462,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -1476,84 +1481,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -1573,14 +1576,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -2325,7 +2378,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
@@ -2632,8 +2685,7 @@ var MarkdownHighlightRules = function() {
regex : "^\\s*```",
next : "start"
}, {
- token : "support.function",
- regex : ".+"
+ defaultToken : "support.function"
} ]
});
@@ -2785,6 +2837,7 @@ var Mode = function() {
});
this.foldingRules = new MarkdownFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-mask.js b/js/core/vendor/ace-builds/src-noconflict/mode-mask.js
index 4393457..983d02f 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-mask.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-mask.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -524,10 +530,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -543,84 +549,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -640,14 +644,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1113,8 +1158,7 @@ var MarkdownHighlightRules = function() {
regex : "^\\s*```",
next : "start"
}, {
- token : "support.function",
- regex : ".+"
+ defaultToken : "support.function"
} ]
});
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-matlab.js b/js/core/vendor/ace-builds/src-noconflict/mode-matlab.js
index 6659a81..b887040 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-matlab.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-matlab.js
@@ -230,16 +230,16 @@ oop.inherits(MatlabHighlightRules, TextHighlightRules);
exports.MatlabHighlightRules = MatlabHighlightRules;
});
-ace.define("ace/mode/matlab",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/matlab_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/matlab",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/matlab_highlight_rules"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var MatlabHighlightRules = require("./matlab_highlight_rules").MatlabHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = MatlabHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-maze.js b/js/core/vendor/ace-builds/src-noconflict/mode-maze.js
index 47dcdc3..cdc8d22 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-maze.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-maze.js
@@ -271,6 +271,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = MazeHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-mushcode.js b/js/core/vendor/ace-builds/src-noconflict/mode-mushcode.js
index 717593c..5e6b7ea 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-mushcode.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-mushcode.js
@@ -605,6 +605,7 @@ var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = MushCodeRules;
this.foldingRules = new PythonFoldMode("\\:");
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-mysql.js b/js/core/vendor/ace-builds/src-noconflict/mode-mysql.js
index 74573c7..7abe675 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-mysql.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-mysql.js
@@ -137,15 +137,15 @@ oop.inherits(MysqlHighlightRules, TextHighlightRules);
exports.MysqlHighlightRules = MysqlHighlightRules;
});
-ace.define("ace/mode/mysql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mysql_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/mysql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mysql_highlight_rules"], function(require, exports, module) {
var oop = require("../lib/oop");
var TextMode = require("../mode/text").Mode;
var MysqlHighlightRules = require("./mysql_highlight_rules").MysqlHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = MysqlHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-nix.js b/js/core/vendor/ace-builds/src-noconflict/mode-nix.js
index d50adfa..3424bea 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-nix.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-nix.js
@@ -173,11 +173,10 @@ var c_cppHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"singleLineComment" : [
@@ -555,11 +554,10 @@ ace.define("ace/mode/nix_highlight_rules",["require","exports","module","ace/lib
}],
"comment": [{
token: "comment", // closing comment
- regex: ".*?\\*\\/",
+ regex: "\\*\\/",
next: "start"
}, {
- token: "comment", // comment spanning whole line
- regex: ".+"
+ defaultToken: "comment"
}],
"qqdoc": [
{
@@ -619,6 +617,7 @@ var Mode = function() {
CMode.call(this);
this.HighlightRules = NixHighlightRules;
this.foldingRules = new CStyleFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, CMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-nsis.js b/js/core/vendor/ace-builds/src-noconflict/mode-nsis.js
index 202bf7a..a20aed2 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-nsis.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-nsis.js
@@ -9,33 +9,33 @@ var NSISHighlightRules = function() {
this.$rules = {
start: [{
token: "keyword.compiler.nsis",
- regex: /(?:\b|^\s*)!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\b/,
+ regex: /^\s*!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\b/,
caseInsensitive: true
}, {
token: "keyword.command.nsis",
- regex: /(?:\b|^\s*)(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetPluginUnload|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\b/,
+ regex: /^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\b/,
caseInsensitive: true
}, {
token: "keyword.control.nsis",
- regex: /(?:\b|^\s*)!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\b/,
+ regex: /^\s*!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\b/,
caseInsensitive: true
}, {
token: "keyword.plugin.nsis",
- regex: /(?:\b|^\s*)\w+::\w+/,
+ regex: /^\s*\w+::\w+/,
caseInsensitive: true
}, {
token: "keyword.operator.comparison.nsis",
regex: /[!<>]?=|<>|<|>/
}, {
token: "support.function.nsis",
- regex: /(?:\b|^\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|SubSection|SubSectionEnd|PageEx|PageExEnd)\b/,
+ regex: /(?:\b|^\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|PageEx|PageExEnd)\b/,
caseInsensitive: true
}, {
token: "support.library.nsis",
- regex: /\${[\w]+}/
+ regex: /\${[\w\.:-]+}/
}, {
token: "constant.nsis",
- regex: /(?:\b|^\s*)(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/,
+ regex: /\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/,
caseInsensitive: true
}, {
token: "constant.library.nsis",
@@ -52,14 +52,14 @@ var NSISHighlightRules = function() {
caseInsensitive: true
}, {
token: "constant.language.slash-option.nsis",
- regex: /\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID=|ITALIC|LANG=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\b/,
+ regex: /\b\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID=|ITALIC|LANG=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\b/,
caseInsensitive: true
}, {
token: "constant.numeric.nsis",
regex: /\b(?:0(?:x|X)[0-9a-fA-F]+|[0-9]+(?:\.[0-9]+)?)\b/
}, {
token: "entity.name.function.nsis",
- regex: /\${[\w]+}/
+ regex: /\$\([\w\.:-]+\)/
}, {
token: "storage.type.function.nsis",
regex: /\$[\w]+/
@@ -291,6 +291,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = NSISHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-objectivec.js b/js/core/vendor/ace-builds/src-noconflict/mode-objectivec.js
index 1660bbe..1dd0cb5 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-objectivec.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-objectivec.js
@@ -173,11 +173,10 @@ var c_cppHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"singleLineComment" : [
@@ -528,8 +527,7 @@ var ObjectiveCHighlightRules = function() {
regex : ".*?\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"methods" : [
@@ -713,6 +711,7 @@ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = ObjectiveCHighlightRules;
this.foldingRules = new CStyleFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-ocaml.js b/js/core/vendor/ace-builds/src-noconflict/mode-ocaml.js
index 39f849b..29f26cc 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-ocaml.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-ocaml.js
@@ -279,12 +279,11 @@ var OcamlHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\)",
+ regex : "\\*\\)",
next : "start"
},
{
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
@@ -357,6 +356,7 @@ var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = OcamlHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
this.$outdent = new MatchingBraceOutdent();
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-pascal.js b/js/core/vendor/ace-builds/src-noconflict/mode-pascal.js
index 2bda331..9ccd1ed 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-pascal.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-pascal.js
@@ -179,6 +179,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = PascalHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-perl.js b/js/core/vendor/ace-builds/src-noconflict/mode-perl.js
index 446958e..768c538 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-perl.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-perl.js
@@ -311,14 +311,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/perl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/perl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var PerlHighlightRules = require("./perl_highlight_rules").PerlHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
@@ -326,6 +325,7 @@ var Mode = function() {
this.$outdent = new MatchingBraceOutdent();
this.foldingRules = new CStyleFoldMode({start: "^=(begin|item)\\b", end: "^=(cut)\\b"});
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-pgsql.js b/js/core/vendor/ace-builds/src-noconflict/mode-pgsql.js
index 354c4bd..189f17a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-pgsql.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-pgsql.js
@@ -363,12 +363,16 @@ var JsonHighlightRules = function() {
token : "constant.language.boolean",
regex : "(?:true|false)\\b"
}, {
- token : "invalid.illegal", // single quoted strings are not allowed
+ token : "text", // single quoted strings are not allowed
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
}, {
- token : "invalid.illegal", // comments are not allowed
+ token : "comment", // comments are not allowed, but who cares?
regex : "\\/\\/.*$"
}, {
+ token : "comment.start", // comments are not allowed, but who cares?
+ regex : "\\/\\*",
+ next : "comment"
+ }, {
token : "paren.lparen",
regex : "[[({]"
}, {
@@ -385,15 +389,19 @@ var JsonHighlightRules = function() {
regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/
}, {
token : "string",
- regex : '[^"\\\\]+'
- }, {
- token : "string",
- regex : '"',
+ regex : '"|$',
next : "start"
}, {
- token : "string",
- regex : "",
+ defaultToken : "string"
+ }
+ ],
+ "comment" : [
+ {
+ token : "comment.end", // comments are not allowed, but who cares?
+ regex : "\\*\\/",
next : "start"
+ }, {
+ defaultToken: "comment"
}
]
};
@@ -429,7 +437,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -463,11 +471,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -518,6 +526,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -534,6 +545,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -673,7 +687,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -689,7 +703,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -699,8 +713,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -735,14 +749,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -793,8 +807,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -809,7 +823,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -1397,31 +1411,28 @@ var PgsqlHighlightRules = function() {
"comment" : [{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"commentStatement" : [{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "statement"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"commentDollarSql" : [{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "dollarSql"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
@@ -1458,15 +1469,15 @@ oop.inherits(PgsqlHighlightRules, TextHighlightRules);
exports.PgsqlHighlightRules = PgsqlHighlightRules;
});
-ace.define("ace/mode/pgsql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pgsql_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/pgsql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pgsql_highlight_rules"], function(require, exports, module) {
var oop = require("../lib/oop");
var TextMode = require("../mode/text").Mode;
var PgsqlHighlightRules = require("./pgsql_highlight_rules").PgsqlHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = PgsqlHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
@@ -1480,7 +1491,7 @@ oop.inherits(Mode, TextMode);
} else {
return this.$getIndent(line); // Keep whatever indent the previous line has
}
- }
+ };
this.$id = "ace/mode/pgsql";
}).call(Mode.prototype);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-php.js b/js/core/vendor/ace-builds/src-noconflict/mode-php.js
index e91a790..b4d55de 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-php.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-php.js
@@ -57,10 +57,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -76,84 +76,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -173,14 +171,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -216,7 +264,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -250,11 +298,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -305,6 +353,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -321,6 +372,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -460,7 +514,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -476,7 +530,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -486,8 +540,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -522,14 +576,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -580,8 +634,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -596,7 +650,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -672,14 +726,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -691,9 +741,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -707,11 +757,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -749,7 +794,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -796,7 +841,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -11371,14 +11416,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -11396,6 +11440,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -12044,7 +12089,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -12057,6 +12102,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -12175,8 +12226,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -12517,7 +12570,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-pig.js b/js/core/vendor/ace-builds/src-noconflict/mode-pig.js
new file mode 100644
index 0000000..e251e38
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-pig.js
@@ -0,0 +1,303 @@
+ace.define("ace/mode/pig_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
+
+var PigHighlightRules = function() {
+
+ this.$rules = {
+ start: [{
+ token: "comment.block.pig",
+ regex: /\/\*/,
+ push: [{
+ token: "comment.block.pig",
+ regex: /\*\//,
+ next: "pop"
+ }, {
+ defaultToken: "comment.block.pig"
+ }]
+ }, {
+ token: "comment.line.double-dash.asciidoc",
+ regex: /--.*$/
+ }, {
+ token: "keyword.control.pig",
+ regex: /\b(?:ASSERT|LOAD|STORE|DUMP|FILTER|DISTINCT|FOREACH|GENERATE|STREAM|JOIN|COGROUP|GROUP|CROSS|ORDER|LIMIT|UNION|SPLIT|DESCRIBE|EXPLAIN|ILLUSTRATE|AS|BY|INTO|USING|LIMIT|PARALLEL|OUTER|INNER|DEFAULT|LEFT|SAMPLE|RANK|CUBE|ALL|KILL|QUIT|MAPREDUCE|ASC|DESC|THROUGH|SHIP|CACHE|DECLARE|CASE|WHEN|THEN|END|IN|PARTITION|FULL|IMPORT|IF|ONSCHEMA|INPUT|OUTPUT)\b/,
+ caseInsensitive: true
+ }, {
+ token: "storage.datatypes.pig",
+ regex: /\b(?:int|long|float|double|chararray|bytearray|boolean|datetime|biginteger|bigdecimal|tuple|bag|map)\b/,
+ caseInsensitive: true
+ }, {
+ token: "support.function.storage.pig",
+ regex: /\b(?:PigStorage|BinStorage|BinaryStorage|PigDump|HBaseStorage|JsonLoader|JsonStorage|AvroStorage|TextLoader|PigStreaming|TrevniStorage|AccumuloStorage)\b/
+ }, {
+ token: "support.function.udf.pig",
+ regex: /\b(?:DIFF|TOBAG|TOMAP|TOP|TOTUPLE|RANDOM|FLATTEN|flatten|CUBE|ROLLUP|IsEmpty|ARITY|PluckTuple|SUBTRACT|BagToString)\b/
+ }, {
+ token: "support.function.udf.math.pig",
+ regex: /\b(?:ABS|ACOS|ASIN|ATAN|CBRT|CEIL|COS|COSH|EXP|FLOOR|LOG|LOG10|ROUND|ROUND_TO|SIN|SINH|SQRT|TAN|TANH|AVG|COUNT|COUNT_STAR|MAX|MIN|SUM|COR|COV)\b/
+ }, {
+ token: "support.function.udf.string.pig",
+ regex: /\b(?:CONCAT|INDEXOF|LAST_INDEX_OF|LCFIRST|LOWER|REGEX_EXTRACT|REGEX_EXTRACT_ALL|REPLACE|SIZE|STRSPLIT|SUBSTRING|TOKENIZE|TRIM|UCFIRST|UPPER|LTRIM|RTRIM|ENDSWITH|STARTSWITH|TRIM)\b/
+ }, {
+ token: "support.function.udf.datetime.pig",
+ regex: /\b(?:AddDuration|CurrentTime|DaysBetween|GetDay|GetHour|GetMilliSecond|GetMinute|GetMonth|GetSecond|GetWeek|GetWeekYear|GetYear|HoursBetween|MilliSecondsBetween|MinutesBetween|MonthsBetween|SecondsBetween|SubtractDuration|ToDate|WeeksBetween|YearsBetween|ToMilliSeconds|ToString|ToUnixTime)\b/
+ }, {
+ token: "support.function.command.pig",
+ regex: /\b(?:cat|cd|copyFromLocal|copyToLocal|cp|ls|mkdir|mv|pwd|rm)\b/
+ }, {
+ token: "variable.pig",
+ regex: /\$[a_zA-Z0-9_]+/
+ }, {
+ token: "constant.language.pig",
+ regex: /\b(?:NULL|true|false|stdin|stdout|stderr)\b/,
+ caseInsensitive: true
+ }, {
+ token: "constant.numeric.pig",
+ regex: /\b\d+(?:\.\d+)?\b/
+ }, {
+ token: "keyword.operator.comparison.pig",
+ regex: /!=|==|<|>|<=|>=|\b(?:MATCHES|IS|OR|AND|NOT)\b/,
+ caseInsensitive: true
+ }, {
+ token: "keyword.operator.arithmetic.pig",
+ regex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/
+ }, {
+ token: "string.quoted.double.pig",
+ regex: /"/,
+ push: [{
+ token: "string.quoted.double.pig",
+ regex: /"/,
+ next: "pop"
+ }, {
+ token: "constant.character.escape.pig",
+ regex: /\\./
+ }, {
+ defaultToken: "string.quoted.double.pig"
+ }]
+ }, {
+ token: "string.quoted.single.pig",
+ regex: /'/,
+ push: [{
+ token: "string.quoted.single.pig",
+ regex: /'/,
+ next: "pop"
+ }, {
+ token: "constant.character.escape.pig",
+ regex: /\\./
+ }, {
+ defaultToken: "string.quoted.single.pig"
+ }]
+ }, {
+ todo: {
+ token: [
+ "text",
+ "keyword.parameter.pig",
+ "text",
+ "storage.type.parameter.pig"
+ ],
+ regex: /^(\s*)(set)(\s+)(\S+)/,
+ caseInsensitive: true,
+ push: [{
+ token: "text",
+ regex: /$/,
+ next: "pop"
+ }, {
+ include: "$self"
+ }]
+ }
+ }, {
+ token: [
+ "text",
+ "keyword.alias.pig",
+ "text",
+ "storage.type.alias.pig"
+ ],
+ regex: /(\s*)(DEFINE|DECLARE|REGISTER)(\s+)(\S+)/,
+ caseInsensitive: true,
+ push: [{
+ token: "text",
+ regex: /;?$/,
+ next: "pop"
+ }]
+ }]
+ }
+
+ this.normalizeRules();
+};
+
+PigHighlightRules.metaData = {
+ fileTypes: ["pig"],
+ name: "Pig",
+ scopeName: "source.pig"
+}
+
+
+oop.inherits(PigHighlightRules, TextHighlightRules);
+
+exports.PigHighlightRules = PigHighlightRules;
+});
+
+ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../../lib/oop");
+var Range = require("../../range").Range;
+var BaseFoldMode = require("./fold_mode").FoldMode;
+
+var FoldMode = exports.FoldMode = function(commentRegex) {
+ if (commentRegex) {
+ this.foldingStartMarker = new RegExp(
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
+ );
+ this.foldingStopMarker = new RegExp(
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
+ );
+ }
+};
+oop.inherits(FoldMode, BaseFoldMode);
+
+(function() {
+
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
+ this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/;
+ this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
+ this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
+ this._getFoldWidgetBase = this.getFoldWidget;
+ this.getFoldWidget = function(session, foldStyle, row) {
+ var line = session.getLine(row);
+
+ if (this.singleLineBlockCommentRe.test(line)) {
+ if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
+ return "";
+ }
+
+ var fw = this._getFoldWidgetBase(session, foldStyle, row);
+
+ if (!fw && this.startRegionRe.test(line))
+ return "start"; // lineCommentRegionStart
+
+ return fw;
+ };
+
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
+ var line = session.getLine(row);
+
+ if (this.startRegionRe.test(line))
+ return this.getCommentRegionBlock(session, line, row);
+
+ var match = line.match(this.foldingStartMarker);
+ if (match) {
+ var i = match.index;
+
+ if (match[1])
+ return this.openingBracketBlock(session, match[1], row, i);
+
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
+
+ if (range && !range.isMultiLine()) {
+ if (forceMultiline) {
+ range = this.getSectionRange(session, row);
+ } else if (foldStyle != "all")
+ range = null;
+ }
+
+ return range;
+ }
+
+ if (foldStyle === "markbegin")
+ return;
+
+ var match = line.match(this.foldingStopMarker);
+ if (match) {
+ var i = match.index + match[0].length;
+
+ if (match[1])
+ return this.closingBracketBlock(session, match[1], row, i);
+
+ return session.getCommentFoldRange(row, i, -1);
+ }
+ };
+
+ this.getSectionRange = function(session, row) {
+ var line = session.getLine(row);
+ var startIndent = line.search(/\S/);
+ var startRow = row;
+ var startColumn = line.length;
+ row = row + 1;
+ var endRow = row;
+ var maxRow = session.getLength();
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var indent = line.search(/\S/);
+ if (indent === -1)
+ continue;
+ if (startIndent > indent)
+ break;
+ var subRange = this.getFoldWidgetRange(session, "all", row);
+
+ if (subRange) {
+ if (subRange.start.row <= startRow) {
+ break;
+ } else if (subRange.isMultiLine()) {
+ row = subRange.end.row;
+ } else if (startIndent == indent) {
+ break;
+ }
+ }
+ endRow = row;
+ }
+
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
+ };
+ this.getCommentRegionBlock = function(session, line, row) {
+ var startColumn = line.search(/\s*$/);
+ var maxRow = session.getLength();
+ var startRow = row;
+
+ var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
+ var depth = 1;
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var m = re.exec(line);
+ if (!m) continue;
+ if (m[1]) depth--;
+ else depth++;
+
+ if (!depth) break;
+ }
+
+ var endRow = row;
+ if (endRow > startRow) {
+ return new Range(startRow, startColumn, endRow, line.length);
+ }
+ };
+
+}).call(FoldMode.prototype);
+
+});
+
+ace.define("ace/mode/pig",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pig_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextMode = require("./text").Mode;
+var PigHighlightRules = require("./pig_highlight_rules").PigHighlightRules;
+var FoldMode = require("./folding/cstyle").FoldMode;
+
+var Mode = function() {
+ this.HighlightRules = PigHighlightRules;
+ this.foldingRules = new FoldMode();
+};
+oop.inherits(Mode, TextMode);
+
+(function() {
+ this.lineCommentStart = "--";
+ this.blockComment = {start: "/*", end: "*/"};
+ this.$id = "ace/mode/pig"
+}).call(Mode.prototype);
+
+exports.Mode = Mode;
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-praat.js b/js/core/vendor/ace-builds/src-noconflict/mode-praat.js
index 7197c81..a3a50f7 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-praat.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-praat.js
@@ -412,20 +412,20 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/praat",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/praat_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/praat",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/praat_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var PraatHighlightRules = require("./praat_highlight_rules").PraatHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = PraatHighlightRules;
-
this.$outdent = new MatchingBraceOutdent();
+ this.foldingRules = new CStyleFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-prolog.js b/js/core/vendor/ace-builds/src-noconflict/mode-prolog.js
index d0aded9..6bf01ad 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-prolog.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-prolog.js
@@ -350,6 +350,7 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = PrologHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-properties.js b/js/core/vendor/ace-builds/src-noconflict/mode-properties.js
index 91a2150..2e9ba72 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-properties.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-properties.js
@@ -61,6 +61,7 @@ var PropertiesHighlightRules = require("./properties_highlight_rules").Propertie
var Mode = function() {
this.HighlightRules = PropertiesHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-protobuf.js b/js/core/vendor/ace-builds/src-noconflict/mode-protobuf.js
index ffffa1b..8cef657 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-protobuf.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-protobuf.js
@@ -173,11 +173,10 @@ var c_cppHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"singleLineComment" : [
@@ -537,12 +536,11 @@ ace.define("ace/mode/protobuf_highlight_rules",["require","exports","module","ac
regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
}],
"comment": [{
- token: "comment", // closing comment
- regex: ".*?\\*\\/",
- next: "start"
+ token : "comment", // closing comment
+ regex : "\\*\\/",
+ next : "start"
}, {
- token: "comment", // comment spanning whole line
- regex: ".+"
+ defaultToken : "comment"
}]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-python.js b/js/core/vendor/ace-builds/src-noconflict/mode-python.js
index 991951b..19efccb 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-python.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-python.js
@@ -195,6 +195,7 @@ var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = PythonHighlightRules;
this.foldingRules = new PythonFoldMode("\\:");
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-r.js b/js/core/vendor/ace-builds/src-noconflict/mode-r.js
index 610a4ca..297d7e0 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-r.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-r.js
@@ -275,7 +275,7 @@ var MatchingBraceOutdent = function() {};
exports.MatchingBraceOutdent = MatchingBraceOutdent;
});
-ace.define("ace/mode/r",["require","exports","module","ace/range","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/r_highlight_rules","ace/mode/matching_brace_outdent","ace/unicode"], function(require, exports, module) {
+ace.define("ace/mode/r",["require","exports","module","ace/range","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/r_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) {
"use strict";
var Range = require("../range").Range;
@@ -284,12 +284,11 @@ ace.define("ace/mode/r",["require","exports","module","ace/range","ace/lib/oop",
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var RHighlightRules = require("./r_highlight_rules").RHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
- var unicode = require("../unicode");
- var Mode = function()
- {
+ var Mode = function(){
this.HighlightRules = RHighlightRules;
this.$outdent = new MatchingBraceOutdent();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-razor.js b/js/core/vendor/ace-builds/src-noconflict/mode-razor.js
index 2c4f122..c19ec55 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-razor.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-razor.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
@@ -2453,7 +2506,7 @@ var CSharpHighlightRules = function() {
next : "comment"
}, {
token : "string", // character
- regex : /'(?:.|\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n]))'/
+ regex : /'(?:.|\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n]))?'/
}, {
token : "string", start : '"', end : '"|$', next: [
{token: "constant.language.escape", regex: /\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/},
@@ -2504,11 +2557,10 @@ var CSharpHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
]
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-rdoc.js b/js/core/vendor/ace-builds/src-noconflict/mode-rdoc.js
index 6c9de47..50d6b4b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-rdoc.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-rdoc.js
@@ -86,7 +86,7 @@ var RDocHighlightRules = function() {
next : "nospell"
}, {
token : "keyword", // command
- regex : "\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])"
+ regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])"
}, {
token : "paren.keyword.operator",
regex : "[[({]"
@@ -111,7 +111,7 @@ var RDocHighlightRules = function() {
regex : "\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\b"
}, {
token : "keyword", // command
- regex : "\\\\(?:[a-zA-z0-9]+|[^a-zA-z0-9])",
+ regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])",
next : "start"
}, {
token : "paren.keyword.operator",
@@ -179,18 +179,18 @@ var MatchingBraceOutdent = function() {};
exports.MatchingBraceOutdent = MatchingBraceOutdent;
});
-ace.define("ace/mode/rdoc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/rdoc_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) {
+ace.define("ace/mode/rdoc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/rdoc_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
-var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var RDocHighlightRules = require("./rdoc_highlight_rules").RDocHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
var Mode = function(suppressHighlighting) {
this.HighlightRules = RDocHighlightRules;
this.$outdent = new MatchingBraceOutdent();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-rhtml.js b/js/core/vendor/ace-builds/src-noconflict/mode-rhtml.js
index ed8a7cd..aae0378 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-rhtml.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-rhtml.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-rst.js b/js/core/vendor/ace-builds/src-noconflict/mode-rst.js
index 0f879e4..235d31a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-rst.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-rst.js
@@ -234,14 +234,14 @@ var TextMode = require("./text").Mode;
var RSTHighlightRules = require("./rst_highlight_rules").RSTHighlightRules;
var Mode = function() {
- this.HighlightRules = RSTHighlightRules;
+ this.HighlightRules = RSTHighlightRules;
};
oop.inherits(Mode, TextMode);
(function() {
- this.type = "text";
+ this.type = "text";
- this.$id = "ace/mode/rst";
+ this.$id = "ace/mode/rst";
}).call(Mode.prototype);
exports.Mode = Mode;
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-ruby.js b/js/core/vendor/ace-builds/src-noconflict/mode-ruby.js
index 60ffa81..6732c68 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-ruby.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-ruby.js
@@ -33,6 +33,11 @@ var constantNumericFloat = exports.constantNumericFloat = {
regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b"
};
+var instanceVariable = exports.instanceVariable = {
+ token : "variable.instance", // instance variable
+ regex : "@{1,2}[a-zA-Z_\\d]+"
+};
+
var RubyHighlightRules = function() {
var builtinFunctions = (
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-rust.js b/js/core/vendor/ace-builds/src-noconflict/mode-rust.js
index 6256523..0802f6b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-rust.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-rust.js
@@ -56,7 +56,7 @@ var RustHighlightRules = function() {
{ token: 'keyword.source.rust',
regex: '\\b(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|for|final|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\b' },
{ token: 'storage.type.source.rust',
- regex: '\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\b' },
+ regex: '\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|u128|f16|f32|f64|i8|i16|i32|i64|i128|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\b' },
{ token: 'variable.language.source.rust', regex: '\\bself\\b' },
{ token: 'comment.line.doc.source.rust',
@@ -87,9 +87,9 @@ var RustHighlightRules = function() {
{ token: 'meta.preprocessor.source.rust',
regex: '\\b\\w\\(\\w\\)*!|#\\[[\\w=\\(\\)_]+\\]\\b' },
{ token: 'constant.numeric.source.rust',
- regex: /(?:0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*(?!\.))(?:[iu](?:size|8|16|32|64))?\b/ },
+ regex: /\b(?:0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*(?!\.))(?:[iu](?:size|8|16|32|64|128))?\b/ },
{ token: 'constant.numeric.source.rust',
- regex: /(?:[0-9][0-9_]*)(?:\.[0-9][0-9_]*)?(?:[Ee][+-][0-9][0-9_]*)?(?:f32|f64)?\b/ } ] }
+ regex: /\b(?:[0-9][0-9_]*)(?:\.[0-9][0-9_]*)?(?:[Ee][+-][0-9][0-9_]*)?(?:f32|f64)?\b/ } ] }
this.normalizeRules();
};
@@ -257,12 +257,14 @@ var FoldMode = require("./folding/cstyle").FoldMode;
var Mode = function() {
this.HighlightRules = RustHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
(function() {
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/", nestable: true};
+ this.$quotes = { '"': '"' };
this.$id = "ace/mode/rust";
}).call(Mode.prototype);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-sass.js b/js/core/vendor/ace-builds/src-noconflict/mode-sass.js
index ec994ce..bd18170 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-sass.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-sass.js
@@ -75,7 +75,7 @@ var ScssHighlightRules = function() {
"alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|" +
"floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|" +
"nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|" +
- "scale_color|transparentize|type_of|unit|unitless|unqoute").split("|")
+ "scale_color|transparentize|type_of|unit|unitless|unquote").split("|")
);
var constants = lang.arrayToMap(
@@ -103,8 +103,30 @@ var ScssHighlightRules = function() {
);
var colors = lang.arrayToMap(
- ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" +
- "purple|red|silver|teal|white|yellow").split("|")
+ ("aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|" +
+ "blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|" +
+ "chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|" +
+ "darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|" +
+ "darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|" +
+ "darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|" +
+ "darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|" +
+ "dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|" +
+ "ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|" +
+ "hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|" +
+ "lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|" +
+ "lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|" +
+ "lightsalmon|lightseagreen|lightskyblue|lightslategray|" +
+ "lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|" +
+ "magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|" +
+ "mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|" +
+ "mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|" +
+ "moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|" +
+ "orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|" +
+ "papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|" +
+ "red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|" +
+ "seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|" +
+ "springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|" +
+ "wheat|white|whitesmoke|yellow|yellowgreen").split("|")
);
var keywords = lang.arrayToMap(
@@ -216,11 +238,10 @@ var ScssHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"qqstring" : [
@@ -399,6 +420,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = SassHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-scad.js b/js/core/vendor/ace-builds/src-noconflict/mode-scad.js
index bdfa832..c9a767b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-scad.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-scad.js
@@ -120,11 +120,10 @@ var scadHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"qqstring" : [
@@ -338,14 +337,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/scad",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/scad",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var scadHighlightRules = require("./scad_highlight_rules").scadHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-scala.js b/js/core/vendor/ace-builds/src-noconflict/mode-scala.js
index a742704..94c645c 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-scala.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-scala.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -900,11 +906,10 @@ var ScalaHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"string" : [
@@ -953,7 +958,6 @@ var ScalaHighlightRules = require("./scala_highlight_rules").ScalaHighlightRules
var Mode = function() {
JavaScriptMode.call(this);
-
this.HighlightRules = ScalaHighlightRules;
};
oop.inherits(Mode, JavaScriptMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-scheme.js b/js/core/vendor/ace-builds/src-noconflict/mode-scheme.js
index 8abce4f..2e6b7ff 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-scheme.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-scheme.js
@@ -140,6 +140,7 @@ var MatchingParensOutdent = require("./matching_parens_outdent").MatchingParensO
var Mode = function() {
this.HighlightRules = SchemeHighlightRules;
this.$outdent = new MatchingParensOutdent();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-scss.js b/js/core/vendor/ace-builds/src-noconflict/mode-scss.js
index 4789c98..4785dc3 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-scss.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-scss.js
@@ -75,7 +75,7 @@ var ScssHighlightRules = function() {
"alpha|join|blue|ceil|change_color|comparable|complement|darken|desaturate|" +
"floor|grayscale|green|hue|if|invert|join|length|lighten|lightness|mix|" +
"nth|opacify|opacity|percentage|quote|red|round|saturate|saturation|" +
- "scale_color|transparentize|type_of|unit|unitless|unqoute").split("|")
+ "scale_color|transparentize|type_of|unit|unitless|unquote").split("|")
);
var constants = lang.arrayToMap(
@@ -103,8 +103,30 @@ var ScssHighlightRules = function() {
);
var colors = lang.arrayToMap(
- ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" +
- "purple|red|silver|teal|white|yellow").split("|")
+ ("aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|" +
+ "blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|" +
+ "chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|" +
+ "darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|" +
+ "darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|" +
+ "darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|" +
+ "darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|" +
+ "dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|" +
+ "ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|" +
+ "hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|" +
+ "lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|" +
+ "lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|" +
+ "lightsalmon|lightseagreen|lightskyblue|lightslategray|" +
+ "lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|" +
+ "magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|" +
+ "mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|" +
+ "mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|" +
+ "moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|" +
+ "orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|" +
+ "papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|" +
+ "red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|" +
+ "seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|" +
+ "springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|" +
+ "wheat|white|whitesmoke|yellow|yellowgreen").split("|")
);
var keywords = lang.arrayToMap(
@@ -216,11 +238,10 @@ var ScssHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"qqstring" : [
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-sjs.js b/js/core/vendor/ace-builds/src-noconflict/mode-sjs.js
index c5abe5f..6bcd0bc 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-sjs.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-sjs.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-smarty.js b/js/core/vendor/ace-builds/src-noconflict/mode-smarty.js
index 6b1d814..448ced3 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-smarty.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-smarty.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-snippets.js b/js/core/vendor/ace-builds/src-noconflict/mode-snippets.js
index e60ffa7..a528501 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-snippets.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-snippets.js
@@ -184,6 +184,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = SnippetGroupHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-soy_template.js b/js/core/vendor/ace-builds/src-noconflict/mode-soy_template.js
index 716d0bd..df831bb 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-soy_template.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-soy_template.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-space.js b/js/core/vendor/ace-builds/src-noconflict/mode-space.js
index a790b1c..5bbeb48 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-space.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-space.js
@@ -149,6 +149,7 @@ var SpaceHighlightRules = require("./space_highlight_rules").SpaceHighlightRules
var Mode = function() {
this.HighlightRules = SpaceHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
(function() {
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-sparql.js b/js/core/vendor/ace-builds/src-noconflict/mode-sparql.js
new file mode 100644
index 0000000..e5a5854
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-sparql.js
@@ -0,0 +1,313 @@
+ace.define("ace/mode/sparql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
+
+var SPARQLHighlightRules = function() {
+
+ this.$rules = {
+ start: [{
+ include: "#comments"
+ }, {
+ include: "#strings"
+ }, {
+ include: "#string-language-suffixes"
+ }, {
+ include: "#string-datatype-suffixes"
+ }, {
+ include: "#logic-operators"
+ }, {
+ include: "#relative-urls"
+ }, {
+ include: "#xml-schema-types"
+ }, {
+ include: "#rdf-schema-types"
+ }, {
+ include: "#owl-types"
+ }, {
+ include: "#qnames"
+ }, {
+ include: "#keywords"
+ }, {
+ include: "#built-in-functions"
+ }, {
+ include: "#variables"
+ }, {
+ include: "#boolean-literal"
+ }, {
+ include: "#punctuation-operators"
+ }],
+ "#boolean-literal": [{
+ token: "constant.language.boolean.sparql",
+ regex: /true|false/
+ }],
+ "#built-in-functions": [{
+ token: "support.function.sparql",
+ regex: /[Aa][Bb][Ss]|[Aa][Vv][Gg]|[Bb][Nn][Oo][Dd][Ee]|[Bb][Oo][Uu][Nn][Dd]|[Cc][Ee][Ii][Ll]|[Cc][Oo][Aa][Ll][Ee][Ss][Cc][Ee]|[Cc][Oo][Nn][Cc][Aa][Tt]|[Cc][Oo][Nn][Tt][Aa][Ii][Nn][Ss]|[Cc][Oo][Uu][Nn][Tt]|[Dd][Aa][Tt][Aa][Tt][Yy][Pp][Ee]|[Dd][Aa][Yy]|[Ee][Nn][Cc][Oo][Dd][Ee]_[Ff][Oo][Rr]_[Uu][Rr][Ii]|[Ee][Xx][Ii][Ss][Tt][Ss]|[Ff][Ll][Oo][Oo][Rr]|[Gg][Rr][Oo][Uu][Pp]_[Cc][Oo][Nn][Cc][Aa][Tt]|[Hh][Oo][Uu][Rr][Ss]|[Ii][Ff]|[Ii][Rr][Ii]|[Ii][Ss][Bb][Ll][Aa][Nn][Kk]|[Ii][Ss][Ii][Rr][Ii]|[Ii][Ss][Ll][Ii][Tt][Ee][Rr][Aa][Ll]|[Ii][Ss][Nn][Uu][Mm][Ee][Rr][Ii][Cc]|[Ii][Ss][Uu][Rr][Ii]|[Ll][Aa][Nn][Gg]|[Ll][Aa][Nn][Gg][Mm][Aa][Tt][Cc][Hh][Ee][Ss]|[Ll][Cc][Aa][Ss][Ee]|[Mm][Aa][Xx]|[Mm][Dd]5|[Mm][Ii][Nn]|[Mm][Ii][Nn][Uu][Tt][Ee][Ss]|[Mm][Oo][Nn][Tt][Hh]|[Nn][Oo][Ww]|[Rr][Aa][Nn][Dd]|[Rr][Ee][Gg][Ee][Xx]|[Rr][Ee][Pp][Ll][Aa][Cc][Ee]|[Rr][Oo][Uu][Nn][Dd]|[Ss][Aa][Mm][Ee][Tt][Ee][Rr][Mm]|[Ss][Aa][Mm][Pp][Ll][Ee]|[Ss][Ee][Cc][Oo][Nn][Dd][Ss]|[Ss][Ee][Pp][Aa][Rr][Aa][Tt][Oo][Rr]|[Ss][Hh][Aa](?:1|256|384|512)|[Ss][Tt][Rr]|[Ss][Tt][Rr][Aa][Ff][Tt][Ee][Rr]|[Ss][Tt][Rr][Bb][Ee][Ff][Oo][Rr][Ee]|[Ss][Tt][Rr][Dd][Tt]|[Ss][Tt][Rr][Ee][Nn][Dd][Ss]|[Ss][Tt][Rr][Ll][Aa][Nn][Gg]|[Ss][Tt][Rr][Ll][Ee][Nn]|[Ss][Tt][Rr][Ss][Tt][Aa][Rr][Tt][Ss]|[Ss][Tt][Rr][Uu][Uu][Ii][Dd]|[Ss][Uu][Bb][Ss][Tt][Rr]|[Ss][Uu][Mm]|[Tt][Ii][Mm][Ee][Zz][Oo][Nn][Ee]|[Tt][Zz]|[Uu][Cc][Aa][Ss][Ee]|[Uu][Rr][Ii]|[Uu][Uu][Ii][Dd]|[Yy][Ee][Aa][Rr]/
+ }],
+ "#comments": [{
+ token: [
+ "punctuation.definition.comment.sparql",
+ "comment.line.hash.sparql"
+ ],
+ regex: /(#)(.*$)/
+ }],
+ "#keywords": [{
+ token: "keyword.other.sparql",
+ regex: /[Aa][Dd][Dd]|[Aa][Ll][Ll]|[Aa][Ss]|[As][Ss][Cc]|[Aa][Ss][Kk]|[Bb][Aa][Ss][Ee]|[Bb][Ii][Nn][Dd]|[Bb][Yy]|[Cc][Ll][Ee][Aa][Rr]|[Cc][Oo][Nn][Ss][Tt][Rr][Uu][Cc][Tt]|[Cc][Oo][Pp][Yy]|[Cc][Rr][Ee][Aa][Tt][Ee]|[Dd][Aa][Tt][Aa]|[Dd][Ee][Ff][Aa][Uu][Ll][Tt]|[Dd][Ee][Ll][Ee][Tt][Ee]|[Dd][Ee][Sc][Cc]|[Dd][Ee][Ss][Cc][Rr][Ii][Bb][Ee]|[Dd][Ii][Ss][Tt][Ii][Nn][Cc][Tt]|[Dd][Rr][Oo][Pp]|[Ff][Ii][Ll][Tt][Ee][Rr]|[Ff][Rr][Oo][Mm]|[Gg][Rr][Aa][Pp][Hh]|[Gg][Rr][Oo][Uu][Pp]|[Hh][Aa][Vv][Ii][Nn][Gg]|[Ii][Nn][Ss][Ee][Rr][Tt]|[Ll][Ii][Mm][Ii][Tt]|[Ll][Oo][Aa][Dd]|[Mm][Ii][Nn][Uu][Ss]|[Mm][Oo][Vv][Ee]|[Nn][Aa][Mm][Ee][Dd]|[Oo][Ff][Ff][Ss][Ee][Tt]|[Oo][Pp][Tt][Ii][Oo][Nn][Aa][Ll]|[Oo][Rr][Dd][Ee][Rr]|[Pp][Rr][Ee][Ff][Ii][Xx]|[Rr][Ee][Dd][Uu][Cc][Ee][Dd]|[Ss][Ee][Ll][Ee][Cc][Tt]|[Ss][Ee][Pp][Aa][Rr][Aa][Tt][Oo][Rr]|[Ss][Ee][Rr][Vv][Ii][Cc][Ee]|[Ss][Ii][Ll][Ee][Nn][Tt]|[Tt][Oo]|[Uu][Nn][Dd][Ee][Ff]|[Uu][Nn][Ii][Oo][Nn]|[Uu][Ss][Ii][Nn][Gg]|[Vv][Aa][Ll][Uu][Ee][Ss]|[Ww][He][Ee][Rr][Ee]|[Ww][Ii][Tt][Hh]/
+ }],
+ "#logic-operators": [{
+ token: "keyword.operator.logical.sparql",
+ regex: /\|\||&&|=|!=|<|>|<=|>=|(?:^|!?\s)IN(?:!?\s|$)|(?:^|!?\s)NOT(?:!?\s|$)|-|\+|\*|\/|\!/
+ }],
+ "#owl-types": [{
+ token: "support.type.datatype.owl.sparql",
+ regex: /owl:[a-zA-Z]+/
+ }],
+ "#punctuation-operators": [{
+ token: "keyword.operator.punctuation.sparql",
+ regex: /;|,|\.|\(|\)|\{|\}|\|/
+ }],
+ "#qnames": [{
+ token: "entity.name.other.qname.sparql",
+ regex: /(?:[a-zA-Z][-_a-zA-Z0-9]*)?:(?:[_a-zA-Z][-_a-zA-Z0-9]*)?/
+ }],
+ "#rdf-schema-types": [{
+ token: "support.type.datatype.rdf.schema.sparql",
+ regex: /rdfs?:[a-zA-Z]+|(?:^|\s)a(?:\s|$)/
+ }],
+ "#relative-urls": [{
+ token: "string.quoted.other.relative.url.sparql",
+ regex: /</,
+ push: [{
+ token: "string.quoted.other.relative.url.sparql",
+ regex: />/,
+ next: "pop"
+ }, {
+ defaultToken: "string.quoted.other.relative.url.sparql"
+ }]
+ }],
+ "#string-datatype-suffixes": [{
+ token: "keyword.operator.datatype.suffix.sparql",
+ regex: /\^\^/
+ }],
+ "#string-language-suffixes": [{
+ token: [
+ "keyword.operator.language.suffix.sparql",
+ "constant.language.suffix.sparql"
+ ],
+ regex: /(?!")(@)([a-z]+(?:\-[a-z0-9]+)*)/
+ }],
+ "#strings": [{
+ token: "string.quoted.triple.sparql",
+ regex: /"""/,
+ push: [{
+ token: "string.quoted.triple.sparql",
+ regex: /"""/,
+ next: "pop"
+ }, {
+ defaultToken: "string.quoted.triple.sparql"
+ }]
+ }, {
+ token: "string.quoted.double.sparql",
+ regex: /"/,
+ push: [{
+ token: "string.quoted.double.sparql",
+ regex: /"/,
+ next: "pop"
+ }, {
+ token: "invalid.string.newline",
+ regex: /$/
+ }, {
+ token: "constant.character.escape.sparql",
+ regex: /\\./
+ }, {
+ defaultToken: "string.quoted.double.sparql"
+ }]
+ }],
+ "#variables": [{
+ token: "variable.other.sparql",
+ regex: /(?:\?|\$)[-_a-zA-Z0-9]+/
+ }],
+ "#xml-schema-types": [{
+ token: "support.type.datatype.schema.sparql",
+ regex: /xsd?:[a-z][a-zA-Z]+/
+ }]
+ }
+
+ this.normalizeRules();
+};
+
+SPARQLHighlightRules.metaData = {
+ fileTypes: ["rq", "sparql"],
+ name: "SPARQL",
+ scopeName: "source.sparql"
+}
+
+
+oop.inherits(SPARQLHighlightRules, TextHighlightRules);
+
+exports.SPARQLHighlightRules = SPARQLHighlightRules;
+});
+
+ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../../lib/oop");
+var Range = require("../../range").Range;
+var BaseFoldMode = require("./fold_mode").FoldMode;
+
+var FoldMode = exports.FoldMode = function(commentRegex) {
+ if (commentRegex) {
+ this.foldingStartMarker = new RegExp(
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
+ );
+ this.foldingStopMarker = new RegExp(
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
+ );
+ }
+};
+oop.inherits(FoldMode, BaseFoldMode);
+
+(function() {
+
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
+ this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/;
+ this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
+ this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
+ this._getFoldWidgetBase = this.getFoldWidget;
+ this.getFoldWidget = function(session, foldStyle, row) {
+ var line = session.getLine(row);
+
+ if (this.singleLineBlockCommentRe.test(line)) {
+ if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
+ return "";
+ }
+
+ var fw = this._getFoldWidgetBase(session, foldStyle, row);
+
+ if (!fw && this.startRegionRe.test(line))
+ return "start"; // lineCommentRegionStart
+
+ return fw;
+ };
+
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
+ var line = session.getLine(row);
+
+ if (this.startRegionRe.test(line))
+ return this.getCommentRegionBlock(session, line, row);
+
+ var match = line.match(this.foldingStartMarker);
+ if (match) {
+ var i = match.index;
+
+ if (match[1])
+ return this.openingBracketBlock(session, match[1], row, i);
+
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
+
+ if (range && !range.isMultiLine()) {
+ if (forceMultiline) {
+ range = this.getSectionRange(session, row);
+ } else if (foldStyle != "all")
+ range = null;
+ }
+
+ return range;
+ }
+
+ if (foldStyle === "markbegin")
+ return;
+
+ var match = line.match(this.foldingStopMarker);
+ if (match) {
+ var i = match.index + match[0].length;
+
+ if (match[1])
+ return this.closingBracketBlock(session, match[1], row, i);
+
+ return session.getCommentFoldRange(row, i, -1);
+ }
+ };
+
+ this.getSectionRange = function(session, row) {
+ var line = session.getLine(row);
+ var startIndent = line.search(/\S/);
+ var startRow = row;
+ var startColumn = line.length;
+ row = row + 1;
+ var endRow = row;
+ var maxRow = session.getLength();
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var indent = line.search(/\S/);
+ if (indent === -1)
+ continue;
+ if (startIndent > indent)
+ break;
+ var subRange = this.getFoldWidgetRange(session, "all", row);
+
+ if (subRange) {
+ if (subRange.start.row <= startRow) {
+ break;
+ } else if (subRange.isMultiLine()) {
+ row = subRange.end.row;
+ } else if (startIndent == indent) {
+ break;
+ }
+ }
+ endRow = row;
+ }
+
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
+ };
+ this.getCommentRegionBlock = function(session, line, row) {
+ var startColumn = line.search(/\s*$/);
+ var maxRow = session.getLength();
+ var startRow = row;
+
+ var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
+ var depth = 1;
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var m = re.exec(line);
+ if (!m) continue;
+ if (m[1]) depth--;
+ else depth++;
+
+ if (!depth) break;
+ }
+
+ var endRow = row;
+ if (endRow > startRow) {
+ return new Range(startRow, startColumn, endRow, line.length);
+ }
+ };
+
+}).call(FoldMode.prototype);
+
+});
+
+ace.define("ace/mode/sparql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sparql_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextMode = require("./text").Mode;
+var SPARQLHighlightRules = require("./sparql_highlight_rules").SPARQLHighlightRules;
+var FoldMode = require("./folding/cstyle").FoldMode;
+
+var Mode = function() {
+ this.HighlightRules = SPARQLHighlightRules;
+ this.foldingRules = new FoldMode();
+};
+oop.inherits(Mode, TextMode);
+
+(function() {
+ this.$id = "ace/mode/sparql"
+}).call(Mode.prototype);
+
+exports.Mode = Mode;
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-sql.js b/js/core/vendor/ace-builds/src-noconflict/mode-sql.js
index ff0696e..9678787 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-sql.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-sql.js
@@ -48,6 +48,9 @@ var SqlHighlightRules = function() {
token : "string", // ' string
regex : "'.*?'"
}, {
+ token : "string", // ` string (apache drill)
+ regex : "`.*?`"
+ }, {
token : "constant.numeric", // float
regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
}, {
@@ -75,16 +78,16 @@ oop.inherits(SqlHighlightRules, TextHighlightRules);
exports.SqlHighlightRules = SqlHighlightRules;
});
-ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var SqlHighlightRules = require("./sql_highlight_rules").SqlHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = SqlHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-sqlserver.js b/js/core/vendor/ace-builds/src-noconflict/mode-sqlserver.js
index a73319c..59e9b90 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-sqlserver.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-sqlserver.js
@@ -407,18 +407,18 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/sqlserver",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sqlserver_highlight_rules","ace/range","ace/mode/folding/sqlserver"], function(require, exports, module) {
+ace.define("ace/mode/sqlserver",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sqlserver_highlight_rules","ace/mode/folding/sqlserver"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var SqlServerHighlightRules = require("./sqlserver_highlight_rules").SqlHighlightRules;
-var Range = require("../range").Range;
var SqlServerFoldMode = require("./folding/sqlserver").FoldMode;
var Mode = function() {
this.HighlightRules = SqlServerHighlightRules;
this.foldingRules = new SqlServerFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-stylus.js b/js/core/vendor/ace-builds/src-noconflict/mode-stylus.js
index 1f54cc5..fed3f82 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-stylus.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-stylus.js
@@ -7,10 +7,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -26,84 +26,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -123,14 +121,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -254,11 +302,10 @@ var StylusHighlightRules = function() {
"comment" : [
{
token : "comment", // closing comment
- regex : ".*?\\*\\/",
+ regex : "\\*\\/",
next : "start"
}, {
- token : "comment", // comment spanning whole line
- regex : ".+"
+ defaultToken : "comment"
}
],
"qqstring" : [
@@ -400,6 +447,7 @@ var FoldMode = require("./folding/coffee").FoldMode;
var Mode = function() {
this.HighlightRules = StylusHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-svg.js b/js/core/vendor/ace-builds/src-noconflict/mode-svg.js
index 8f42ff8..25d879b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-svg.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-svg.js
@@ -11,14 +11,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -30,9 +26,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -46,11 +42,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -88,7 +79,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -135,7 +126,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -414,7 +405,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -427,6 +418,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -545,8 +542,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -738,7 +737,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -772,11 +771,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -827,6 +826,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -843,6 +845,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -982,7 +987,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -998,7 +1003,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -1008,8 +1013,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -1044,14 +1049,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -1102,8 +1107,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -1118,7 +1123,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -1361,14 +1366,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -1386,6 +1390,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-swift.js b/js/core/vendor/ace-builds/src-noconflict/mode-swift.js
index 1fc2d6e..dc5a430 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-swift.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-swift.js
@@ -367,6 +367,7 @@ var Mode = function() {
this.HighlightRules = HighlightRules;
this.foldingRules = new FoldMode();
this.$behaviour = new CstyleBehaviour();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-tcl.js b/js/core/vendor/ace-builds/src-noconflict/mode-tcl.js
index 4c1743d..1f878c3 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-tcl.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-tcl.js
@@ -333,6 +333,7 @@ var Mode = function() {
this.HighlightRules = TclHighlightRules;
this.$outdent = new MatchingBraceOutdent();
this.foldingRules = new CStyleFoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-tex.js b/js/core/vendor/ace-builds/src-noconflict/mode-tex.js
index 5bed175..f4f13ba 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-tex.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-tex.js
@@ -132,6 +132,7 @@ var Mode = function(suppressHighlighting) {
else
this.HighlightRules = TexHighlightRules;
this.$outdent = new MatchingBraceOutdent();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-textile.js b/js/core/vendor/ace-builds/src-noconflict/mode-textile.js
index 4b528e7..94ed5c7 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-textile.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-textile.js
@@ -113,6 +113,7 @@ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutd
var Mode = function() {
this.HighlightRules = TextileHighlightRules;
this.$outdent = new MatchingBraceOutdent();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-toml.js b/js/core/vendor/ace-builds/src-noconflict/mode-toml.js
index 0ba0f17..2f34893 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-toml.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-toml.js
@@ -133,6 +133,7 @@ var FoldMode = require("./folding/ini").FoldMode;
var Mode = function() {
this.HighlightRules = TomlHighlightRules;
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-tsx.js b/js/core/vendor/ace-builds/src-noconflict/mode-tsx.js
index f21688e..9db47ac 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-tsx.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-tsx.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -871,7 +877,7 @@ ace.define("ace/mode/tsx",["require","exports","module","ace/lib/oop","ace/mode/
var oop = require("../lib/oop");
var tsMode = require("./typescript").Mode;
-var Mode = function() {
+var Mode = function() {
tsMode.call(this);
this.$highlightRuleConfig = {jsx: true};
};
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-turtle.js b/js/core/vendor/ace-builds/src-noconflict/mode-turtle.js
new file mode 100644
index 0000000..4eef543
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-turtle.js
@@ -0,0 +1,289 @@
+ace.define("ace/mode/turtle_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
+
+var TurtleHighlightRules = function() {
+
+ this.$rules = {
+ start: [{
+ include: "#comments"
+ }, {
+ include: "#strings"
+ }, {
+ include: "#base-prefix-declarations"
+ }, {
+ include: "#string-language-suffixes"
+ }, {
+ include: "#string-datatype-suffixes"
+ }, {
+ include: "#relative-urls"
+ }, {
+ include: "#xml-schema-types"
+ }, {
+ include: "#rdf-schema-types"
+ }, {
+ include: "#owl-types"
+ }, {
+ include: "#qnames"
+ }, {
+ include: "#punctuation-operators"
+ }],
+ "#base-prefix-declarations": [{
+ token: "keyword.other.prefix.turtle",
+ regex: /@(?:base|prefix)/
+ }],
+ "#comments": [{
+ token: [
+ "punctuation.definition.comment.turtle",
+ "comment.line.hash.turtle"
+ ],
+ regex: /(#)(.*$)/
+ }],
+ "#owl-types": [{
+ token: "support.type.datatype.owl.turtle",
+ regex: /owl:[a-zA-Z]+/
+ }],
+ "#punctuation-operators": [{
+ token: "keyword.operator.punctuation.turtle",
+ regex: /;|,|\.|\(|\)|\[|\]/
+ }],
+ "#qnames": [{
+ token: "entity.name.other.qname.turtle",
+ regex: /(?:[a-zA-Z][-_a-zA-Z0-9]*)?:(?:[_a-zA-Z][-_a-zA-Z0-9]*)?/
+ }],
+ "#rdf-schema-types": [{
+ token: "support.type.datatype.rdf.schema.turtle",
+ regex: /rdfs?:[a-zA-Z]+|(?:^|\s)a(?:\s|$)/
+ }],
+ "#relative-urls": [{
+ token: "string.quoted.other.relative.url.turtle",
+ regex: /</,
+ push: [{
+ token: "string.quoted.other.relative.url.turtle",
+ regex: />/,
+ next: "pop"
+ }, {
+ defaultToken: "string.quoted.other.relative.url.turtle"
+ }]
+ }],
+ "#string-datatype-suffixes": [{
+ token: "keyword.operator.datatype.suffix.turtle",
+ regex: /\^\^/
+ }],
+ "#string-language-suffixes": [{
+ token: [
+ "keyword.operator.language.suffix.turtle",
+ "constant.language.suffix.turtle"
+ ],
+ regex: /(?!")(@)([a-z]+(?:\-[a-z0-9]+)*)/
+ }],
+ "#strings": [{
+ token: "string.quoted.triple.turtle",
+ regex: /"""/,
+ push: [{
+ token: "string.quoted.triple.turtle",
+ regex: /"""/,
+ next: "pop"
+ }, {
+ defaultToken: "string.quoted.triple.turtle"
+ }]
+ }, {
+ token: "string.quoted.double.turtle",
+ regex: /"/,
+ push: [{
+ token: "string.quoted.double.turtle",
+ regex: /"/,
+ next: "pop"
+ }, {
+ token: "invalid.string.newline",
+ regex: /$/
+ }, {
+ token: "constant.character.escape.turtle",
+ regex: /\\./
+ }, {
+ defaultToken: "string.quoted.double.turtle"
+ }]
+ }],
+ "#xml-schema-types": [{
+ token: "support.type.datatype.xml.schema.turtle",
+ regex: /xsd?:[a-z][a-zA-Z]+/
+ }]
+ }
+
+ this.normalizeRules();
+};
+
+TurtleHighlightRules.metaData = {
+ fileTypes: ["ttl", "nt"],
+ name: "Turtle",
+ scopeName: "source.turtle"
+}
+
+
+oop.inherits(TurtleHighlightRules, TextHighlightRules);
+
+exports.TurtleHighlightRules = TurtleHighlightRules;
+});
+
+ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../../lib/oop");
+var Range = require("../../range").Range;
+var BaseFoldMode = require("./fold_mode").FoldMode;
+
+var FoldMode = exports.FoldMode = function(commentRegex) {
+ if (commentRegex) {
+ this.foldingStartMarker = new RegExp(
+ this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start)
+ );
+ this.foldingStopMarker = new RegExp(
+ this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end)
+ );
+ }
+};
+oop.inherits(FoldMode, BaseFoldMode);
+
+(function() {
+
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
+ this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/;
+ this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
+ this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
+ this._getFoldWidgetBase = this.getFoldWidget;
+ this.getFoldWidget = function(session, foldStyle, row) {
+ var line = session.getLine(row);
+
+ if (this.singleLineBlockCommentRe.test(line)) {
+ if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
+ return "";
+ }
+
+ var fw = this._getFoldWidgetBase(session, foldStyle, row);
+
+ if (!fw && this.startRegionRe.test(line))
+ return "start"; // lineCommentRegionStart
+
+ return fw;
+ };
+
+ this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {
+ var line = session.getLine(row);
+
+ if (this.startRegionRe.test(line))
+ return this.getCommentRegionBlock(session, line, row);
+
+ var match = line.match(this.foldingStartMarker);
+ if (match) {
+ var i = match.index;
+
+ if (match[1])
+ return this.openingBracketBlock(session, match[1], row, i);
+
+ var range = session.getCommentFoldRange(row, i + match[0].length, 1);
+
+ if (range && !range.isMultiLine()) {
+ if (forceMultiline) {
+ range = this.getSectionRange(session, row);
+ } else if (foldStyle != "all")
+ range = null;
+ }
+
+ return range;
+ }
+
+ if (foldStyle === "markbegin")
+ return;
+
+ var match = line.match(this.foldingStopMarker);
+ if (match) {
+ var i = match.index + match[0].length;
+
+ if (match[1])
+ return this.closingBracketBlock(session, match[1], row, i);
+
+ return session.getCommentFoldRange(row, i, -1);
+ }
+ };
+
+ this.getSectionRange = function(session, row) {
+ var line = session.getLine(row);
+ var startIndent = line.search(/\S/);
+ var startRow = row;
+ var startColumn = line.length;
+ row = row + 1;
+ var endRow = row;
+ var maxRow = session.getLength();
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var indent = line.search(/\S/);
+ if (indent === -1)
+ continue;
+ if (startIndent > indent)
+ break;
+ var subRange = this.getFoldWidgetRange(session, "all", row);
+
+ if (subRange) {
+ if (subRange.start.row <= startRow) {
+ break;
+ } else if (subRange.isMultiLine()) {
+ row = subRange.end.row;
+ } else if (startIndent == indent) {
+ break;
+ }
+ }
+ endRow = row;
+ }
+
+ return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
+ };
+ this.getCommentRegionBlock = function(session, line, row) {
+ var startColumn = line.search(/\s*$/);
+ var maxRow = session.getLength();
+ var startRow = row;
+
+ var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
+ var depth = 1;
+ while (++row < maxRow) {
+ line = session.getLine(row);
+ var m = re.exec(line);
+ if (!m) continue;
+ if (m[1]) depth--;
+ else depth++;
+
+ if (!depth) break;
+ }
+
+ var endRow = row;
+ if (endRow > startRow) {
+ return new Range(startRow, startColumn, endRow, line.length);
+ }
+ };
+
+}).call(FoldMode.prototype);
+
+});
+
+ace.define("ace/mode/turtle",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/turtle_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) {
+"use strict";
+
+var oop = require("../lib/oop");
+var TextMode = require("./text").Mode;
+var TurtleHighlightRules = require("./turtle_highlight_rules").TurtleHighlightRules;
+var FoldMode = require("./folding/cstyle").FoldMode;
+
+var Mode = function() {
+ this.HighlightRules = TurtleHighlightRules;
+ this.foldingRules = new FoldMode();
+};
+oop.inherits(Mode, TextMode);
+
+(function() {
+ this.$id = "ace/mode/turtle"
+}).call(Mode.prototype);
+
+exports.Mode = Mode;
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-twig.js b/js/core/vendor/ace-builds/src-noconflict/mode-twig.js
index 956889b..557c124 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-twig.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-twig.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- token: "constant",
- regex: "[a-z0-9-_]+"
- }, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-typescript.js b/js/core/vendor/ace-builds/src-noconflict/mode-typescript.js
index ed96185..1c1b697 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-typescript.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-typescript.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-vbscript.js b/js/core/vendor/ace-builds/src-noconflict/mode-vbscript.js
index 6161e74..010be5b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-vbscript.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-vbscript.js
@@ -184,6 +184,7 @@ var VBScriptHighlightRules = require("./vbscript_highlight_rules").VBScriptHighl
var Mode = function() {
this.HighlightRules = VBScriptHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-velocity.js b/js/core/vendor/ace-builds/src-noconflict/mode-velocity.js
index 6dc9f9b..2a420b6 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-velocity.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-velocity.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
@@ -791,10 +797,10 @@ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero";
-var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow";
+var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
-var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))";
+var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
@@ -810,84 +816,82 @@ var CssHighlightRules = function() {
this.$rules = {
"start" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "ruleset"
+ }, {
+ token: "paren.rparen",
+ regex: "\\}"
}, {
token: "string",
- regex: "@.*?{",
- push: "media"
+ regex: "@",
+ next: "media"
}, {
token: "keyword",
regex: "#[a-z0-9-_]+"
}, {
+ token: "keyword",
+ regex: "%"
+ }, {
token: "variable",
regex: "\\.[a-z0-9-_]+"
}, {
token: "string",
regex: ":[a-z0-9-_]+"
}, {
+ token : "constant.numeric",
+ regex : numRe
+ }, {
token: "constant",
regex: "[a-z0-9-_]+"
}, {
caseInsensitive: true
}],
-
- "media" : [{
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
+
+ "media": [{
+ include : ["strings", "url", "comments"]
}, {
token: "paren.lparen",
regex: "\\{",
- push: "ruleset"
+ next: "start"
}, {
- token: "string",
+ token: "paren.rparen",
regex: "\\}",
- next: "pop"
- }, {
- token: "keyword",
- regex: "#[a-z0-9-_]+"
- }, {
- token: "variable",
- regex: "\\.[a-z0-9-_]+"
+ next: "start"
}, {
token: "string",
- regex: ":[a-z0-9-_]+"
- }, {
- token: "constant",
- regex: "[a-z0-9-_]+"
+ regex: ";",
+ next: "start"
}, {
- caseInsensitive: true
+ token: "keyword",
+ regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
+ + "|page|font|keyframes|viewport|counter-style|font-feature-values"
+ + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
}],
- "comment" : [{
- token : "comment",
- regex : "\\*\\/",
- next : "pop"
- }, {
- defaultToken : "comment"
+ "comments" : [{
+ token: "comment", // multi line comment
+ regex: "\\/\\*",
+ push: [{
+ token : "comment",
+ regex : "\\*\\/",
+ next : "pop"
+ }, {
+ defaultToken : "comment"
+ }]
}],
- "ruleset" : [
- {
+ "ruleset" : [{
+ regex : "-(webkit|ms|moz|o)-",
+ token : "text"
+ }, {
token : "paren.rparen",
regex : "\\}",
- next: "pop"
- }, {
- token : "comment", // multi line comment
- regex : "\\/\\*",
- push : "comment"
- }, {
- token : "string", // single line
- regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
+ next : "start"
}, {
- token : "string", // single line
- regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
+ include : ["strings", "url", "comments"]
}, {
token : ["constant.numeric", "keyword"],
regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)"
@@ -907,14 +911,64 @@ var CssHighlightRules = function() {
token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
regex : pseudoClasses
}, {
- token : ["support.function", "string", "support.function"],
- regex : "(url\\()(.*)(\\))"
+ include: "url"
}, {
token : keywordMapper,
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
}, {
caseInsensitive: true
+ }],
+
+ url: [{
+ token : "support.function",
+ regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
+ push: [{
+ token : "support.function",
+ regex : "\\)",
+ next : "pop"
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+
+ strings: [{
+ token : "string.start",
+ regex : "'",
+ push : [{
+ token : "string.end",
+ regex : "'|$",
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }, {
+ token : "string.start",
+ regex : '"',
+ push : [{
+ token : "string.end",
+ regex : '"|$',
+ next: "pop"
+ }, {
+ include : "escapes"
+ }, {
+ token : "constant.language.escape",
+ regex : /\\$/,
+ consumeLineEnd: true
+ }, {
+ defaultToken: "string"
+ }]
+ }],
+ escapes: [{
+ token : "constant.language.escape",
+ regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
}]
+
};
this.normalizeRules();
@@ -1267,14 +1321,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -1286,9 +1336,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -1302,11 +1352,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -1344,7 +1389,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -1391,7 +1436,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -1806,7 +1851,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -1819,6 +1864,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -1937,8 +1988,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
@@ -2279,7 +2332,7 @@ var HtmlCompletions = function() {
if (is(token, "attribute-value"))
return this.getAttributeValueCompletions(state, session, pos, prefix);
var line = session.getLine(pos.row).substr(0, pos.column);
- if (/&[A-z]*$/i.test(line))
+ if (/&[a-z]*$/i.test(line))
return this.getHTMLEntityCompletions(state, session, pos, prefix);
return [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-verilog.js b/js/core/vendor/ace-builds/src-noconflict/mode-verilog.js
index 86cd3d6..7def13b 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-verilog.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-verilog.js
@@ -87,6 +87,7 @@ var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = VerilogHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-vhdl.js b/js/core/vendor/ace-builds/src-noconflict/mode-vhdl.js
index c9c9c96..41dab57 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-vhdl.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-vhdl.js
@@ -85,16 +85,16 @@ oop.inherits(VHDLHighlightRules, TextHighlightRules);
exports.VHDLHighlightRules = VHDLHighlightRules;
});
-ace.define("ace/mode/vhdl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/vhdl_highlight_rules","ace/range"], function(require, exports, module) {
+ace.define("ace/mode/vhdl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/vhdl_highlight_rules"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var VHDLHighlightRules = require("./vhdl_highlight_rules").VHDLHighlightRules;
-var Range = require("../range").Range;
var Mode = function() {
this.HighlightRules = VHDLHighlightRules;
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-wollok.js b/js/core/vendor/ace-builds/src-noconflict/mode-wollok.js
index 80aba6a..22c64ac 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-wollok.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-wollok.js
@@ -72,7 +72,7 @@ var JavaScriptHighlightRules = function(options) {
"keyword":
"const|yield|import|get|set|async|await|" +
"break|case|catch|continue|default|delete|do|else|finally|for|function|" +
- "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
+ "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
"__parent__|__count__|escape|unescape|with|__proto__|" +
"class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
"storage.type":
@@ -106,11 +106,11 @@ var JavaScriptHighlightRules = function(options) {
regex : '"(?=.)',
next : "qqstring"
}, {
- token : "constant.numeric", // hex
- regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/
+ token : "constant.numeric", // hexadecimal, octal and binary
+ regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
}, {
- token : "constant.numeric", // float
- regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/
+ token : "constant.numeric", // decimal integers and floats
+ regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
}, {
token : [
"storage.type", "punctuation.operator", "support.function",
@@ -161,6 +161,9 @@ var JavaScriptHighlightRules = function(options) {
next: "function_arguments"
}, {
token : "keyword",
+ regex : "from(?=\\s*('|\"))"
+ }, {
+ token : "keyword",
regex : "(?:" + kwBeforeRe + ")\\b",
next : "start"
}, {
@@ -177,6 +180,9 @@ var JavaScriptHighlightRules = function(options) {
regex : /[.](?![.])/,
next : "property"
}, {
+ token : "storage.type",
+ regex : /=>/
+ }, {
token : "keyword.operator",
regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
next : "start"
@@ -316,7 +322,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qqstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : '"|$',
@@ -332,7 +338,7 @@ var JavaScriptHighlightRules = function(options) {
}, {
token : "string",
regex : "\\\\$",
- next : "qstring"
+ consumeLineEnd : true
}, {
token : "string",
regex : "'|$",
@@ -342,8 +348,8 @@ var JavaScriptHighlightRules = function(options) {
}
]
};
-
-
+
+
if (!options || !options.noES6) {
this.$rules.no_regex.unshift({
regex: "[{}]", onMatch: function(val, state, stack) {
@@ -378,14 +384,14 @@ var JavaScriptHighlightRules = function(options) {
defaultToken: "string.quasi"
}]
});
-
+
if (!options || options.jsx != false)
JSX.call(this);
}
-
+
this.embedRules(DocCommentHighlightRules, "doc-",
[ DocCommentHighlightRules.getEndRule("no_regex") ]);
-
+
this.normalizeRules();
};
@@ -436,8 +442,8 @@ function JSX() {
{defaultToken: "string"}
];
this.$rules.jsxAttributes = [{
- token : "meta.tag.punctuation.tag-close.xml",
- regex : "/?>",
+ token : "meta.tag.punctuation.tag-close.xml",
+ regex : "/?>",
onMatch : function(value, currentState, stack) {
if (currentState == stack[0])
stack.shift();
@@ -452,7 +458,7 @@ function JSX() {
return [{type: this.token, value: value}];
},
nextState: "jsx"
- },
+ },
jsxJsRule,
comments("jsxAttributes"),
{
@@ -695,14 +701,13 @@ oop.inherits(FoldMode, BaseFoldMode);
});
-ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
+ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
-var Range = require("../range").Range;
var WorkerClient = require("../worker/worker_client").WorkerClient;
var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
var CStyleFoldMode = require("./folding/cstyle").FoldMode;
@@ -720,6 +725,7 @@ oop.inherits(Mode, TextMode);
this.lineCommentStart = "//";
this.blockComment = {start: "/*", end: "*/"};
+ this.$quotes = {'"': '"', "'": "'", "`": "`"};
this.getNextLineIndent = function(state, line, tab) {
var indent = this.$getIndent(line);
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-xml.js b/js/core/vendor/ace-builds/src-noconflict/mode-xml.js
index cecaffc..f5f840a 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-xml.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-xml.js
@@ -11,14 +11,10 @@ var XmlHighlightRules = function(normalize) {
start : [
{token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
{
- token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"],
- regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true
- },
- {
token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
},
- {token : "comment.xml", regex : "<\\!--", next : "comment"},
+ {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
{
token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
@@ -30,9 +26,9 @@ var XmlHighlightRules = function(normalize) {
{defaultToken : "text.xml"}
],
- xml_decl : [{
+ processing_instruction : [{
token : "entity.other.attribute-name.decl-attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.decl-attribute-equals.xml",
regex : "="
@@ -46,11 +42,6 @@ var XmlHighlightRules = function(normalize) {
next : "start"
}],
- processing_instruction : [
- {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"},
- {defaultToken : "instruction.xml"}
- ],
-
doctype : [
{include : "whitespace"},
{include : "string"},
@@ -88,7 +79,7 @@ var XmlHighlightRules = function(normalize) {
],
comment : [
- {token : "comment.xml", regex : "-->", next : "start"},
+ {token : "comment.end.xml", regex : "-->", next : "start"},
{defaultToken : "comment.xml"}
],
@@ -135,7 +126,7 @@ var XmlHighlightRules = function(normalize) {
attributes: [{
token : "entity.other.attribute-name.xml",
- regex : "(?:" + tagRegex + ":)?" + tagRegex + ""
+ regex : tagRegex
}, {
token : "keyword.operator.attribute-equals.xml",
regex : "="
@@ -414,7 +405,7 @@ function is(token, type) {
var tag = this._getFirstTagInLine(session, row);
if (!tag)
- return "";
+ return this.getCommentFoldWidget(session, row);
if (tag.closing || (!tag.tagName && tag.selfClosing))
return foldStyle == "markbeginend" ? "end" : "";
@@ -427,6 +418,12 @@ function is(token, type) {
return "start";
};
+
+ this.getCommentFoldWidget = function(session, row) {
+ if (/comment/.test(session.getState(row)) && /<!-/.test(session.getLine(row)))
+ return "start";
+ return "";
+ }
this._getFirstTagInLine = function(session, row) {
var tokens = session.getTokens(row);
var tag = new Tag();
@@ -545,8 +542,10 @@ function is(token, type) {
this.getFoldWidgetRange = function(session, foldStyle, row) {
var firstTag = this._getFirstTagInLine(session, row);
- if (!firstTag)
- return null;
+ if (!firstTag) {
+ return this.getCommentFoldWidget(session, row)
+ && session.getCommentFoldRange(row, session.getLine(row).length);
+ }
var isBackward = firstTag.closing || firstTag.selfClosing;
var stack = [];
diff --git a/js/core/vendor/ace-builds/src-noconflict/mode-yaml.js b/js/core/vendor/ace-builds/src-noconflict/mode-yaml.js
index 7b6ce82..8fbc403 100644
--- a/js/core/vendor/ace-builds/src-noconflict/mode-yaml.js
+++ b/js/core/vendor/ace-builds/src-noconflict/mode-yaml.js
@@ -12,10 +12,10 @@ var YamlHighlightRules = function() {
regex : "#.*$"
}, {
token : "list.markup",
- regex : /^(?:-{3}|\.{3})\s*(?=#|$)/
+ regex : /^(?:-{3}|\.{3})\s*(?=#|$)/
}, {
token : "list.markup",
- regex : /^\s*[\-?](?:$|\s)/
+ regex : /^\s*[\-?](?:$|\s)/
}, {
token: "constant",
regex: "!![\\w//]+"
@@ -39,8 +39,24 @@ var YamlHighlightRules = function() {
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
}, {
token : "string", // multi line string start
- regex : '[|>][-+\\d\\s]*$',
- next : "qqstring"
+ regex : /[|>][-+\d\s]*$/,
+ onMatch: function(val, state, stack, line) {
+ var indent = /^\s*/.exec(line)[0];
+ if (stack.length < 1) {
+ stack.push(this.next);
+ } else {
+ stack[0] = "mlString";
+ }
+
+ if (stack.length < 2) {
+ stack.push(indent.length);
+ }
+ else {
+ stack[1] = indent.length;
+ }
+ return this.token;
+ },
+ next : "mlString"
}, {
token : "string", // single quoted string
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
@@ -61,16 +77,32 @@ var YamlHighlightRules = function() {
regex : "[\\])}]"
}
],
- "qqstring" : [
+ "mlString" : [
{
- token : "string",
- regex : '(?=(?:(?:\\\\.)|(?:[^:]))*?:)',
- next : "start"
+ token : "indent",
+ regex : /^\s*$/
+ }, {
+ token : "indent",
+ regex : /^\s*/,
+ onMatch: function(val, state, stack) {
+ var curIndent = stack[1];
+
+ if (curIndent >= val.length) {
+ this.next = "start";
+ stack.splice(0);
+ }
+ else {
+ this.next = "mlString";
+ }
+ return this.token;
+ },
+ next : "mlString"
}, {
token : "string",
regex : '.+'
}
]};
+ this.normalizeRules();
};
@@ -219,6 +251,7 @@ var Mode = function() {
this.HighlightRules = YamlHighlightRules;
this.$outdent = new MatchingBraceOutdent();
this.foldingRules = new FoldMode();
+ this.$behaviour = this.$defaultBehaviour;
};
oop.inherits(Mode, TextMode);
diff --git a/js/core/vendor/ace-builds/src-noconflict/snippets/bro.js b/js/core/vendor/ace-builds/src-noconflict/snippets/bro.js
new file mode 100644
index 0000000..2f2e2e1
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/snippets/bro.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/bro",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/snippets/graphqlschema.js b/js/core/vendor/ace-builds/src-noconflict/snippets/graphqlschema.js
new file mode 100644
index 0000000..6b1e49f
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/snippets/graphqlschema.js
@@ -0,0 +1,39 @@
+ace.define("ace/snippets/graphqlschema",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText = "# Type Snippet\n\
+trigger type\n\
+snippet type\n\
+ type ${1:type_name} {\n\
+ ${2:type_siblings}\n\
+ }\n\
+\n\
+# Input Snippet\n\
+trigger input\n\
+snippet input\n\
+ input ${1:input_name} {\n\
+ ${2:input_siblings}\n\
+ }\n\
+\n\
+# Interface Snippet\n\
+trigger interface\n\
+snippet interface\n\
+ interface ${1:interface_name} {\n\
+ ${2:interface_siblings}\n\
+ }\n\
+\n\
+# Interface Snippet\n\
+trigger union\n\
+snippet union\n\
+ union ${1:union_name} = ${2:type} | ${3: type}\n\
+\n\
+# Enum Snippet\n\
+trigger enum\n\
+snippet enum\n\
+ enum ${1:enum_name} {\n\
+ ${2:enum_siblings}\n\
+ }\n\
+";
+exports.scope = "graphqlschema";
+
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/snippets/hjson.js b/js/core/vendor/ace-builds/src-noconflict/snippets/hjson.js
new file mode 100644
index 0000000..b31e556
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/snippets/hjson.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/hjson",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/snippets/pig.js b/js/core/vendor/ace-builds/src-noconflict/snippets/pig.js
new file mode 100644
index 0000000..479a03b
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/snippets/pig.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/pig",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "pig";
+
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/snippets/sh.js b/js/core/vendor/ace-builds/src-noconflict/snippets/sh.js
index 12074a6..0f1f6d8 100644
--- a/js/core/vendor/ace-builds/src-noconflict/snippets/sh.js
+++ b/js/core/vendor/ace-builds/src-noconflict/snippets/sh.js
@@ -62,7 +62,7 @@ snippet getopt\n\
-h|help Display this message\n\
-v|version Display script version\n\
\n\
- EOT\n\
+ EOT\n\
} # ---------- end of function usage ----------\n\
\n\
#-----------------------------------------------------------------------\n\
diff --git a/js/core/vendor/ace-builds/src-noconflict/snippets/sparql.js b/js/core/vendor/ace-builds/src-noconflict/snippets/sparql.js
new file mode 100644
index 0000000..2c87bbf
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/snippets/sparql.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/sparql",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/snippets/turtle.js b/js/core/vendor/ace-builds/src-noconflict/snippets/turtle.js
new file mode 100644
index 0000000..5e104b2
--- /dev/null
+++ b/js/core/vendor/ace-builds/src-noconflict/snippets/turtle.js
@@ -0,0 +1,7 @@
+ace.define("ace/snippets/turtle",["require","exports","module"], function(require, exports, module) {
+"use strict";
+
+exports.snippetText =undefined;
+exports.scope = "";
+
+});
diff --git a/js/core/vendor/ace-builds/src-noconflict/worker-lua.js b/js/core/vendor/ace-builds/src-noconflict/worker-lua.js
index b2f67f4..e5026ea 100644
--- a/js/core/vendor/ace-builds/src-noconflict/worker-lua.js
+++ b/js/core/vendor/ace-builds/src-noconflict/worker-lua.js
@@ -1849,7 +1849,7 @@ ace.define("ace/mode/lua/luaparse",["require","exports","module"], function(requ
case 126: // ~
if (61 === next) return scanPunctuator('~=');
- return raise({}, errors.expected, '=', '~');
+ return scanPunctuator('~');
case 58: // :
if (58 === next) return scanPunctuator('::');
@@ -2205,7 +2205,7 @@ ace.define("ace/mode/lua/luaparse",["require","exports","module"], function(requ
}
function isUnary(token) {
- if (Punctuator === token.type) return '#-'.indexOf(token.value) >= 0;
+ if (Punctuator === token.type) return '#-~'.indexOf(token.value) >= 0;
if (Keyword === token.type) return 'not' === token.value;
return false;
}
diff --git a/js/core/vendor/ace-builds/src-noconflict/worker-php.js b/js/core/vendor/ace-builds/src-noconflict/worker-php.js
index 0b27e96..3752c84 100644
--- a/js/core/vendor/ace-builds/src-noconflict/worker-php.js
+++ b/js/core/vendor/ace-builds/src-noconflict/worker-php.js
@@ -1410,368 +1410,585 @@ ace.define("ace/mode/php/php",["require","exports","module"], function(require,
var PHP = {Constants:{}};
-
-
-
-PHP.Constants.T_INCLUDE = 262;
-PHP.Constants.T_INCLUDE_ONCE = 261;
-PHP.Constants.T_EVAL = 260;
-PHP.Constants.T_REQUIRE = 259;
-PHP.Constants.T_REQUIRE_ONCE = 258;
-PHP.Constants.T_LOGICAL_OR = 263;
-PHP.Constants.T_LOGICAL_XOR = 264;
-PHP.Constants.T_LOGICAL_AND = 265;
-PHP.Constants.T_PRINT = 266;
-PHP.Constants.T_PLUS_EQUAL = 277;
-PHP.Constants.T_MINUS_EQUAL = 276;
-PHP.Constants.T_MUL_EQUAL = 275;
-PHP.Constants.T_DIV_EQUAL = 274;
+PHP.Constants.T_INCLUDE = 257;
+PHP.Constants.T_INCLUDE_ONCE = 258;
+PHP.Constants.T_EVAL = 259;
+PHP.Constants.T_REQUIRE = 260;
+PHP.Constants.T_REQUIRE_ONCE = 261;
+PHP.Constants.T_LOGICAL_OR = 262;
+PHP.Constants.T_LOGICAL_XOR = 263;
+PHP.Constants.T_LOGICAL_AND = 264;
+PHP.Constants.T_PRINT = 265;
+PHP.Constants.T_YIELD = 266;
+PHP.Constants.T_DOUBLE_ARROW = 267;
+PHP.Constants.T_YIELD_FROM = 268;
+PHP.Constants.T_PLUS_EQUAL = 269;
+PHP.Constants.T_MINUS_EQUAL = 270;
+PHP.Constants.T_MUL_EQUAL = 271;
+PHP.Constants.T_DIV_EQUAL = 272;
PHP.Constants.T_CONCAT_EQUAL = 273;
-PHP.Constants.T_MOD_EQUAL = 272;
-PHP.Constants.T_AND_EQUAL = 271;
-PHP.Constants.T_OR_EQUAL = 270;
-PHP.Constants.T_XOR_EQUAL = 269;
-PHP.Constants.T_SL_EQUAL = 268;
-PHP.Constants.T_SR_EQUAL = 267;
-PHP.Constants.T_BOOLEAN_OR = 278;
-PHP.Constants.T_BOOLEAN_AND = 279;
-PHP.Constants.T_IS_EQUAL = 283;
-PHP.Constants.T_IS_NOT_EQUAL = 282;
-PHP.Constants.T_IS_IDENTICAL = 281;
-PHP.Constants.T_IS_NOT_IDENTICAL = 280;
-PHP.Constants.T_IS_SMALLER_OR_EQUAL = 285;
-PHP.Constants.T_IS_GREATER_OR_EQUAL = 284;
-PHP.Constants.T_SL = 287;
-PHP.Constants.T_SR = 286;
-PHP.Constants.T_INSTANCEOF = 288;
-PHP.Constants.T_INC = 297;
-PHP.Constants.T_DEC = 296;
-PHP.Constants.T_INT_CAST = 295;
-PHP.Constants.T_DOUBLE_CAST = 294;
-PHP.Constants.T_STRING_CAST = 293;
-PHP.Constants.T_ARRAY_CAST = 292;
-PHP.Constants.T_OBJECT_CAST = 291;
-PHP.Constants.T_BOOL_CAST = 290;
-PHP.Constants.T_UNSET_CAST = 289;
-PHP.Constants.T_NEW = 299;
-PHP.Constants.T_CLONE = 298;
-PHP.Constants.T_EXIT = 300;
-PHP.Constants.T_IF = 301;
-PHP.Constants.T_ELSEIF = 302;
-PHP.Constants.T_ELSE = 303;
-PHP.Constants.T_ENDIF = 304;
-PHP.Constants.T_LNUMBER = 305;
-PHP.Constants.T_DNUMBER = 306;
-PHP.Constants.T_STRING = 307;
-PHP.Constants.T_STRING_VARNAME = 308;
-PHP.Constants.T_VARIABLE = 309;
-PHP.Constants.T_NUM_STRING = 310;
-PHP.Constants.T_INLINE_HTML = 311;
-PHP.Constants.T_CHARACTER = 312;
-PHP.Constants.T_BAD_CHARACTER = 313;
-PHP.Constants.T_ENCAPSED_AND_WHITESPACE = 314;
-PHP.Constants.T_CONSTANT_ENCAPSED_STRING = 315;
-PHP.Constants.T_ECHO = 316;
-PHP.Constants.T_DO = 317;
-PHP.Constants.T_WHILE = 318;
-PHP.Constants.T_ENDWHILE = 319;
-PHP.Constants.T_FOR = 320;
-PHP.Constants.T_ENDFOR = 321;
-PHP.Constants.T_FOREACH = 322;
-PHP.Constants.T_ENDFOREACH = 323;
-PHP.Constants.T_DECLARE = 324;
-PHP.Constants.T_ENDDECLARE = 325;
-PHP.Constants.T_AS = 326;
-PHP.Constants.T_SWITCH = 327;
-PHP.Constants.T_ENDSWITCH = 328;
-PHP.Constants.T_CASE = 329;
-PHP.Constants.T_DEFAULT = 330;
-PHP.Constants.T_BREAK = 331;
-PHP.Constants.T_CONTINUE = 332;
-PHP.Constants.T_GOTO = 333;
-PHP.Constants.T_FUNCTION = 334;
-PHP.Constants.T_CONST = 335;
-PHP.Constants.T_RETURN = 336;
-PHP.Constants.T_TRY = 337;
-PHP.Constants.T_CATCH = 338;
-PHP.Constants.T_THROW = 339;
-PHP.Constants.T_USE = 340;
-PHP.Constants.T_GLOBAL = 341;
-PHP.Constants.T_STATIC = 347;
-PHP.Constants.T_ABSTRACT = 346;
-PHP.Constants.T_FINAL = 345;
-PHP.Constants.T_PRIVATE = 344;
-PHP.Constants.T_PROTECTED = 343;
-PHP.Constants.T_PUBLIC = 342;
-PHP.Constants.T_VAR = 348;
-PHP.Constants.T_UNSET = 349;
-PHP.Constants.T_ISSET = 350;
-PHP.Constants.T_EMPTY = 351;
-PHP.Constants.T_HALT_COMPILER = 352;
-PHP.Constants.T_CLASS = 353;
-PHP.Constants.T_TRAIT = 382;
-PHP.Constants.T_INTERFACE = 354;
-PHP.Constants.T_EXTENDS = 355;
-PHP.Constants.T_IMPLEMENTS = 356;
-PHP.Constants.T_OBJECT_OPERATOR = 357;
-PHP.Constants.T_DOUBLE_ARROW = 358;
-PHP.Constants.T_LIST = 359;
-PHP.Constants.T_ARRAY = 360;
-PHP.Constants.T_CLASS_C = 361;
-PHP.Constants.T_TRAIT_C = 381;
-PHP.Constants.T_METHOD_C = 362;
-PHP.Constants.T_FUNC_C = 363;
-PHP.Constants.T_LINE = 364;
-PHP.Constants.T_FILE = 365;
-PHP.Constants.T_COMMENT = 366;
-PHP.Constants.T_DOC_COMMENT = 367;
-PHP.Constants.T_OPEN_TAG = 368;
-PHP.Constants.T_OPEN_TAG_WITH_ECHO = 369;
-PHP.Constants.T_CLOSE_TAG = 370;
-PHP.Constants.T_WHITESPACE = 371;
-PHP.Constants.T_START_HEREDOC = 372;
-PHP.Constants.T_END_HEREDOC = 373;
-PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES = 374;
-PHP.Constants.T_CURLY_OPEN = 375;
-PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM = 376;
-PHP.Constants.T_DOUBLE_COLON = 376;
-PHP.Constants.T_NAMESPACE = 377;
-PHP.Constants.T_NS_C = 378;
-PHP.Constants.T_DIR = 379;
-PHP.Constants.T_NS_SEPARATOR = 380;
-PHP.Lexer = function( src, ini ) {
-
-
- var heredoc,
- lineBreaker = function( result ) {
- if (result.match(/\n/) !== null) {
- var quote = result.substring(0, 1);
- result = '[' + result.split(/\n/).join( quote + "," + quote ) + '].join("\\n")';
-
- }
+PHP.Constants.T_MOD_EQUAL = 274;
+PHP.Constants.T_AND_EQUAL = 275;
+PHP.Constants.T_OR_EQUAL = 276;
+PHP.Constants.T_XOR_EQUAL = 277;
+PHP.Constants.T_SL_EQUAL = 278;
+PHP.Constants.T_SR_EQUAL = 279;
+PHP.Constants.T_POW_EQUAL = 280;
+PHP.Constants.T_COALESCE = 281;
+PHP.Constants.T_BOOLEAN_OR = 282;
+PHP.Constants.T_BOOLEAN_AND = 283;
+PHP.Constants.T_IS_EQUAL = 284;
+PHP.Constants.T_IS_NOT_EQUAL = 285;
+PHP.Constants.T_IS_IDENTICAL = 286;
+PHP.Constants.T_IS_NOT_IDENTICAL = 287;
+PHP.Constants.T_SPACESHIP = 288;
+PHP.Constants.T_IS_SMALLER_OR_EQUAL = 289;
+PHP.Constants.T_IS_GREATER_OR_EQUAL = 290;
+PHP.Constants.T_SL = 291;
+PHP.Constants.T_SR = 292;
+PHP.Constants.T_INSTANCEOF = 293;
+PHP.Constants.T_INC = 294;
+PHP.Constants.T_DEC = 295;
+PHP.Constants.T_INT_CAST = 296;
+PHP.Constants.T_DOUBLE_CAST = 297;
+PHP.Constants.T_STRING_CAST = 298;
+PHP.Constants.T_ARRAY_CAST = 299;
+PHP.Constants.T_OBJECT_CAST = 300;
+PHP.Constants.T_BOOL_CAST = 301;
+PHP.Constants.T_UNSET_CAST = 302;
+PHP.Constants.T_POW = 303;
+PHP.Constants.T_NEW = 304;
+PHP.Constants.T_CLONE = 305;
+PHP.Constants.T_EXIT = 306;
+PHP.Constants.T_IF = 307;
+PHP.Constants.T_ELSEIF = 308;
+PHP.Constants.T_ELSE = 309;
+PHP.Constants.T_ENDIF = 310;
+PHP.Constants.T_LNUMBER = 311;
+PHP.Constants.T_DNUMBER = 312;
+PHP.Constants.T_STRING = 313;
+PHP.Constants.T_STRING_VARNAME = 314;
+PHP.Constants.T_VARIABLE = 315;
+PHP.Constants.T_NUM_STRING = 316;
+PHP.Constants.T_INLINE_HTML = 317;
+PHP.Constants.T_CHARACTER = 318;
+PHP.Constants.T_BAD_CHARACTER = 319;
+PHP.Constants.T_ENCAPSED_AND_WHITESPACE = 320;
+PHP.Constants.T_CONSTANT_ENCAPSED_STRING = 321;
+PHP.Constants.T_ECHO = 322;
+PHP.Constants.T_DO = 323;
+PHP.Constants.T_WHILE = 324;
+PHP.Constants.T_ENDWHILE = 325;
+PHP.Constants.T_FOR = 326;
+PHP.Constants.T_ENDFOR = 327;
+PHP.Constants.T_FOREACH = 328;
+PHP.Constants.T_ENDFOREACH = 329;
+PHP.Constants.T_DECLARE = 330;
+PHP.Constants.T_ENDDECLARE = 331;
+PHP.Constants.T_AS = 332;
+PHP.Constants.T_SWITCH = 333;
+PHP.Constants.T_ENDSWITCH = 334;
+PHP.Constants.T_CASE = 335;
+PHP.Constants.T_DEFAULT = 336;
+PHP.Constants.T_BREAK = 337;
+PHP.Constants.T_CONTINUE = 338;
+PHP.Constants.T_GOTO = 339;
+PHP.Constants.T_FUNCTION = 340;
+PHP.Constants.T_CONST = 341;
+PHP.Constants.T_RETURN = 342;
+PHP.Constants.T_TRY = 343;
+PHP.Constants.T_CATCH = 344;
+PHP.Constants.T_FINALLY = 345;
+PHP.Constants.T_THROW = 346;
+PHP.Constants.T_USE = 347;
+PHP.Constants.T_INSTEADOF = 348;
+PHP.Constants.T_GLOBAL = 349;
+PHP.Constants.T_STATIC = 350;
+PHP.Constants.T_ABSTRACT = 351;
+PHP.Constants.T_FINAL = 352;
+PHP.Constants.T_PRIVATE = 353;
+PHP.Constants.T_PROTECTED = 354;
+PHP.Constants.T_PUBLIC = 355;
+PHP.Constants.T_VAR = 356;
+PHP.Constants.T_UNSET = 357;
+PHP.Constants.T_ISSET = 358;
+PHP.Constants.T_EMPTY = 359;
+PHP.Constants.T_HALT_COMPILER = 360;
+PHP.Constants.T_CLASS = 361;
+PHP.Constants.T_TRAIT = 362;
+PHP.Constants.T_INTERFACE = 363;
+PHP.Constants.T_EXTENDS = 364;
+PHP.Constants.T_IMPLEMENTS = 365;
+PHP.Constants.T_OBJECT_OPERATOR = 366;
+PHP.Constants.T_LIST = 367;
+PHP.Constants.T_ARRAY = 368;
+PHP.Constants.T_CALLABLE = 369;
+PHP.Constants.T_CLASS_C = 370;
+PHP.Constants.T_TRAIT_C = 371;
+PHP.Constants.T_METHOD_C = 372;
+PHP.Constants.T_FUNC_C = 373;
+PHP.Constants.T_LINE = 374;
+PHP.Constants.T_FILE = 375;
+PHP.Constants.T_COMMENT = 376;
+PHP.Constants.T_DOC_COMMENT = 377;
+PHP.Constants.T_OPEN_TAG = 378;
+PHP.Constants.T_OPEN_TAG_WITH_ECHO = 379;
+PHP.Constants.T_CLOSE_TAG = 380;
+PHP.Constants.T_WHITESPACE = 381;
+PHP.Constants.T_START_HEREDOC = 382;
+PHP.Constants.T_END_HEREDOC = 383;
+PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES = 384;
+PHP.Constants.T_CURLY_OPEN = 385;
+PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM = 386;
+PHP.Constants.T_NAMESPACE = 387;
+PHP.Constants.T_NS_C = 388;
+PHP.Constants.T_DIR = 389;
+PHP.Constants.T_NS_SEPARATOR = 390;
+PHP.Constants.T_ELLIPSIS = 391;
+
+PHP.Lexer = function(src, ini) {
+ var heredoc, heredocEndAllowed,
+
+ stateStack = ['INITIAL'], stackPos = 0,
+ swapState = function(state) {
+ stateStack[stackPos] = state;
+ },
+ pushState = function(state) {
+ stateStack[++stackPos] = state;
+ },
+ popState = function() {
+ --stackPos;
+ },
- return result;
+ shortOpenTag = ini === undefined || /^(on|true|1)$/i.test(ini.short_open_tag),
+ openTag = shortOpenTag
+ ? /^(\<\?php(?:\r\n|[ \t\r\n])|<\?|\<script language\=('|")?php('|")?\>)/i
+ : /^(\<\?php(?:\r\n|[ \t\r\n])|\<script language\=('|")?php('|")?\>)/i,
+ inlineHtml = shortOpenTag
+ ? /[^<]*(?:<(?!\?|script language\=('|")?php('|")?\>)[^<]*)*/i
+ : /[^<]*(?:<(?!\?=|\?php[ \t\r\n]|script language\=('|")?php('|")?\>)[^<]*)*/i;
+ labelRegexPart = '[a-zA-Z_\\x7f-\\uffff][a-zA-Z0-9_\\x7f-\\uffff]*',
+ stringRegexPart = function(quote) {
+ return '[^' + quote + '\\\\${]*(?:(?:\\\\[\\s\\S]|\\$(?!\\{|[a-zA-Z_\\x7f-\\uffff])|\\{(?!\\$))[^' + quote + '\\\\${]*)*';
},
- prev,
- openTag = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag) ) ? /(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i),
- openTagStart = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag)) ? /^(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /^(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i),
- tokens = [
+ sharedStringTokens = [
+ {
+ value: PHP.Constants.T_VARIABLE,
+ re: new RegExp('^\\$' + labelRegexPart + '(?=\\[)'),
+ func: function() {
+ pushState('VAR_OFFSET');
+ }
+ },
+ {
+ value: PHP.Constants.T_VARIABLE,
+ re: new RegExp('^\\$' + labelRegexPart + '(?=->' + labelRegexPart + ')'),
+ func: function() {
+ pushState('LOOKING_FOR_PROPERTY');
+ }
+ },
+ {
+ value: PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES,
+ re: new RegExp('^\\$\\{(?=' + labelRegexPart + '[\\[}])'),
+ func: function() {
+ pushState('LOOKING_FOR_VARNAME');
+ }
+ },
+ {
+ value: PHP.Constants.T_VARIABLE,
+ re: new RegExp('^\\$' + labelRegexPart)
+ },
+ {
+ value: PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES,
+ re: /^\$\{/,
+ func: function() {
+ pushState('IN_SCRIPTING');
+ }
+ },
+ {
+ value: PHP.Constants.T_CURLY_OPEN,
+ re: /^\{(?=\$)/,
+ func: function() {
+ pushState('IN_SCRIPTING');
+ }
+ }
+ ],
+ data = {
+ 'INITIAL': [
{
- value: PHP.Constants.T_NAMESPACE,
- re: /^namespace(?=\s)/i
+ value: PHP.Constants.T_OPEN_TAG_WITH_ECHO,
+ re: /^<\?=/i,
+ func: function() {
+ swapState('IN_SCRIPTING');
+ }
},
{
- value: PHP.Constants.T_USE,
- re: /^use(?=\s)/i
+ value: PHP.Constants.T_OPEN_TAG,
+ re: openTag,
+ func: function() {
+ swapState('IN_SCRIPTING');
+ }
+ },
+ {
+ value: PHP.Constants.T_INLINE_HTML,
+ re: inlineHtml
+ },
+ ],
+ 'IN_SCRIPTING': [
+ {
+ value: PHP.Constants.T_WHITESPACE,
+ re: /^[ \n\r\t]+/
},
{
value: PHP.Constants.T_ABSTRACT,
- re: /^abstract(?=\s)/i
+ re: /^abstract\b/i
},
{
- value: PHP.Constants.T_IMPLEMENTS,
- re: /^implements(?=\s)/i
+ value: PHP.Constants.T_LOGICAL_AND,
+ re: /^and\b/i
},
{
- value: PHP.Constants.T_INTERFACE,
- re: /^interface(?=\s)/i
+ value: PHP.Constants.T_ARRAY,
+ re: /^array\b/i
},
{
- value: PHP.Constants.T_CONST,
- re: /^const(?=\s)/i
+ value: PHP.Constants.T_AS,
+ re: /^as\b/i
},
{
- value: PHP.Constants.T_STATIC,
- re: /^static(?=\s)/i
+ value: PHP.Constants.T_BREAK,
+ re: /^break\b/i
},
{
- value: PHP.Constants.T_FINAL,
- re: /^final(?=\s)/i
+ value: PHP.Constants.T_CALLABLE,
+ re: /^callable\b/i
},
{
- value: PHP.Constants.T_VAR,
- re: /^var(?=\s)/i
+ value: PHP.Constants.T_CASE,
+ re: /^case\b/i
},
{
- value: PHP.Constants.T_GLOBAL,
- re: /^global(?=\s)/i
+ value: PHP.Constants.T_CATCH,
+ re: /^catch\b/i
+ },
+ {
+ value: PHP.Constants.T_CLASS,
+ re: /^class\b/i,
},
{
value: PHP.Constants.T_CLONE,
- re: /^clone(?=\s)/i
+ re: /^clone\b/i
},
{
- value: PHP.Constants.T_THROW,
- re: /^throw(?=\s)/i
+ value: PHP.Constants.T_CONST,
+ re: /^const\b/i
+ },
+ {
+ value: PHP.Constants.T_CONTINUE,
+ re: /^continue\b/i
+ },
+ {
+ value: PHP.Constants.T_DECLARE,
+ re: /^declare\b/i
+ },
+ {
+ value: PHP.Constants.T_DEFAULT,
+ re: /^default\b/i
+ },
+ {
+ value: PHP.Constants.T_DO,
+ re: /^do\b/i
+ },
+ {
+ value: PHP.Constants.T_ECHO,
+ re: /^echo\b/i
+ },
+ {
+ value: PHP.Constants.T_ELSE,
+ re: /^else\b/i
+ },
+ {
+ value: PHP.Constants.T_ELSEIF,
+ re: /^elseif\b/i
+ },
+ {
+ value: PHP.Constants.T_ENDDECLARE,
+ re: /^enddeclare\b/i
+ },
+ {
+ value: PHP.Constants.T_ENDFOR,
+ re: /^endfor\b/i
+ },
+ {
+ value: PHP.Constants.T_ENDFOREACH,
+ re: /^endforeach\b/i
+ },
+ {
+ value: PHP.Constants.T_ENDIF,
+ re: /^endif\b/i
+ },
+ {
+ value: PHP.Constants.T_ENDSWITCH,
+ re: /^endswitch\b/i
+ },
+ {
+ value: PHP.Constants.T_ENDWHILE,
+ re: /^endwhile\b/i
+ },
+ {
+ value: PHP.Constants.T_EMPTY,
+ re: /^empty\b/i
+ },
+ {
+ value: PHP.Constants.T_EVAL,
+ re: /^eval\b/i
+ },
+ {
+ value: PHP.Constants.T_EXIT,
+ re: /^(?:exit|die)\b/i
},
{
value: PHP.Constants.T_EXTENDS,
- re: /^extends(?=\s)/i
+ re: /^extends\b/i
},
{
- value: PHP.Constants.T_AND_EQUAL,
- re: /^&=/
+ value: PHP.Constants.T_FINAL,
+ re: /^final\b/i
},
{
- value: PHP.Constants.T_AS,
- re: /^as(?=\s)/i
+ value: PHP.Constants.T_FINALLY,
+ re: /^finally\b/i
},
{
- value: PHP.Constants.T_ARRAY_CAST,
- re: /^\(array\)/i
+ value: PHP.Constants.T_FOR,
+ re: /^for\b/i
},
{
- value: PHP.Constants.T_BOOL_CAST,
- re: /^\((bool|boolean)\)/i
+ value: PHP.Constants.T_FOREACH,
+ re: /^foreach\b/i
},
{
- value: PHP.Constants.T_DOUBLE_CAST,
- re: /^\((real|float|double)\)/i
+ value: PHP.Constants.T_FUNCTION,
+ re: /^function\b/i
},
{
- value: PHP.Constants.T_INT_CAST,
- re: /^\((int|integer)\)/i
+ value: PHP.Constants.T_GLOBAL,
+ re: /^global\b/i
},
{
- value: PHP.Constants.T_OBJECT_CAST,
- re: /^\(object\)/i
+ value: PHP.Constants.T_GOTO,
+ re: /^goto\b/i
},
{
- value: PHP.Constants.T_STRING_CAST,
- re: /^\(string\)/i
+ value: PHP.Constants.T_IF,
+ re: /^if\b/i
},
{
- value: PHP.Constants.T_UNSET_CAST,
- re: /^\(unset\)/i
+ value: PHP.Constants.T_IMPLEMENTS,
+ re: /^implements\b/i
},
{
- value: PHP.Constants.T_TRY,
- re: /^try(?=\s*{)/i
+ value: PHP.Constants.T_INCLUDE,
+ re: /^include\b/i
},
{
- value: PHP.Constants.T_CATCH,
- re: /^catch(?=\s*\()/i
+ value: PHP.Constants.T_INCLUDE_ONCE,
+ re: /^include_once\b/i
},
{
value: PHP.Constants.T_INSTANCEOF,
- re: /^instanceof(?=\s)/i
+ re: /^instanceof\b/i
+ },
+ {
+ value: PHP.Constants.T_INSTEADOF,
+ re: /^insteadof\b/i
+ },
+ {
+ value: PHP.Constants.T_INTERFACE,
+ re: /^interface\b/i
+ },
+ {
+ value: PHP.Constants.T_ISSET,
+ re: /^isset\b/i
+ },
+ {
+ value: PHP.Constants.T_LIST,
+ re: /^list\b/i
+ },
+ {
+ value: PHP.Constants.T_NAMESPACE,
+ re: /^namespace\b/i
+ },
+ {
+ value: PHP.Constants.T_NEW,
+ re: /^new\b/i
},
{
value: PHP.Constants.T_LOGICAL_OR,
- re: /^or(?=\s)/i
+ re: /^or\b/i
},
{
- value: PHP.Constants.T_LOGICAL_AND,
- re: /^and(?=\s)/i
+ value: PHP.Constants.T_PRINT,
+ re: /^print\b/i
},
{
- value: PHP.Constants.T_LOGICAL_XOR,
- re: /^xor(?=\s)/i
+ value: PHP.Constants.T_PRIVATE,
+ re: /^private\b/i
},
{
- value: PHP.Constants.T_BOOLEAN_AND,
- re: /^&&/
+ value: PHP.Constants.T_PROTECTED,
+ re: /^protected\b/i
},
{
- value: PHP.Constants.T_BOOLEAN_OR,
- re: /^\|\|/
+ value: PHP.Constants.T_PUBLIC,
+ re: /^public\b/i
},
{
- value: PHP.Constants.T_CONTINUE,
- re: /^continue(?=\s|;)/i
+ value: PHP.Constants.T_REQUIRE,
+ re: /^require\b/i
},
{
- value: PHP.Constants.T_BREAK,
- re: /^break(?=\s|;)/i
+ value: PHP.Constants.T_REQUIRE_ONCE,
+ re: /^require_once\b/i
},
{
- value: PHP.Constants.T_ENDDECLARE,
- re: /^enddeclare(?=\s|;)/i
+ value: PHP.Constants.T_STATIC,
+ re: /^static\b/i
},
{
- value: PHP.Constants.T_ENDFOR,
- re: /^endfor(?=\s|;)/i
+ value: PHP.Constants.T_SWITCH,
+ re: /^switch\b/i
},
{
- value: PHP.Constants.T_ENDFOREACH,
- re: /^endforeach(?=\s|;)/i
+ value: PHP.Constants.T_THROW,
+ re: /^throw\b/i
},
{
- value: PHP.Constants.T_ENDIF,
- re: /^endif(?=\s|;)/i
+ value: PHP.Constants.T_TRAIT,
+ re: /^trait\b/i,
},
{
- value: PHP.Constants.T_ENDSWITCH,
- re: /^endswitch(?=\s|;)/i
+ value: PHP.Constants.T_TRY,
+ re: /^try\b/i
},
{
- value: PHP.Constants.T_ENDWHILE,
- re: /^endwhile(?=\s|;)/i
+ value: PHP.Constants.T_UNSET,
+ re: /^unset\b/i
},
{
- value: PHP.Constants.T_CASE,
- re: /^case(?=\s)/i
+ value: PHP.Constants.T_USE,
+ re: /^use\b/i
},
{
- value: PHP.Constants.T_DEFAULT,
- re: /^default(?=\s|:)/i
+ value: PHP.Constants.T_VAR,
+ re: /^var\b/i
},
{
- value: PHP.Constants.T_SWITCH,
- re: /^switch(?=[ (])/i
+ value: PHP.Constants.T_WHILE,
+ re: /^while\b/i
},
{
- value: PHP.Constants.T_EXIT,
- re: /^(exit|die)(?=[ \(;])/i
+ value: PHP.Constants.T_LOGICAL_XOR,
+ re: /^xor\b/i
},
{
- value: PHP.Constants.T_CLOSE_TAG,
- re: /^(\?\>|\%\>|\<\/script\>)\s?\s?/i,
- func: function( result ) {
- insidePHP = false;
- return result;
- }
+ value: PHP.Constants.T_YIELD_FROM,
+ re: /^yield\s+from\b/i
},
{
- value: PHP.Constants.T_DOUBLE_ARROW,
- re: /^\=\>/
+ value: PHP.Constants.T_YIELD,
+ re: /^yield\b/i
},
{
- value: PHP.Constants.T_DOUBLE_COLON,
- re: /^\:\:/
+ value: PHP.Constants.T_RETURN,
+ re: /^return\b/i
},
{
value: PHP.Constants.T_METHOD_C,
- re: /^__METHOD__/
+ re: /^__METHOD__\b/i
},
{
value: PHP.Constants.T_LINE,
- re: /^__LINE__/
+ re: /^__LINE__\b/i
},
{
value: PHP.Constants.T_FILE,
- re: /^__FILE__/
+ re: /^__FILE__\b/i
},
{
value: PHP.Constants.T_FUNC_C,
- re: /^__FUNCTION__/
+ re: /^__FUNCTION__\b/i
},
{
value: PHP.Constants.T_NS_C,
- re: /^__NAMESPACE__/
+ re: /^__NAMESPACE__\b/i
},
{
value: PHP.Constants.T_TRAIT_C,
- re: /^__TRAIT__/
+ re: /^__TRAIT__\b/i
},
{
value: PHP.Constants.T_DIR,
- re: /^__DIR__/
+ re: /^__DIR__\b/i
},
{
value: PHP.Constants.T_CLASS_C,
- re: /^__CLASS__/
+ re: /^__CLASS__\b/i
+ },
+ {
+ value: PHP.Constants.T_AND_EQUAL,
+ re: /^&=/
+ },
+ {
+ value: PHP.Constants.T_ARRAY_CAST,
+ re: /^\([ \t]*array[ \t]*\)/i
+ },
+ {
+ value: PHP.Constants.T_BOOL_CAST,
+ re: /^\([ \t]*(?:bool|boolean)[ \t]*\)/i
+ },
+ {
+ value: PHP.Constants.T_DOUBLE_CAST,
+ re: /^\([ \t]*(?:real|float|double)[ \t]*\)/i
+ },
+ {
+ value: PHP.Constants.T_INT_CAST,
+ re: /^\([ \t]*(?:int|integer)[ \t]*\)/i
+ },
+ {
+ value: PHP.Constants.T_OBJECT_CAST,
+ re: /^\([ \t]*object[ \t]*\)/i
+ },
+ {
+ value: PHP.Constants.T_STRING_CAST,
+ re: /^\([ \t]*(?:binary|string)[ \t]*\)/i
+ },
+ {
+ value: PHP.Constants.T_UNSET_CAST,
+ re: /^\([ \t]*unset[ \t]*\)/i
+ },
+ {
+ value: PHP.Constants.T_BOOLEAN_AND,
+ re: /^&&/
+ },
+ {
+ value: PHP.Constants.T_BOOLEAN_OR,
+ re: /^\|\|/
+ },
+ {
+ value: PHP.Constants.T_CLOSE_TAG,
+ re: /^(?:\?>|<\/script>)(\r\n|\r|\n)?/i,
+ func: function() {
+ swapState('INITIAL');
+ }
+ },
+ {
+ value: PHP.Constants.T_DOUBLE_ARROW,
+ re: /^=>/
+ },
+ {
+ value: PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM,
+ re: /^::/
},
{
value: PHP.Constants.T_INC,
@@ -1779,27 +1996,27 @@ PHP.Lexer = function( src, ini ) {
},
{
value: PHP.Constants.T_DEC,
- re: /^\-\-/
+ re: /^--/
},
{
value: PHP.Constants.T_CONCAT_EQUAL,
- re: /^\.\=/
+ re: /^\.=/
},
{
value: PHP.Constants.T_DIV_EQUAL,
- re: /^\/\=/
+ re: /^\/=/
},
{
value: PHP.Constants.T_XOR_EQUAL,
- re: /^\^\=/
+ re: /^\^=/
},
{
value: PHP.Constants.T_MUL_EQUAL,
- re: /^\*\=/
+ re: /^\*=/
},
{
value: PHP.Constants.T_MOD_EQUAL,
- re: /^\%\=/
+ re: /^%=/
},
{
value: PHP.Constants.T_SL_EQUAL,
@@ -1807,10 +2024,19 @@ PHP.Lexer = function( src, ini ) {
},
{
value: PHP.Constants.T_START_HEREDOC,
- re: /^<<<[A-Z_0-9]+\s/i,
- func: function( result ){
- heredoc = result.substring(3, result.length - 1);
- return result;
+ re: new RegExp('^[bB]?<<<[ \\t]*\'(' + labelRegexPart + ')\'(?:\\r\\n|\\r|\\n)'),
+ func: function(result) {
+ heredoc = result[1];
+ swapState('NOWDOC');
+ }
+ },
+ {
+ value: PHP.Constants.T_START_HEREDOC,
+ re: new RegExp('^[bB]?<<<[ \\t]*("?)(' + labelRegexPart + ')\\1(?:\\r\\n|\\r|\\n)'),
+ func: function(result) {
+ heredoc = result[2];
+ heredocEndAllowed = true;
+ swapState('HEREDOC');
}
},
{
@@ -1818,6 +2044,10 @@ PHP.Lexer = function( src, ini ) {
re: /^<</
},
{
+ value: PHP.Constants.T_SPACESHIP,
+ re: /^<=>/
+ },
+ {
value: PHP.Constants.T_IS_SMALLER_OR_EQUAL,
re: /^<=/
},
@@ -1835,491 +2065,330 @@ PHP.Lexer = function( src, ini ) {
},
{
value: PHP.Constants.T_OR_EQUAL,
- re: /^\|\=/
+ re: /^\|=/
},
{
value: PHP.Constants.T_PLUS_EQUAL,
- re: /^\+\=/
+ re: /^\+=/
},
{
value: PHP.Constants.T_MINUS_EQUAL,
- re: /^-\=/
+ re: /^-=/
},
{
value: PHP.Constants.T_OBJECT_OPERATOR,
- re: /^\-\>/i
- },
- {
- value: PHP.Constants.T_CLASS,
- re: /^class(?=[\s\{])/i,
- afterWhitespace: true
- },
- {
- value: PHP.Constants.T_TRAIT,
- re: /^trait(?=[\s]+[A-Za-z])/i,
+ re: new RegExp('^->(?=[ \n\r\t]*' + labelRegexPart + ')'),
+ func: function() {
+ pushState('LOOKING_FOR_PROPERTY');
+ }
},
{
- value: PHP.Constants.T_PUBLIC,
- re: /^public(?=[\s])/i
+ value: PHP.Constants.T_OBJECT_OPERATOR,
+ re: /^->/i
},
{
- value: PHP.Constants.T_PRIVATE,
- re: /^private(?=[\s])/i
+ value: PHP.Constants.T_ELLIPSIS,
+ re: /^\.\.\./
},
{
- value: PHP.Constants.T_PROTECTED,
- re: /^protected(?=[\s])/i
+ value: PHP.Constants.T_POW_EQUAL,
+ re: /^\*\*=/
},
{
- value: PHP.Constants.T_ARRAY,
- re: /^array(?=\s*?\()/i
+ value: PHP.Constants.T_POW,
+ re: /^\*\*/
},
{
- value: PHP.Constants.T_EMPTY,
- re: /^empty(?=[ \(])/i
+ value: PHP.Constants.T_COALESCE,
+ re: /^\?\?/
},
{
- value: PHP.Constants.T_ISSET,
- re: /^isset(?=[ \(])/i
+ value: PHP.Constants.T_COMMENT,
+ re: /^\/\*([\S\s]*?)(?:\*\/|$)/
},
{
- value: PHP.Constants.T_UNSET,
- re: /^unset(?=[ \(])/i
+ value: PHP.Constants.T_COMMENT,
+ re: /^(?:\/\/|#)[^\r\n?]*(?:\?(?!>)[^\r\n?]*)*(?:\r\n|\r|\n)?/
},
{
- value: PHP.Constants.T_RETURN,
- re: /^return(?=[ "'(;])/i
+ value: PHP.Constants.T_IS_IDENTICAL,
+ re: /^===/
},
{
- value: PHP.Constants.T_FUNCTION,
- re: /^function(?=[ "'(;])/i
+ value: PHP.Constants.T_IS_EQUAL,
+ re: /^==/
},
{
- value: PHP.Constants.T_ECHO,
- re: /^echo(?=[ "'(;])/i
+ value: PHP.Constants.T_IS_NOT_IDENTICAL,
+ re: /^!==/
},
{
- value: PHP.Constants.T_LIST,
- re: /^list(?=\s*?\()/i
+ value: PHP.Constants.T_IS_NOT_EQUAL,
+ re: /^(!=|<>)/
},
{
- value: PHP.Constants.T_PRINT,
- re: /^print(?=[ "'(;])/i
+ value: PHP.Constants.T_DNUMBER,
+ re: /^(?:[0-9]+\.[0-9]*|\.[0-9]+)(?:[eE][+-]?[0-9]+)?/
},
{
- value: PHP.Constants.T_INCLUDE,
- re: /^include(?=[ "'(;])/i
+ value: PHP.Constants.T_DNUMBER,
+ re: /^[0-9]+[eE][+-]?[0-9]+/
},
{
- value: PHP.Constants.T_INCLUDE_ONCE,
- re: /^include_once(?=[ "'(;])/i
+ value: PHP.Constants.T_LNUMBER,
+ re: /^(?:0x[0-9A-F]+|0b[01]+|[0-9]+)/i
},
{
- value: PHP.Constants.T_REQUIRE,
- re: /^require(?=[ "'(;])/i
+ value: PHP.Constants.T_VARIABLE,
+ re: new RegExp('^\\$' + labelRegexPart)
},
{
- value: PHP.Constants.T_REQUIRE_ONCE,
- re: /^require_once(?=[ "'(;])/i
+ value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING,
+ re: /^[bB]?'[^'\\]*(?:\\[\s\S][^'\\]*)*'/,
},
{
- value: PHP.Constants.T_NEW,
- re: /^new(?=[ ])/i
+ value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING,
+ re: new RegExp('^[bB]?"' + stringRegexPart('"') + '"')
},
{
- value: PHP.Constants.T_COMMENT,
- re: /^\/\*([\S\s]*?)(?:\*\/|$)/
+ value: -1,
+ re: /^[bB]?"/,
+ func: function() {
+ swapState('DOUBLE_QUOTES');
+ }
},
{
- value: PHP.Constants.T_COMMENT,
- re: /^\/\/.*(\s)?/
+ value: -1,
+ re: /^`/,
+ func: function() {
+ swapState('BACKTICKS');
+ }
},
{
- value: PHP.Constants.T_COMMENT,
- re: /^\#.*(\s)?/
+ value: PHP.Constants.T_NS_SEPARATOR,
+ re: /^\\/
},
{
- value: PHP.Constants.T_ELSEIF,
- re: /^elseif(?=[\s(])/i
+ value: PHP.Constants.T_STRING,
+ re: /^[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/
},
{
- value: PHP.Constants.T_GOTO,
- re: /^goto(?=[\s(])/i
+ value: -1,
+ re: /^\{/,
+ func: function() {
+ pushState('IN_SCRIPTING');
+ }
},
{
- value: PHP.Constants.T_ELSE,
- re: /^else(?=[\s{:])/i
+ value: -1,
+ re: /^\}/,
+ func: function() {
+ if (stackPos > 0) {
+ popState();
+ }
+ }
},
{
- value: PHP.Constants.T_IF,
- re: /^if(?=[\s(])/i
- },
+ value: -1,
+ re: /^[\[\];:?()!.,><=+-/*|&@^%"'$~]/
+ }
+ ],
+ 'DOUBLE_QUOTES': sharedStringTokens.concat([
{
- value: PHP.Constants.T_DO,
- re: /^do(?=[ {])/i
+ value: -1,
+ re: /^"/,
+ func: function() {
+ swapState('IN_SCRIPTING');
+ }
},
{
- value: PHP.Constants.T_WHILE,
- re: /^while(?=[ (])/i
- },
+ value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,
+ re: new RegExp('^' + stringRegexPart('"'))
+ }
+ ]),
+ 'BACKTICKS': sharedStringTokens.concat([
{
- value: PHP.Constants.T_FOREACH,
- re: /^foreach(?=[ (])/i
+ value: -1,
+ re: /^`/,
+ func: function() {
+ swapState('IN_SCRIPTING');
+ }
},
{
- value: PHP.Constants.T_ISSET,
- re: /^isset(?=[ (])/i
- },
+ value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,
+ re: new RegExp('^' + stringRegexPart('`'))
+ }
+ ]),
+ 'VAR_OFFSET': [
{
- value: PHP.Constants.T_IS_IDENTICAL,
- re: /^===/
+ value: -1,
+ re: /^\]/,
+ func: function() {
+ popState();
+ }
},
{
- value: PHP.Constants.T_IS_EQUAL,
- re: /^==/
+ value: PHP.Constants.T_NUM_STRING,
+ re: /^(?:0x[0-9A-F]+|0b[01]+|[0-9]+)/i
},
{
- value: PHP.Constants.T_IS_NOT_IDENTICAL,
- re: /^\!==/
+ value: PHP.Constants.T_VARIABLE,
+ re: new RegExp('^\\$' + labelRegexPart)
},
{
- value: PHP.Constants.T_IS_NOT_EQUAL,
- re: /^(\!=|\<\>)/
+ value: PHP.Constants.T_STRING,
+ re: new RegExp('^' + labelRegexPart)
},
{
- value: PHP.Constants.T_FOR,
- re: /^for(?=[ (])/i
- },
-
+ value: -1,
+ re: /^[;:,.\[()|^&+-/*=%!~$<>?@{}"`]/
+ }
+ ],
+ 'LOOKING_FOR_PROPERTY': [
{
- value: PHP.Constants.T_DNUMBER,
- re: /^[0-9]*\.[0-9]+([eE][-]?[0-9]*)?/
-
+ value: PHP.Constants.T_OBJECT_OPERATOR,
+ re: /^->/
},
{
- value: PHP.Constants.T_LNUMBER,
- re: /^(0x[0-9A-F]+|[0-9]+)/i
+ value: PHP.Constants.T_STRING,
+ re: new RegExp('^' + labelRegexPart),
+ func: function() {
+ popState();
+ }
},
{
- value: PHP.Constants.T_OPEN_TAG_WITH_ECHO,
- re: /^(\<\?=|\<\%=)/i
- },
+ value: PHP.Constants.T_WHITESPACE,
+ re: /^[ \n\r\t]+/
+ }
+ ],
+ 'LOOKING_FOR_VARNAME': [
{
- value: PHP.Constants.T_OPEN_TAG,
- re: openTagStart
- },
+ value: PHP.Constants.T_STRING_VARNAME,
+ re: new RegExp('^' + labelRegexPart + '(?=[\\[}])'),
+ func: function() {
+ swapState('IN_SCRIPTING');
+ }
+ }
+ ],
+ 'NOWDOC': [
{
- value: PHP.Constants.T_VARIABLE,
- re: /^\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/
+ value: PHP.Constants.T_END_HEREDOC,
+ matchFunc: function(src) {
+ var re = new RegExp('^' + heredoc + '(?=;?[\\r\\n])');
+ if (src.match(re)) {
+ return [src.substr(0, heredoc.length)];
+ } else {
+ return null;
+ }
+ },
+ func: function() {
+ swapState('IN_SCRIPTING');
+ }
},
{
- value: PHP.Constants.T_WHITESPACE,
- re: /^\s+/
- },
+ value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,
+ matchFunc: function(src) {
+ var re = new RegExp('[\\r\\n]' + heredoc + '(?=;?[\\r\\n])');
+ var result = re.exec(src);
+ var end = result ? result.index + 1 : src.length;
+ return [src.substring(0, end)];
+ }
+ }
+ ],
+ 'HEREDOC': sharedStringTokens.concat([
{
- value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING,
- re: /^("(?:[^"\\]|\\[\s\S])*"|'(?:[^'\\]|\\[\s\S])*')/,
- func: function( result, token ) {
-
- var curlyOpen = 0,
- len,
- bracketOpen = 0;
-
- if (result.substring( 0,1 ) === "'") {
- return result;
+ value: PHP.Constants.T_END_HEREDOC,
+ matchFunc: function(src) {
+ if (!heredocEndAllowed) {
+ return null;
}
-
- var match = result.match( /(?:[^\\]|\\.)*[^\\]\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/g );
- if ( match !== null ) {
-
- while( result.length > 0 ) {
- len = result.length;
- match = result.match( /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\@\^\%\"\'\{\}]/ );
-
- if ( match !== null ) {
-
- results.push( match[ 0 ] );
- result = result.substring( 1 );
-
- if ( curlyOpen > 0 && match[ 0 ] === "}") {
- curlyOpen--;
- }
-
- if ( match[ 0 ] === "[" ) {
- bracketOpen++;
- }
-
- if ( match[ 0 ] === "]" ) {
- bracketOpen--;
- }
-
- }
-
- match = result.match(/^\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/);
-
-
-
- if ( match !== null ) {
-
- results.push([
- parseInt(PHP.Constants.T_VARIABLE, 10),
- match[ 0 ],
- line
- ]);
-
- result = result.substring( match[ 0 ].length );
-
- match = result.match(/^(\-\>)\s*([a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*)\s*(\()/);
-
- if ( match !== null ) {
-
- results.push([
- parseInt(PHP.Constants.T_OBJECT_OPERATOR, 10),
- match[ 1 ],
- line
- ]);
- results.push([
- parseInt(PHP.Constants.T_STRING, 10),
- match[ 2 ],
- line
- ]);
- if (match[3]) {
- results.push(match[3]);
- }
- result = result.substring( match[ 0 ].length );
- }
-
-
- if ( result.match( /^\[/g ) !== null ) {
- continue;
- }
- }
-
- var re;
- if ( curlyOpen > 0) {
- re = /^([^\\\$"{}\]\(\)\->]|\\.)+/g;
- } else {
- re = /^([^\\\$"{]|\\.|{[^\$]|\$(?=[^a-zA-Z_\x7f-\uffff]))+/g;;
- }
-
- var type, match2;
- while(( match = result.match( re )) !== null ) {
- if (result.length === 1) {
- throw new Error(match);
- }
-
- type = 0;
-
- if( curlyOpen > 0 ){
- if( match2 = match[0].match(/^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\{\}\@\^\%\$\~]/) ){
- results.push(match2[0]);
- }else{
- type = PHP.Constants.T_STRING;
- }
- }else{
- type = PHP.Constants.T_ENCAPSED_AND_WHITESPACE;
- }
-
- if( type ){
- results.push([
- parseInt(type, 10),
- match[ 0 ].replace(/\n/g,"\\n").replace(/\r/g,""),
- line
- ]);
- }
-
- line += match[ 0 ].split('\n').length - 1;
-
- result = result.substring( match[ 0 ].length );
- }
-
- if( curlyOpen > 0 && result.match(/^\->/) !== null ) {
- results.push([
- parseInt(PHP.Constants.T_OBJECT_OPERATOR, 10),
- '->',
- line
- ]);
- result = result.substring( 2 );
- }
-
- if( result.match(/^{\$/) !== null ) {
- results.push([
- parseInt(PHP.Constants.T_CURLY_OPEN, 10),
- "{",
- line
- ]);
- result = result.substring( 1 );
- curlyOpen++;
- }
-
- if (len === result.length) {
- if ((match = result.match( /^(([^\\]|\\.)*?[^\\]\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*)/g )) !== null) {
- return;
- }
- }
-
- }
-
- return undefined;
-
+ var re = new RegExp('^' + heredoc + '(?=;?[\\r\\n])');
+ if (src.match(re)) {
+ return [src.substr(0, heredoc.length)];
} else {
- result = result.replace(/\r/g,"");
+ return null;
}
- return result;
+ },
+ func: function() {
+ swapState('IN_SCRIPTING');
}
},
{
- value: PHP.Constants.T_NS_SEPARATOR,
- re: /^\\(?=[a-zA-Z_])/
- },
- {
- value: PHP.Constants.T_STRING,
- re: /^[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/
- },
- {
- value: -1,
- re: /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\{\}\@\^\%\"\'\$\~]/
- }];
-
-
-
-
-
- var results = [],
- line = 1,
- insidePHP = false,
- cancel = true;
-
- if ( src === null ) {
- return results;
- }
-
- if ( typeof src !== "string" ) {
- src = src.toString();
- }
-
-
-
- while (src.length > 0 && cancel === true) {
-
- if ( insidePHP === true ) {
-
- if ( heredoc !== undefined ) {
-
- var regexp = new RegExp('([\\S\\s]*?)(\\r\\n|\\n|\\r)(' + heredoc + ')(;|\\r\\n|\\n)',"i");
-
-
-
- var result = src.match( regexp );
- if ( result !== null ) {
-
- results.push([
- parseInt(PHP.Constants.T_ENCAPSED_AND_WHITESPACE, 10),
- result[ 1 ].replace(/^\n/g,"").replace(/\\\$/g,"$") + "\n",
- line
- ]);
- line += result[ 1 ].split('\n').length;
- results.push([
- parseInt(PHP.Constants.T_END_HEREDOC, 10),
- result[ 3 ],
- line
- ]);
-
- src = src.substring( result[1].length + result[2].length + result[3].length );
- heredoc = undefined;
- }
-
- if (result === null) {
- throw Error("sup");
- }
-
-
- } else {
- cancel = tokens.some(function( token ){
- if ( token.afterWhitespace === true ) {
- var last = results[ results.length - 1 ];
- if ( !Array.isArray( last ) || (last[ 0 ] !== PHP.Constants.T_WHITESPACE && last[ 0 ] !== PHP.Constants.T_OPEN_TAG && last[ 0 ] !== PHP.Constants.T_COMMENT)) {
- return false;
- }
- }
- var result = src.match( token.re );
-
- if ( result !== null ) {
- if ( token.value !== -1) {
- var resultString = result[ 0 ];
-
-
-
- if (token.func !== undefined ) {
- resultString = token.func( resultString, token );
- }
- if (resultString !== undefined ) {
-
- results.push([
- parseInt(token.value, 10),
- resultString,
- line
- ]);
- line += resultString.split('\n').length - 1;
- }
-
- } else {
- results.push( result[ 0 ] );
- }
-
- src = src.substring(result[ 0 ].length);
-
- return true;
- }
- return false;
-
-
- });
+ value: PHP.Constants.T_ENCAPSED_AND_WHITESPACE,
+ matchFunc: function(src) {
+ var end = src.length;
+ var re = new RegExp('^' + stringRegexPart(''));
+ var result = re.exec(src);
+ if (result) {
+ end = result[0].length;
}
-
- } else {
-
- var result = openTag.exec( src );
-
-
- if ( result !== null ) {
- if ( result.index > 0 ) {
- var resultString = src.substring(0, result.index);
- results.push ([
- parseInt(PHP.Constants.T_INLINE_HTML, 10),
- resultString,
- line
- ]);
-
- line += resultString.split('\n').length - 1;
-
- src = src.substring( result.index );
- }
-
- insidePHP = true;
+ re = new RegExp('([\\r\\n])' + heredoc + '(?=;?[\\r\\n])');
+ result = re.exec(src.substring(0, end));
+ if (result) {
+ end = result.index + 1;
+ heredocEndAllowed = true;
} else {
-
- results.push ([
- parseInt(PHP.Constants.T_INLINE_HTML, 10),
- src.replace(/^\n/, ""),
- line
- ]);
- return results;
+ heredocEndAllowed = false;
}
-
+ if (end == 0) {
+ return null;
+ }
+ return [src.substring(0, end)];
}
+ }
+ ])
+ };
+ var results = [],
+ line = 1,
+ cancel = true;
+ if (src === null) {
+ return results;
+ }
- }
+ if (typeof src !== "string") {
+ src = src.toString();
+ }
+ while (src.length > 0 && cancel === true) {
+ var state = stateStack[stackPos];
+ var tokens = data[state];
+ cancel = tokens.some(function(token){
+ var result = token.matchFunc !== undefined
+ ? token.matchFunc(src)
+ : src.match(token.re);
+ if (result !== null) {
+ if (result[0].length == 0) {
+ throw new Error("empty match");
+ }
+ if (token.func !== undefined) {
+ token.func(result);
+ }
- return results;
+ if (token.value === -1) {
+ results.push(result[0]);
+ } else {
+ var resultString = result[0];
+ results.push([
+ parseInt(token.value, 10),
+ resultString,
+ line
+ ]);
+ line += resultString.split('\n').length - 1;
+ }
+ src = src.substring(result[0].length);
+ return true;
+ }
+ return false;
+ });
+ }
- };
+ return results;
+};
PHP.Parser = function ( preprocessedTokens, eval ) {
@@ -2428,11 +2497,6 @@ PHP.Parser = function ( preprocessedTokens, eval ) {
for (var attr in this.endAttributes) {
attributeStack[ this.stackPos - yylen[ yyn ] ][ attr ] = this.endAttributes[ attr ];
}
- try {
- this['yyn' + yyn](attributeStack[ this.stackPos - yylen[ yyn ] ]);
- } catch (e) {
- throw e;
- }
this.stackPos -= yylen[ yyn ];
yyn = yylhs[ yyn ];
if ((yyp = yygbase[ yyn ] + stateStack[ this.stackPos ]) >= 0
@@ -2493,13 +2557,6 @@ PHP.ParseError = function( msg, line ) {
this.line = line;
};
-PHP.Parser.prototype.MODIFIER_PUBLIC = 1;
-PHP.Parser.prototype.MODIFIER_PROTECTED = 2;
-PHP.Parser.prototype.MODIFIER_PRIVATE = 4;
-PHP.Parser.prototype.MODIFIER_STATIC = 8;
-PHP.Parser.prototype.MODIFIER_ABSTRACT = 16;
-PHP.Parser.prototype.MODIFIER_FINAL = 32;
-
PHP.Parser.prototype.getNextToken = function( ) {
this.startAttributes = {};
@@ -2556,7 +2613,7 @@ PHP.Parser.prototype.getNextToken = function( ) {
};
PHP.Parser.prototype.tokenName = function( token ) {
- var constants = ["T_INCLUDE","T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","T_LOGICAL_OR","T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","T_PLUS_EQUAL","T_MINUS_EQUAL","T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL","T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","T_BOOLEAN_OR","T_BOOLEAN_AND","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL","T_IS_SMALLER_OR_EQUAL","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","T_INSTANCEOF","T_INC","T_DEC","T_INT_CAST","T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST","T_UNSET_CAST","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE","T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE","T_NUM_STRING","T_INLINE_HTML","T_CHARACTER","T_BAD_CHARACTER","T_ENCAPSED_AND_WHITESPACE","T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR","T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH","T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_GOTO","T_FUNCTION","T_CONST","T_RETURN","T_TRY","T_CATCH","T_THROW","T_USE","T_INSTEADOF","T_GLOBAL","T_STATIC","T_ABSTRACT","T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY","T_HALT_COMPILER","T_CLASS","T_TRAIT","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR","T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CALLABLE","T_CLASS_C","T_TRAIT_C","T_METHOD_C","T_FUNC_C","T_LINE","T_FILE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","T_CLOSE_TAG","T_WHITESPACE","T_START_HEREDOC","T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM","T_DOUBLE_COLON","T_NAMESPACE","T_NS_C","T_DIR","T_NS_SEPARATOR"];
+ var constants = ["T_INCLUDE","T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","T_LOGICAL_OR","T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","T_YIELD","T_DOUBLE_ARROW","T_YIELD_FROM","T_PLUS_EQUAL","T_MINUS_EQUAL","T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL","T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","T_POW_EQUAL","T_COALESCE","T_BOOLEAN_OR","T_BOOLEAN_AND","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL","T_SPACESHIP","T_IS_SMALLER_OR_EQUAL","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","T_INSTANCEOF","T_INC","T_DEC","T_INT_CAST","T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST","T_UNSET_CAST","T_POW","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE","T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE","T_NUM_STRING","T_INLINE_HTML","T_CHARACTER","T_BAD_CHARACTER","T_ENCAPSED_AND_WHITESPACE","T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR","T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH","T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_GOTO","T_FUNCTION","T_CONST","T_RETURN","T_TRY","T_CATCH","T_FINALLY","T_THROW","T_USE","T_INSTEADOF","T_GLOBAL","T_STATIC","T_ABSTRACT","T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY","T_HALT_COMPILER","T_CLASS","T_TRAIT","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR","T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CALLABLE","T_CLASS_C","T_TRAIT_C","T_METHOD_C","T_FUNC_C","T_LINE","T_FILE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","T_CLOSE_TAG","T_WHITESPACE","T_START_HEREDOC","T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM","T_NAMESPACE","T_NS_C","T_DIR","T_NS_SEPARATOR","T_ELLIPSIS"];
var current = "UNKNOWN";
constants.some(function( constant ) {
if (PHP.Constants[ constant ] === token) {
@@ -2574,11 +2631,8 @@ PHP.Parser.prototype.createTokenMap = function() {
var tokenMap = {},
name,
i;
- var T_DOUBLE_COLON = PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM;
for ( i = 256; i < 1000; ++i ) {
- if ( T_DOUBLE_COLON === i ) {
- tokenMap[ i ] = this.T_PAAMAYIM_NEKUDOTAYIM;
- } else if( PHP.Constants.T_OPEN_TAG_WITH_ECHO === i ) {
+ if( PHP.Constants.T_OPEN_TAG_WITH_ECHO === i ) {
tokenMap[ i ] = PHP.Constants.T_ECHO;
} else if( PHP.Constants.T_CLOSE_TAG === i ) {
tokenMap[ i ] = 59;
@@ -2589,79 +2643,15 @@ PHP.Parser.prototype.createTokenMap = function() {
return tokenMap;
};
-var yynStandard = function () {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.MakeArray = function( arr ) {
- return Array.isArray( arr ) ? arr : [ arr ];
-}
-
-
-PHP.Parser.prototype.parseString = function( str ) {
- var bLength = 0;
- if ('b' === str[0]) {
- bLength = 1;
- }
-
- if ('\'' === str[ bLength ]) {
- str = str.replace(
- ['\\\\', '\\\''],
- [ '\\', '\'']);
- } else {
-
- str = this.parseEscapeSequences( str, '"');
-
- }
-
- return str;
-
-};
-
-PHP.Parser.prototype.parseEscapeSequences = function( str, quote ) {
-
-
-
- if (undefined !== quote) {
- str = str.replace(new RegExp('\\' + quote, "g"), quote);
- }
-
- var replacements = {
- '\\': '\\',
- '$': '$',
- 'n': "\n",
- 'r': "\r",
- 't': "\t",
- 'f': "\f",
- 'v': "\v",
- 'e': "\x1B"
- };
-
- return str.replace(
- /~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3})~/g,
- function ( matches ){
- var str = matches[1];
-
- if ( replacements[ str ] !== undefined ) {
- return replacements[ str ];
- } else if ('x' === str[ 0 ] || 'X' === str[ 0 ]) {
- return chr(hexdec(str));
- } else {
- return chr(octdec(str));
- }
- }
- );
-};
-
PHP.Parser.prototype.TOKEN_NONE = -1;
-PHP.Parser.prototype.TOKEN_INVALID = 149;
+PHP.Parser.prototype.TOKEN_INVALID = 157;
-PHP.Parser.prototype.TOKEN_MAP_SIZE = 384;
+PHP.Parser.prototype.TOKEN_MAP_SIZE = 392;
-PHP.Parser.prototype.YYLAST = 913;
-PHP.Parser.prototype.YY2TBLSTATE = 328;
-PHP.Parser.prototype.YYGLAST = 415;
-PHP.Parser.prototype.YYNLSTATES = 544;
+PHP.Parser.prototype.YYLAST = 889;
+PHP.Parser.prototype.YY2TBLSTATE = 337;
+PHP.Parser.prototype.YYGLAST = 410;
+PHP.Parser.prototype.YYNLSTATES = 564;
PHP.Parser.prototype.YYUNEXPECTED = 32767;
PHP.Parser.prototype.YYDEFAULT = -32766;
PHP.Parser.prototype.YYERRTOK = 256;
@@ -2674,124 +2664,132 @@ PHP.Parser.prototype.T_LOGICAL_OR = 262;
PHP.Parser.prototype.T_LOGICAL_XOR = 263;
PHP.Parser.prototype.T_LOGICAL_AND = 264;
PHP.Parser.prototype.T_PRINT = 265;
-PHP.Parser.prototype.T_PLUS_EQUAL = 266;
-PHP.Parser.prototype.T_MINUS_EQUAL = 267;
-PHP.Parser.prototype.T_MUL_EQUAL = 268;
-PHP.Parser.prototype.T_DIV_EQUAL = 269;
-PHP.Parser.prototype.T_CONCAT_EQUAL = 270;
-PHP.Parser.prototype.T_MOD_EQUAL = 271;
-PHP.Parser.prototype.T_AND_EQUAL = 272;
-PHP.Parser.prototype.T_OR_EQUAL = 273;
-PHP.Parser.prototype.T_XOR_EQUAL = 274;
-PHP.Parser.prototype.T_SL_EQUAL = 275;
-PHP.Parser.prototype.T_SR_EQUAL = 276;
-PHP.Parser.prototype.T_BOOLEAN_OR = 277;
-PHP.Parser.prototype.T_BOOLEAN_AND = 278;
-PHP.Parser.prototype.T_IS_EQUAL = 279;
-PHP.Parser.prototype.T_IS_NOT_EQUAL = 280;
-PHP.Parser.prototype.T_IS_IDENTICAL = 281;
-PHP.Parser.prototype.T_IS_NOT_IDENTICAL = 282;
-PHP.Parser.prototype.T_IS_SMALLER_OR_EQUAL = 283;
-PHP.Parser.prototype.T_IS_GREATER_OR_EQUAL = 284;
-PHP.Parser.prototype.T_SL = 285;
-PHP.Parser.prototype.T_SR = 286;
-PHP.Parser.prototype.T_INSTANCEOF = 287;
-PHP.Parser.prototype.T_INC = 288;
-PHP.Parser.prototype.T_DEC = 289;
-PHP.Parser.prototype.T_INT_CAST = 290;
-PHP.Parser.prototype.T_DOUBLE_CAST = 291;
-PHP.Parser.prototype.T_STRING_CAST = 292;
-PHP.Parser.prototype.T_ARRAY_CAST = 293;
-PHP.Parser.prototype.T_OBJECT_CAST = 294;
-PHP.Parser.prototype.T_BOOL_CAST = 295;
-PHP.Parser.prototype.T_UNSET_CAST = 296;
-PHP.Parser.prototype.T_NEW = 297;
-PHP.Parser.prototype.T_CLONE = 298;
-PHP.Parser.prototype.T_EXIT = 299;
-PHP.Parser.prototype.T_IF = 300;
-PHP.Parser.prototype.T_ELSEIF = 301;
-PHP.Parser.prototype.T_ELSE = 302;
-PHP.Parser.prototype.T_ENDIF = 303;
-PHP.Parser.prototype.T_LNUMBER = 304;
-PHP.Parser.prototype.T_DNUMBER = 305;
-PHP.Parser.prototype.T_STRING = 306;
-PHP.Parser.prototype.T_STRING_VARNAME = 307;
-PHP.Parser.prototype.T_VARIABLE = 308;
-PHP.Parser.prototype.T_NUM_STRING = 309;
-PHP.Parser.prototype.T_INLINE_HTML = 310;
-PHP.Parser.prototype.T_CHARACTER = 311;
-PHP.Parser.prototype.T_BAD_CHARACTER = 312;
-PHP.Parser.prototype.T_ENCAPSED_AND_WHITESPACE = 313;
-PHP.Parser.prototype.T_CONSTANT_ENCAPSED_STRING = 314;
-PHP.Parser.prototype.T_ECHO = 315;
-PHP.Parser.prototype.T_DO = 316;
-PHP.Parser.prototype.T_WHILE = 317;
-PHP.Parser.prototype.T_ENDWHILE = 318;
-PHP.Parser.prototype.T_FOR = 319;
-PHP.Parser.prototype.T_ENDFOR = 320;
-PHP.Parser.prototype.T_FOREACH = 321;
-PHP.Parser.prototype.T_ENDFOREACH = 322;
-PHP.Parser.prototype.T_DECLARE = 323;
-PHP.Parser.prototype.T_ENDDECLARE = 324;
-PHP.Parser.prototype.T_AS = 325;
-PHP.Parser.prototype.T_SWITCH = 326;
-PHP.Parser.prototype.T_ENDSWITCH = 327;
-PHP.Parser.prototype.T_CASE = 328;
-PHP.Parser.prototype.T_DEFAULT = 329;
-PHP.Parser.prototype.T_BREAK = 330;
-PHP.Parser.prototype.T_CONTINUE = 331;
-PHP.Parser.prototype.T_GOTO = 332;
-PHP.Parser.prototype.T_FUNCTION = 333;
-PHP.Parser.prototype.T_CONST = 334;
-PHP.Parser.prototype.T_RETURN = 335;
-PHP.Parser.prototype.T_TRY = 336;
-PHP.Parser.prototype.T_CATCH = 337;
-PHP.Parser.prototype.T_THROW = 338;
-PHP.Parser.prototype.T_USE = 339;
-PHP.Parser.prototype.T_INSTEADOF = 340;
-PHP.Parser.prototype.T_GLOBAL = 341;
-PHP.Parser.prototype.T_STATIC = 342;
-PHP.Parser.prototype.T_ABSTRACT = 343;
-PHP.Parser.prototype.T_FINAL = 344;
-PHP.Parser.prototype.T_PRIVATE = 345;
-PHP.Parser.prototype.T_PROTECTED = 346;
-PHP.Parser.prototype.T_PUBLIC = 347;
-PHP.Parser.prototype.T_VAR = 348;
-PHP.Parser.prototype.T_UNSET = 349;
-PHP.Parser.prototype.T_ISSET = 350;
-PHP.Parser.prototype.T_EMPTY = 351;
-PHP.Parser.prototype.T_HALT_COMPILER = 352;
-PHP.Parser.prototype.T_CLASS = 353;
-PHP.Parser.prototype.T_TRAIT = 354;
-PHP.Parser.prototype.T_INTERFACE = 355;
-PHP.Parser.prototype.T_EXTENDS = 356;
-PHP.Parser.prototype.T_IMPLEMENTS = 357;
-PHP.Parser.prototype.T_OBJECT_OPERATOR = 358;
-PHP.Parser.prototype.T_DOUBLE_ARROW = 359;
-PHP.Parser.prototype.T_LIST = 360;
-PHP.Parser.prototype.T_ARRAY = 361;
-PHP.Parser.prototype.T_CALLABLE = 362;
-PHP.Parser.prototype.T_CLASS_C = 363;
-PHP.Parser.prototype.T_TRAIT_C = 364;
-PHP.Parser.prototype.T_METHOD_C = 365;
-PHP.Parser.prototype.T_FUNC_C = 366;
-PHP.Parser.prototype.T_LINE = 367;
-PHP.Parser.prototype.T_FILE = 368;
-PHP.Parser.prototype.T_COMMENT = 369;
-PHP.Parser.prototype.T_DOC_COMMENT = 370;
-PHP.Parser.prototype.T_OPEN_TAG = 371;
-PHP.Parser.prototype.T_OPEN_TAG_WITH_ECHO = 372;
-PHP.Parser.prototype.T_CLOSE_TAG = 373;
-PHP.Parser.prototype.T_WHITESPACE = 374;
-PHP.Parser.prototype.T_START_HEREDOC = 375;
-PHP.Parser.prototype.T_END_HEREDOC = 376;
-PHP.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES = 377;
-PHP.Parser.prototype.T_CURLY_OPEN = 378;
-PHP.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM = 379;
-PHP.Parser.prototype.T_NAMESPACE = 380;
-PHP.Parser.prototype.T_NS_C = 381;
-PHP.Parser.prototype.T_DIR = 382;
-PHP.Parser.prototype.T_NS_SEPARATOR = 383;
+PHP.Parser.prototype.T_YIELD = 266;
+PHP.Parser.prototype.T_DOUBLE_ARROW = 267;
+PHP.Parser.prototype.T_YIELD_FROM = 268;
+PHP.Parser.prototype.T_PLUS_EQUAL = 269;
+PHP.Parser.prototype.T_MINUS_EQUAL = 270;
+PHP.Parser.prototype.T_MUL_EQUAL = 271;
+PHP.Parser.prototype.T_DIV_EQUAL = 272;
+PHP.Parser.prototype.T_CONCAT_EQUAL = 273;
+PHP.Parser.prototype.T_MOD_EQUAL = 274;
+PHP.Parser.prototype.T_AND_EQUAL = 275;
+PHP.Parser.prototype.T_OR_EQUAL = 276;
+PHP.Parser.prototype.T_XOR_EQUAL = 277;
+PHP.Parser.prototype.T_SL_EQUAL = 278;
+PHP.Parser.prototype.T_SR_EQUAL = 279;
+PHP.Parser.prototype.T_POW_EQUAL = 280;
+PHP.Parser.prototype.T_COALESCE = 281;
+PHP.Parser.prototype.T_BOOLEAN_OR = 282;
+PHP.Parser.prototype.T_BOOLEAN_AND = 283;
+PHP.Parser.prototype.T_IS_EQUAL = 284;
+PHP.Parser.prototype.T_IS_NOT_EQUAL = 285;
+PHP.Parser.prototype.T_IS_IDENTICAL = 286;
+PHP.Parser.prototype.T_IS_NOT_IDENTICAL = 287;
+PHP.Parser.prototype.T_SPACESHIP = 288;
+PHP.Parser.prototype.T_IS_SMALLER_OR_EQUAL = 289;
+PHP.Parser.prototype.T_IS_GREATER_OR_EQUAL = 290;
+PHP.Parser.prototype.T_SL = 291;
+PHP.Parser.prototype.T_SR = 292;
+PHP.Parser.prototype.T_INSTANCEOF = 293;
+PHP.Parser.prototype.T_INC = 294;
+PHP.Parser.prototype.T_DEC = 295;
+PHP.Parser.prototype.T_INT_CAST = 296;
+PHP.Parser.prototype.T_DOUBLE_CAST = 297;
+PHP.Parser.prototype.T_STRING_CAST = 298;
+PHP.Parser.prototype.T_ARRAY_CAST = 299;
+PHP.Parser.prototype.T_OBJECT_CAST = 300;
+PHP.Parser.prototype.T_BOOL_CAST = 301;
+PHP.Parser.prototype.T_UNSET_CAST = 302;
+PHP.Parser.prototype.T_POW = 303;
+PHP.Parser.prototype.T_NEW = 304;
+PHP.Parser.prototype.T_CLONE = 305;
+PHP.Parser.prototype.T_EXIT = 306;
+PHP.Parser.prototype.T_IF = 307;
+PHP.Parser.prototype.T_ELSEIF = 308;
+PHP.Parser.prototype.T_ELSE = 309;
+PHP.Parser.prototype.T_ENDIF = 310;
+PHP.Parser.prototype.T_LNUMBER = 311;
+PHP.Parser.prototype.T_DNUMBER = 312;
+PHP.Parser.prototype.T_STRING = 313;
+PHP.Parser.prototype.T_STRING_VARNAME = 314;
+PHP.Parser.prototype.T_VARIABLE = 315;
+PHP.Parser.prototype.T_NUM_STRING = 316;
+PHP.Parser.prototype.T_INLINE_HTML = 317;
+PHP.Parser.prototype.T_CHARACTER = 318;
+PHP.Parser.prototype.T_BAD_CHARACTER = 319;
+PHP.Parser.prototype.T_ENCAPSED_AND_WHITESPACE = 320;
+PHP.Parser.prototype.T_CONSTANT_ENCAPSED_STRING = 321;
+PHP.Parser.prototype.T_ECHO = 322;
+PHP.Parser.prototype.T_DO = 323;
+PHP.Parser.prototype.T_WHILE = 324;
+PHP.Parser.prototype.T_ENDWHILE = 325;
+PHP.Parser.prototype.T_FOR = 326;
+PHP.Parser.prototype.T_ENDFOR = 327;
+PHP.Parser.prototype.T_FOREACH = 328;
+PHP.Parser.prototype.T_ENDFOREACH = 329;
+PHP.Parser.prototype.T_DECLARE = 330;
+PHP.Parser.prototype.T_ENDDECLARE = 331;
+PHP.Parser.prototype.T_AS = 332;
+PHP.Parser.prototype.T_SWITCH = 333;
+PHP.Parser.prototype.T_ENDSWITCH = 334;
+PHP.Parser.prototype.T_CASE = 335;
+PHP.Parser.prototype.T_DEFAULT = 336;
+PHP.Parser.prototype.T_BREAK = 337;
+PHP.Parser.prototype.T_CONTINUE = 338;
+PHP.Parser.prototype.T_GOTO = 339;
+PHP.Parser.prototype.T_FUNCTION = 340;
+PHP.Parser.prototype.T_CONST = 341;
+PHP.Parser.prototype.T_RETURN = 342;
+PHP.Parser.prototype.T_TRY = 343;
+PHP.Parser.prototype.T_CATCH = 344;
+PHP.Parser.prototype.T_FINALLY = 345;
+PHP.Parser.prototype.T_THROW = 346;
+PHP.Parser.prototype.T_USE = 347;
+PHP.Parser.prototype.T_INSTEADOF = 348;
+PHP.Parser.prototype.T_GLOBAL = 349;
+PHP.Parser.prototype.T_STATIC = 350;
+PHP.Parser.prototype.T_ABSTRACT = 351;
+PHP.Parser.prototype.T_FINAL = 352;
+PHP.Parser.prototype.T_PRIVATE = 353;
+PHP.Parser.prototype.T_PROTECTED = 354;
+PHP.Parser.prototype.T_PUBLIC = 355;
+PHP.Parser.prototype.T_VAR = 356;
+PHP.Parser.prototype.T_UNSET = 357;
+PHP.Parser.prototype.T_ISSET = 358;
+PHP.Parser.prototype.T_EMPTY = 359;
+PHP.Parser.prototype.T_HALT_COMPILER = 360;
+PHP.Parser.prototype.T_CLASS = 361;
+PHP.Parser.prototype.T_TRAIT = 362;
+PHP.Parser.prototype.T_INTERFACE = 363;
+PHP.Parser.prototype.T_EXTENDS = 364;
+PHP.Parser.prototype.T_IMPLEMENTS = 365;
+PHP.Parser.prototype.T_OBJECT_OPERATOR = 366;
+PHP.Parser.prototype.T_LIST = 367;
+PHP.Parser.prototype.T_ARRAY = 368;
+PHP.Parser.prototype.T_CALLABLE = 369;
+PHP.Parser.prototype.T_CLASS_C = 370;
+PHP.Parser.prototype.T_TRAIT_C = 371;
+PHP.Parser.prototype.T_METHOD_C = 372;
+PHP.Parser.prototype.T_FUNC_C = 373;
+PHP.Parser.prototype.T_LINE = 374;
+PHP.Parser.prototype.T_FILE = 375;
+PHP.Parser.prototype.T_COMMENT = 376;
+PHP.Parser.prototype.T_DOC_COMMENT = 377;
+PHP.Parser.prototype.T_OPEN_TAG = 378;
+PHP.Parser.prototype.T_OPEN_TAG_WITH_ECHO = 379;
+PHP.Parser.prototype.T_CLOSE_TAG = 380;
+PHP.Parser.prototype.T_WHITESPACE = 381;
+PHP.Parser.prototype.T_START_HEREDOC = 382;
+PHP.Parser.prototype.T_END_HEREDOC = 383;
+PHP.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES = 384;
+PHP.Parser.prototype.T_CURLY_OPEN = 385;
+PHP.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM = 386;
+PHP.Parser.prototype.T_NAMESPACE = 387;
+PHP.Parser.prototype.T_NS_C = 388;
+PHP.Parser.prototype.T_DIR = 389;
+PHP.Parser.prototype.T_NS_SEPARATOR = 390;
+PHP.Parser.prototype.T_ELLIPSIS = 391;
PHP.Parser.prototype.terminals = [
"$EOF",
"error",
@@ -2805,6 +2803,9 @@ PHP.Parser.prototype.terminals = [
"T_LOGICAL_XOR",
"T_LOGICAL_AND",
"T_PRINT",
+ "T_YIELD",
+ "T_DOUBLE_ARROW",
+ "T_YIELD_FROM",
"'='",
"T_PLUS_EQUAL",
"T_MINUS_EQUAL",
@@ -2817,8 +2818,10 @@ PHP.Parser.prototype.terminals = [
"T_XOR_EQUAL",
"T_SL_EQUAL",
"T_SR_EQUAL",
+ "T_POW_EQUAL",
"'?'",
"':'",
+ "T_COALESCE",
"T_BOOLEAN_OR",
"T_BOOLEAN_AND",
"'|'",
@@ -2828,6 +2831,7 @@ PHP.Parser.prototype.terminals = [
"T_IS_NOT_EQUAL",
"T_IS_IDENTICAL",
"T_IS_NOT_IDENTICAL",
+ "T_SPACESHIP",
"'<'",
"T_IS_SMALLER_OR_EQUAL",
"'>'",
@@ -2853,6 +2857,7 @@ PHP.Parser.prototype.terminals = [
"T_BOOL_CAST",
"T_UNSET_CAST",
"'@'",
+ "T_POW",
"'['",
"T_NEW",
"T_CLONE",
@@ -2893,6 +2898,7 @@ PHP.Parser.prototype.terminals = [
"T_RETURN",
"T_TRY",
"T_CATCH",
+ "T_FINALLY",
"T_THROW",
"T_USE",
"T_INSTEADOF",
@@ -2914,7 +2920,6 @@ PHP.Parser.prototype.terminals = [
"T_EXTENDS",
"T_IMPLEMENTS",
"T_OBJECT_OPERATOR",
- "T_DOUBLE_ARROW",
"T_LIST",
"T_ARRAY",
"T_CALLABLE",
@@ -2933,348 +2938,346 @@ PHP.Parser.prototype.terminals = [
"T_NS_C",
"T_DIR",
"T_NS_SEPARATOR",
+ "T_ELLIPSIS",
"';'",
"'{'",
"'}'",
"'('",
"')'",
- "'$'",
- "']'",
"'`'",
- "'\"'"
+ "']'",
+ "'\"'",
+ "'$'"
, "???"
];
PHP.Parser.prototype.translate = [
- 0, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 47, 148, 149, 145, 46, 30, 149,
- 143, 144, 44, 41, 7, 42, 43, 45, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 25, 140,
- 35, 12, 37, 24, 59, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 60, 149, 146, 29, 149, 147, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 141, 28, 142, 49, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 1, 2, 3, 4,
- 5, 6, 8, 9, 10, 11, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 26, 27, 31,
- 32, 33, 34, 36, 38, 39, 40, 48, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 149, 149, 75, 76, 77, 78, 79, 80, 81,
+ 0, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 53, 155, 157, 156, 52, 35, 157,
+ 151, 152, 50, 47, 7, 48, 49, 51, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 29, 148,
+ 41, 15, 43, 28, 65, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 67, 157, 154, 34, 157, 153, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 149, 33, 150, 55, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 1, 2, 3, 4,
+ 5, 6, 8, 9, 10, 11, 12, 13, 14, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 30, 31, 32, 36, 37, 38, 39, 40, 42,
+ 44, 45, 46, 54, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 66, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 157, 157,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 149,
- 149, 149, 149, 149, 149, 131, 132, 133, 134, 135,
- 136, 137, 138, 139
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 157, 157, 157, 157,
+ 157, 157, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147
];
PHP.Parser.prototype.yyaction = [
- 61, 62, 363, 63, 64,-32766,-32766,-32766, 509, 65,
- 708, 709, 710, 707, 706, 705,-32766,-32766,-32766,-32766,
- -32766,-32766, 132,-32766,-32766,-32766,-32766,-32766,-32767,-32767,
- -32767,-32767,-32766, 335,-32766,-32766,-32766,-32766,-32766, 66,
- 67, 351, 663, 664, 40, 68, 548, 69, 232, 233,
- 70, 71, 72, 73, 74, 75, 76, 77, 30, 246,
- 78, 336, 364, -112, 0, 469, 833, 834, 365, 641,
- 890, 436, 590, 41, 835, 53, 27, 366, 294, 367,
- 687, 368, 921, 369, 923, 922, 370,-32766,-32766,-32766,
- 42, 43, 371, 339, 126, 44, 372, 337, 79, 297,
- 349, 292, 293,-32766, 918,-32766,-32766, 373, 374, 375,
- 376, 377, 391, 199, 361, 338, 573, 613, 378, 379,
- 380, 381, 845, 839, 840, 841, 842, 836, 837, 253,
- -32766, 87, 88, 89, 391, 843, 838, 338, 597, 519,
- 128, 80, 129, 273, 332, 257, 261, 47, 673, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 799, 247, 884, 108, 109, 110, 226, 247, 21,-32766,
- 310,-32766,-32766,-32766, 642, 548,-32766,-32766,-32766,-32766,
- 56, 353,-32766,-32766,-32766, 55,-32766,-32766,-32766,-32766,
- -32766, 58,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,
- -32766, 557,-32766,-32766, 518,-32766, 548, 890,-32766, 390,
- -32766, 228, 252,-32766,-32766,-32766,-32766,-32766, 275,-32766,
- 234,-32766, 587, 588,-32766,-32766,-32766,-32766,-32766,-32766,
- -32766, 46, 236,-32766,-32766, 281,-32766, 682, 348,-32766,
- 390,-32766, 346, 333, 521,-32766,-32766,-32766, 271, 911,
- 262, 237, 446, 911,-32766, 894, 59, 700, 358, 135,
- 548, 123, 538, 35,-32766, 333, 122,-32766,-32766,-32766,
- 271,-32766, 124,-32766, 692,-32766,-32766,-32766,-32766, 700,
- 273, 22,-32766,-32766,-32766,-32766, 239,-32766,-32766, 612,
- -32766, 548, 134,-32766, 390,-32766, 462, 354,-32766,-32766,
- -32766,-32766,-32766, 227,-32766, 238,-32766, 845, 542,-32766,
- 856, 611, 200,-32766,-32766,-32766, 259, 280,-32766,-32766,
- 201,-32766, 855, 129,-32766, 390, 130, 202, 333, 206,
- -32766,-32766,-32766, 271,-32766,-32766,-32766, 125, 601,-32766,
- 136, 299, 700, 489, 28, 548, 105, 106, 107,-32766,
- 498, 499,-32766,-32766,-32766, 207,-32766, 133,-32766, 525,
- -32766,-32766,-32766,-32766, 663, 664, 527,-32766,-32766,-32766,
- -32766, 528,-32766,-32766, 610,-32766, 548, 427,-32766, 390,
- -32766, 532, 539,-32766,-32766,-32766,-32766,-32766, 240,-32766,
- 247,-32766, 697, 543,-32766, 554, 523, 608,-32766,-32766,
- -32766, 686, 535,-32766,-32766, 54,-32766, 57, 60,-32766,
- 390, 246, -155, 278, 345,-32766,-32766,-32766, 506, 347,
- -152, 471, 402, 403,-32766, 405, 404, 272, 493, 416,
- 548, 318, 417, 505,-32766, 517, 548,-32766,-32766,-32766,
- 549,-32766, 562,-32766, 916,-32766,-32766,-32766,-32766, 564,
- 826, 848,-32766,-32766,-32766,-32766, 694,-32766,-32766, 485,
- -32766, 548, 487,-32766, 390,-32766, 504, 802,-32766,-32766,
- -32766,-32766,-32766, 279,-32766, 911,-32766, 502, 492,-32766,
- 413, 483, 269,-32766,-32766,-32766, 243, 337,-32766,-32766,
- 418,-32766, 454, 229,-32766, 390, 274, 373, 374, 344,
- -32766,-32766,-32766, 360, 614,-32766, 573, 613, 378, 379,
- -274, 548, 615, -332, 844,-32766, 258, 51,-32766,-32766,
- -32766, 270,-32766, 346,-32766, 52,-32766, 260, 0,-32766,
- -333,-32766,-32766,-32766,-32766,-32766,-32766, 205,-32766,-32766,
- 49,-32766, 548, 424,-32766, 390,-32766, -266, 264,-32766,
- -32766,-32766,-32766,-32766, 409,-32766, 343,-32766, 265, 312,
- -32766, 470, 513, -275,-32766,-32766,-32766, 920, 337,-32766,
- -32766, 530,-32766, 531, 600,-32766, 390, 592, 373, 374,
- 578, 581,-32766,-32766, 644, 629,-32766, 573, 613, 378,
- 379, 635, 548, 636, 576, 627,-32766, 625, 693,-32766,
- -32766,-32766, 691,-32766, 591,-32766, 582,-32766, 203, 204,
- -32766, 584, 583,-32766,-32766,-32766,-32766, 586, 599,-32766,
- -32766, 589,-32766, 690, 558,-32766, 390, 197, 683, 919,
- 86, 520, 522,-32766, 524, 833, 834, 529, 533,-32766,
- 534, 537, 541, 835, 48, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 127, 31, 633, 337,
- 330, 634, 585,-32766, 32, 291, 337, 330, 478, 373,
- 374, 917, 291, 891, 889, 875, 373, 374, 553, 613,
- 378, 379, 737, 739, 887, 553, 613, 378, 379, 824,
- 451, 675, 839, 840, 841, 842, 836, 837, 320, 895,
- 277, 885, 23, 33, 843, 838, 556, 277, 337, 330,
- -32766, 34,-32766, 555, 291, 36, 37, 38, 373, 374,
- 39, 45, 50, 81, 82, 83, 84, 553, 613, 378,
- 379,-32767,-32767,-32767,-32767, 103, 104, 105, 106, 107,
- 337, 85, 131, 137, 337, 138, 198, 224, 225, 277,
- 373, 374, -332, 230, 373, 374, 24, 337, 231, 573,
- 613, 378, 379, 573, 613, 378, 379, 373, 374, 235,
- 248, 249, 250, 337, 251, 0, 573, 613, 378, 379,
- 276, 329, 331, 373, 374,-32766, 337, 574, 490, 792,
- 337, 609, 573, 613, 378, 379, 373, 374, 25, 300,
- 373, 374, 319, 337, 795, 573, 613, 378, 379, 573,
- 613, 378, 379, 373, 374, 516, 355, 359, 445, 482,
- 796, 507, 573, 613, 378, 379, 508, 548, 337, 890,
- 775, 791, 337, 604, 803, 808, 806, 698, 373, 374,
- 888, 807, 373, 374,-32766,-32766,-32766, 573, 613, 378,
- 379, 573, 613, 378, 379, 873, 832, 804, 872, 851,
- -32766, 809,-32766,-32766,-32766,-32766, 805, 20, 26, 29,
- 298, 480, 515, 770, 778, 827, 457, 0, 900, 455,
- 774, 0, 0, 0, 874, 870, 886, 823, 915, 852,
- 869, 488, 0, 391, 793, 0, 338, 0, 0, 0,
- 340, 0, 273
+ 569, 570, 571, 572, 573, 215, 574, 575, 576, 612,
+ 613, 0, 27, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110,-32766,-32766,-32766, 95, 96,
+ 97, 24, 240, 226, -267,-32766,-32766,-32766,-32766,-32766,
+ -32766, 530, 344, 114, 98,-32766, 286,-32766,-32766,-32766,
+ -32766,-32766, 577, 870, 872,-32766,-32766,-32766,-32766,-32766,
+ -32766,-32766,-32766, 224,-32766, 714, 578, 579, 580, 581,
+ 582, 583, 584,-32766, 264, 644, 840, 841, 842, 839,
+ 838, 837, 585, 586, 587, 588, 589, 590, 591, 592,
+ 593, 594, 595, 615, 616, 617, 618, 619, 607, 608,
+ 609, 610, 611, 596, 597, 598, 599, 600, 601, 602,
+ 638, 639, 640, 641, 642, 643, 603, 604, 605, 606,
+ 636, 627, 625, 626, 622, 623, 116, 614, 620, 621,
+ 628, 629, 631, 630, 632, 633, 42, 43, 381, 44,
+ 45, 624, 635, 634, -214, 46, 47, 289, 48,-32767,
+ -32767,-32767,-32767, 90, 91, 92, 93, 94, 267, 241,
+ 22, 840, 841, 842, 839, 838, 837, 832,-32766,-32766,
+ -32766, 306, 1000, 1000, 1037, 120, 966, 436, -423, 244,
+ 797, 49, 50, 660, 661, 272, 362, 51,-32766, 52,
+ 219, 220, 53, 54, 55, 56, 57, 58, 59, 60,
+ 1016, 22, 238, 61, 351, 945,-32766,-32766,-32766, 967,
+ 968, 646, 705, 1000, 28, -456, 125, 966,-32766,-32766,
+ -32766, 715, 398, 399, 216, 1000,-32766, 339,-32766,-32766,
+ -32766,-32766, 25, 222, 980, 552, 355, 378,-32766, -423,
+ -32766,-32766,-32766, 121, 65, 1045, 408, 1047, 1046, 274,
+ 274, 131, 244, -423, 394, 395, 358, 519, 945, 537,
+ -423, 111, -426, 398, 399, 130, 972, 973, 974, 975,
+ 969, 970, 243, 128, -422, -421, 1013, 409, 976, 971,
+ 353, 791, 792, 7, -162, 63, 124, 255, 701, 256,
+ 274, 382, -122, -122, -122, -4, 715, 383, 646, 1042,
+ -421, 704, 274, -219, 33, 17, 384, -122, 385, -122,
+ 386, -122, 387, -122, 369, 388, -122, -122, -122, 34,
+ 35, 389, 352, 520, 36, 390, 353, 702, 62, 112,
+ 818, 287, 288, 391, 392, -422, -421, -161, 350, 393,
+ 40, 38, 690, 735, 396, 397, 361, 22, 122, -422,
+ -421,-32766,-32766,-32766, 791, 792, -422, -421, -425, 1000,
+ -456, -421, -238, 966, 409, 41, 382, 353, 717, 535,
+ -122,-32766, 383,-32766,-32766, -421, 704, 21, 813, 33,
+ 17, 384, -421, 385, -466, 386, 224, 387, -467, 273,
+ 388, 367, 945, -458, 34, 35, 389, 352, 345, 36,
+ 390, 248, 247, 62, 254, 715, 287, 288, 391, 392,
+ 399,-32766,-32766,-32766, 393, 295, 1000, 652, 735, 396,
+ 397, 117, 115, 113, 814, 119, 72, 73, 74, -162,
+ 764, 65, 240, 541, 370, 518, 274, 118, 270, 92,
+ 93, 94, 242, 717, 535, -4, 26, 1000, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 547, 240, 713, 715, 382, 276,-32766,-32766, 126,
+ 945, 383, -161, 938, 98, 704, 225, 659, 33, 17,
+ 384, 346, 385, 274, 386, 728, 387, 221, 120, 388,
+ 505, 506, 540, 34, 35, 389, 715, -238, 36, 390,
+ 1017, 223, 62, 494, 18, 287, 288, 127, 297, 376,
+ 6, 98, 798, 393, 274, 660, 661, 490, 491, -466,
+ 39, -466, 514, -467, 539, -467, 16, 458, -458, 315,
+ 791, 792, 829, 553, 382, 817, 563, 653, 538, 765,
+ 383, 449, 751, 535, 704, 448, 435, 33, 17, 384,
+ 430, 385, 646, 386, 359, 387, 357, 647, 388, 673,
+ 429, 1040, 34, 35, 389, 715, 382, 36, 390, 941,
+ 492, 62, 383, 503, 287, 288, 704, 434, 440, 33,
+ 17, 384, 393, 385,-32766, 386, 445, 387, 495, 509,
+ 388, 10, 529, 542, 34, 35, 389, 715, 515, 36,
+ 390, 499, 500, 62, 214, -80, 287, 288, 452, 269,
+ 736, 717, 535, 488, 393, 356, 266, 979, 265, 730,
+ 982, 722, 358, 338, 493, 548, 0, 294, 737, 0,
+ 3, 0, 309, 0, 0, 382, 0, 0, 271, 0,
+ 0, 383, 0, 717, 535, 704, 227, 0, 33, 17,
+ 384, 9, 385, 0, 386, 0, 387, -382, 0, 388,
+ 0, 0, 325, 34, 35, 389, 715, 382, 36, 390,
+ 321, 341, 62, 383, 340, 287, 288, 704, 22, 320,
+ 33, 17, 384, 393, 385, 442, 386, 337, 387, 562,
+ 1000, 388, 32, 31, 966, 34, 35, 389, 823, 657,
+ 36, 390, 656, 821, 62, 703, 711, 287, 288, 561,
+ 822, 825, 717, 535, 695, 393, 747, 749, 693, 759,
+ 758, 752, 767, 945, 824, 706, 700, 712, 699, 698,
+ 658, 0, 263, 262, 559, 558, 382, 556, 554, 551,
+ 398, 399, 383, 550, 717, 535, 704, 546, 545, 33,
+ 17, 384, 543, 385, 536, 386, 71, 387, 933, 932,
+ 388, 30, 65, 731, 34, 35, 389, 274, 724, 36,
+ 390, 830, 734, 62, 663, 662, 287, 288,-32766,-32766,
+ -32766, 733, 732, 934, 393, 665, 664, 756, 555, 691,
+ 1041, 1001, 994, 1006, 1011, 1014, 757, 1043,-32766, 654,
+ -32766,-32766,-32766,-32766,-32766,-32766,-32767,-32767,-32767,-32767,
+ -32767, 655, 1044, 717, 535, -446, 926, 348, 343, 268,
+ 237, 236, 235, 234, 218, 217, 132, 129, -426, -425,
+ -424, 123, 20, 23, 70, 69, 29, 37, 64, 68,
+ 66, 67, -448, 0, 15, 19, 250, 910, 296, -217,
+ 467, 484, 909, 472, 528, 913, 11, 964, 955, -215,
+ 525, 379, 375, 373, 371, 14, 13, 12, -214, 0,
+ -393, 0, 1005, 1039, 992, 993, 963, 0, 981
];
PHP.Parser.prototype.yycheck = [
- 2, 3, 4, 5, 6, 8, 9, 10, 70, 11,
- 104, 105, 106, 107, 108, 109, 8, 9, 10, 8,
- 9, 24, 60, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 24, 7, 26, 27, 28, 29, 30, 41,
- 42, 7, 123, 124, 7, 47, 70, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 144, 0, 75, 68, 69, 70, 25,
- 72, 70, 74, 7, 76, 77, 78, 79, 7, 81,
- 142, 83, 70, 85, 72, 73, 88, 8, 9, 10,
- 92, 93, 94, 95, 7, 97, 98, 95, 100, 7,
- 7, 103, 104, 24, 142, 26, 27, 105, 106, 111,
- 112, 113, 136, 7, 7, 139, 114, 115, 116, 117,
- 122, 123, 132, 125, 126, 127, 128, 129, 130, 131,
- 8, 8, 9, 10, 136, 137, 138, 139, 140, 141,
- 25, 143, 141, 145, 142, 147, 148, 24, 72, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 144, 48, 72, 44, 45, 46, 30, 48, 144, 64,
- 72, 8, 9, 10, 140, 70, 8, 9, 10, 74,
- 60, 25, 77, 78, 79, 60, 81, 24, 83, 26,
- 85, 60, 24, 88, 26, 27, 28, 92, 93, 94,
- 64, 140, 97, 98, 70, 100, 70, 72, 103, 104,
- 74, 145, 7, 77, 78, 79, 111, 81, 7, 83,
- 30, 85, 140, 140, 88, 8, 9, 10, 92, 93,
- 94, 133, 134, 97, 98, 145, 100, 140, 7, 103,
- 104, 24, 139, 96, 141, 140, 141, 111, 101, 75,
- 75, 30, 70, 75, 64, 70, 60, 110, 121, 12,
- 70, 141, 25, 143, 74, 96, 141, 77, 78, 79,
- 101, 81, 141, 83, 140, 85, 140, 141, 88, 110,
- 145, 144, 92, 93, 94, 64, 7, 97, 98, 142,
- 100, 70, 141, 103, 104, 74, 145, 141, 77, 78,
- 79, 111, 81, 7, 83, 30, 85, 132, 25, 88,
- 132, 142, 12, 92, 93, 94, 120, 60, 97, 98,
- 12, 100, 148, 141, 103, 104, 141, 12, 96, 12,
- 140, 141, 111, 101, 8, 9, 10, 141, 25, 64,
- 90, 91, 110, 65, 66, 70, 41, 42, 43, 74,
- 65, 66, 77, 78, 79, 12, 81, 25, 83, 25,
- 85, 140, 141, 88, 123, 124, 25, 92, 93, 94,
- 64, 25, 97, 98, 142, 100, 70, 120, 103, 104,
- 74, 25, 25, 77, 78, 79, 111, 81, 30, 83,
- 48, 85, 140, 141, 88, 140, 141, 30, 92, 93,
- 94, 140, 141, 97, 98, 60, 100, 60, 60, 103,
- 104, 61, 72, 75, 70, 140, 141, 111, 67, 70,
- 87, 99, 70, 70, 64, 70, 72, 102, 89, 70,
- 70, 71, 70, 70, 74, 70, 70, 77, 78, 79,
- 70, 81, 70, 83, 70, 85, 140, 141, 88, 70,
- 144, 70, 92, 93, 94, 64, 70, 97, 98, 72,
- 100, 70, 72, 103, 104, 74, 72, 72, 77, 78,
- 79, 111, 81, 75, 83, 75, 85, 89, 86, 88,
- 79, 101, 118, 92, 93, 94, 87, 95, 97, 98,
- 87, 100, 87, 87, 103, 104, 118, 105, 106, 95,
- 140, 141, 111, 95, 115, 64, 114, 115, 116, 117,
- 135, 70, 115, 120, 132, 74, 120, 140, 77, 78,
- 79, 119, 81, 139, 83, 140, 85, 120, -1, 88,
- 120, 140, 141, 92, 93, 94, 64, 121, 97, 98,
- 121, 100, 70, 122, 103, 104, 74, 135, 135, 77,
- 78, 79, 111, 81, 139, 83, 139, 85, 135, 135,
- 88, 135, 135, 135, 92, 93, 94, 142, 95, 97,
- 98, 140, 100, 140, 140, 103, 104, 140, 105, 106,
- 140, 140, 141, 111, 140, 140, 64, 114, 115, 116,
- 117, 140, 70, 140, 140, 140, 74, 140, 140, 77,
- 78, 79, 140, 81, 140, 83, 140, 85, 41, 42,
- 88, 140, 140, 141, 92, 93, 94, 140, 140, 97,
- 98, 140, 100, 140, 140, 103, 104, 60, 140, 142,
- 141, 141, 141, 111, 141, 68, 69, 141, 141, 72,
- 141, 141, 141, 76, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 141, 143, 142, 95,
- 96, 142, 140, 141, 143, 101, 95, 96, 142, 105,
- 106, 142, 101, 142, 142, 142, 105, 106, 114, 115,
- 116, 117, 50, 51, 142, 114, 115, 116, 117, 142,
- 123, 142, 125, 126, 127, 128, 129, 130, 131, 142,
- 136, 142, 144, 143, 137, 138, 142, 136, 95, 96,
- 143, 143, 145, 142, 101, 143, 143, 143, 105, 106,
- 143, 143, 143, 143, 143, 143, 143, 114, 115, 116,
- 117, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 95, 143, 143, 143, 95, 143, 143, 143, 143, 136,
- 105, 106, 120, 143, 105, 106, 144, 95, 143, 114,
- 115, 116, 117, 114, 115, 116, 117, 105, 106, 143,
- 143, 143, 143, 95, 143, -1, 114, 115, 116, 117,
- 143, 143, 143, 105, 106, 143, 95, 142, 80, 146,
- 95, 142, 114, 115, 116, 117, 105, 106, 144, 144,
- 105, 106, 144, 95, 142, 114, 115, 116, 117, 114,
- 115, 116, 117, 105, 106, 82, 144, 144, 144, 144,
- 142, 84, 114, 115, 116, 117, 144, 70, 95, 72,
- 144, 144, 95, 142, 144, 146, 144, 142, 105, 106,
- 146, 144, 105, 106, 8, 9, 10, 114, 115, 116,
- 117, 114, 115, 116, 117, 144, 144, 144, 144, 144,
- 24, 104, 26, 27, 28, 29, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, -1, 144, 144,
- 144, -1, -1, -1, 146, 146, 146, 146, 146, 146,
- 146, 146, -1, 136, 147, -1, 139, -1, -1, -1,
- 143, -1, 145
+ 2, 3, 4, 5, 6, 13, 8, 9, 10, 11,
+ 12, 0, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 8, 9, 10, 50, 51,
+ 52, 7, 54, 7, 79, 8, 9, 10, 8, 9,
+ 10, 77, 7, 13, 66, 28, 7, 30, 31, 32,
+ 33, 34, 54, 56, 57, 28, 8, 30, 31, 32,
+ 33, 34, 35, 35, 109, 1, 68, 69, 70, 71,
+ 72, 73, 74, 118, 7, 77, 112, 113, 114, 115,
+ 116, 117, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 7, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 2, 3, 4, 5,
+ 6, 143, 144, 145, 152, 11, 12, 7, 14, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 109, 7,
+ 67, 112, 113, 114, 115, 116, 117, 118, 8, 9,
+ 10, 79, 79, 79, 82, 147, 83, 82, 67, 28,
+ 152, 47, 48, 102, 103, 7, 7, 53, 28, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 1, 67, 68, 69, 70, 112, 8, 9, 10, 75,
+ 76, 77, 148, 79, 13, 7, 67, 83, 8, 9,
+ 10, 1, 129, 130, 13, 79, 28, 146, 30, 31,
+ 32, 33, 140, 141, 139, 29, 102, 7, 28, 128,
+ 30, 31, 32, 149, 151, 77, 112, 79, 80, 156,
+ 156, 15, 28, 142, 120, 121, 146, 77, 112, 149,
+ 149, 15, 151, 129, 130, 15, 132, 133, 134, 135,
+ 136, 137, 138, 15, 67, 67, 77, 143, 144, 145,
+ 146, 130, 131, 7, 7, 151, 15, 153, 148, 155,
+ 156, 71, 72, 73, 74, 0, 1, 77, 77, 150,
+ 67, 81, 156, 152, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 29, 95, 96, 97, 98, 99,
+ 100, 101, 102, 143, 104, 105, 146, 148, 108, 15,
+ 150, 111, 112, 113, 114, 128, 128, 7, 7, 119,
+ 67, 67, 122, 123, 124, 125, 7, 67, 149, 142,
+ 142, 8, 9, 10, 130, 131, 149, 149, 151, 79,
+ 152, 128, 7, 83, 143, 7, 71, 146, 148, 149,
+ 150, 28, 77, 30, 31, 142, 81, 7, 148, 84,
+ 85, 86, 149, 88, 7, 90, 35, 92, 7, 33,
+ 95, 7, 112, 7, 99, 100, 101, 102, 103, 104,
+ 105, 128, 128, 108, 109, 1, 111, 112, 113, 114,
+ 130, 8, 9, 10, 119, 142, 79, 122, 123, 124,
+ 125, 15, 149, 149, 148, 29, 8, 9, 10, 152,
+ 29, 151, 54, 29, 149, 79, 156, 15, 143, 47,
+ 48, 49, 29, 148, 149, 150, 28, 79, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 29, 54, 29, 1, 71, 67, 8, 9, 29,
+ 112, 77, 152, 152, 66, 81, 35, 148, 84, 85,
+ 86, 123, 88, 156, 90, 35, 92, 35, 147, 95,
+ 72, 73, 29, 99, 100, 101, 1, 152, 104, 105,
+ 152, 35, 108, 72, 73, 111, 112, 97, 98, 102,
+ 103, 66, 152, 119, 156, 102, 103, 106, 107, 152,
+ 67, 154, 74, 152, 29, 154, 152, 128, 152, 78,
+ 130, 131, 148, 149, 71, 148, 149, 148, 149, 148,
+ 77, 77, 148, 149, 81, 77, 77, 84, 85, 86,
+ 77, 88, 77, 90, 77, 92, 77, 77, 95, 77,
+ 77, 77, 99, 100, 101, 1, 71, 104, 105, 79,
+ 79, 108, 77, 79, 111, 112, 81, 79, 82, 84,
+ 85, 86, 119, 88, 82, 90, 86, 92, 87, 96,
+ 95, 94, 89, 29, 99, 100, 101, 1, 91, 104,
+ 105, 93, 96, 108, 94, 94, 111, 112, 94, 110,
+ 123, 148, 149, 109, 119, 102, 127, 139, 126, 147,
+ 139, 150, 146, 149, 154, 29, -1, 142, 123, -1,
+ 142, -1, 146, -1, -1, 71, -1, -1, 126, -1,
+ -1, 77, -1, 148, 149, 81, 35, -1, 84, 85,
+ 86, 142, 88, -1, 90, -1, 92, 142, -1, 95,
+ -1, -1, 146, 99, 100, 101, 1, 71, 104, 105,
+ 146, 146, 108, 77, 146, 111, 112, 81, 67, 146,
+ 84, 85, 86, 119, 88, 146, 90, 149, 92, 148,
+ 79, 95, 148, 148, 83, 99, 100, 101, 148, 148,
+ 104, 105, 148, 148, 108, 148, 148, 111, 112, 148,
+ 148, 148, 148, 149, 148, 119, 148, 148, 148, 148,
+ 148, 148, 148, 112, 148, 148, 148, 148, 148, 148,
+ 148, -1, 149, 149, 149, 149, 71, 149, 149, 149,
+ 129, 130, 77, 149, 148, 149, 81, 149, 149, 84,
+ 85, 86, 149, 88, 149, 90, 149, 92, 150, 150,
+ 95, 151, 151, 150, 99, 100, 101, 156, 150, 104,
+ 105, 150, 150, 108, 150, 150, 111, 112, 8, 9,
+ 10, 150, 150, 150, 119, 150, 150, 150, 150, 150,
+ 150, 150, 150, 150, 150, 150, 150, 150, 28, 150,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 150, 150, 148, 149, 151, 153, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 151, 151, 151, -1, 152, 152, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 152, 152, 152, -1,
+ 153, -1, 154, 154, 154, 154, 154, -1, 155
];
PHP.Parser.prototype.yybase = [
- 0, 574, 581, 623, 655, 2, 718, 402, 747, 659,
- 672, 688, 743, 701, 705, 483, 483, 483, 483, 483,
- 351, 356, 366, 366, 367, 366, 344, -2, -2, -2,
- 200, 200, 231, 231, 231, 231, 231, 231, 231, 231,
- 200, 231, 451, 482, 532, 316, 370, 115, 146, 285,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 44,
- 474, 429, 476, 481, 487, 488, 739, 740, 741, 734,
- 733, 416, 736, 539, 541, 342, 542, 543, 552, 557,
- 559, 536, 567, 737, 755, 569, 735, 738, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 122, 11, 336,
- 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
- 336, 336, 336, 336, 227, 227, 173, 577, 577, 577,
- 577, 577, 577, 577, 577, 577, 577, 577, 79, 178,
- 846, 8, -3, -3, -3, -3, 642, 706, 706, 706,
- 706, 157, 179, 242, 431, 431, 360, 431, 525, 368,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 350, 375, 315, 315, 652, 652, -81, -81,
- -81, -81, 251, 185, 188, 184, -62, 348, 195, 195,
- 195, 408, 392, 410, 1, 192, 129, 129, 129, -24,
- -24, -24, -24, 499, -24, -24, -24, 113, 108, 108,
- 12, 161, 349, 526, 271, 398, 529, 438, 130, 206,
- 265, 427, 76, 414, 427, 288, 295, 76, 166, 44,
- 262, 422, 141, 491, 372, 494, 413, 71, 92, 93,
- 267, 135, 100, 34, 415, 745, 746, 742, -38, 420,
- -10, 135, 147, 744, 498, 107, 26, 493, 144, 377,
- 363, 369, 332, 363, 400, 377, 588, 377, 376, 377,
- 360, 37, 582, 376, 377, 374, 376, 388, 363, 364,
- 412, 369, 377, 441, 443, 390, 106, 332, 377, 390,
- 377, 400, 64, 590, 591, 323, 592, 589, 593, 649,
- 608, 362, 500, 399, 407, 620, 625, 636, 365, 354,
- 614, 524, 425, 359, 355, 423, 570, 578, 357, 406,
- 414, 394, 352, 403, 531, 433, 403, 653, 434, 385,
- 417, 411, 444, 310, 318, 501, 425, 668, 757, 380,
- 637, 684, 403, 609, 387, 87, 325, 638, 382, 403,
- 639, 403, 696, 503, 615, 403, 697, 384, 435, 425,
- 352, 352, 352, 700, 66, 699, 583, 702, 707, 704,
- 748, 721, 749, 584, 750, 358, 583, 722, 751, 682,
- 215, 613, 422, 436, 389, 447, 221, 257, 752, 403,
- 403, 506, 499, 403, 395, 685, 397, 426, 753, 392,
- 391, 647, 683, 403, 418, 754, 221, 723, 587, 724,
- 450, 568, 507, 648, 509, 327, 725, 353, 497, 610,
- 454, 622, 455, 461, 404, 510, 373, 732, 612, 247,
- 361, 664, 463, 405, 692, 641, 464, 465, 511, 343,
- 437, 335, 409, 396, 665, 293, 467, 468, 472, 0,
+ 0, 220, 295, 94, 180, 560, -2, -2, -2, -2,
+ -36, 473, 574, 606, 574, 505, 404, 675, 675, 675,
+ 28, 351, 462, 462, 462, 461, 396, 476, 451, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 401, 64, 201, 568, 704, 713, 708,
+ 702, 714, 520, 706, 705, 211, 650, 651, 450, 652,
+ 653, 654, 655, 709, 480, 703, 712, 418, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 418, 418, 48, 30, 469, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 160, 160, 160, 343, 210,
+ 208, 198, 17, 233, 27, 780, 780, 780, 780, 780,
+ 108, 108, 108, 108, 621, 621, 93, 280, 280, 280,
+ 280, 280, 280, 280, 280, 280, 280, 280, 632, 641,
+ 642, 643, 392, 392, 151, 151, 151, 151, 368, -45,
+ 146, 224, 224, 95, 410, 491, 733, 199, 199, 111,
+ 207, -22, -22, -22, 81, 506, 92, 92, 233, 233,
+ 273, 233, 423, 423, 423, 221, 221, 221, 221, 221,
+ 110, 221, 221, 221, 617, 512, 168, 516, 647, 397,
+ 503, 656, 274, 381, 377, 538, 535, 337, 523, 337,
+ 421, 441, 428, 525, 337, 337, 285, 401, 394, 378,
+ 567, 474, 339, 564, 140, 179, 409, 399, 384, 594,
+ 561, 711, 330, 710, 358, 149, 378, 378, 378, 370,
+ 593, 548, 355, -8, 646, 484, 277, 417, 386, 645,
+ 635, 230, 634, 276, 331, 356, 565, 485, 485, 485,
+ 485, 485, 485, 460, 485, 483, 691, 691, 478, 501,
+ 460, 696, 460, 485, 691, 460, 460, 502, 485, 522,
+ 522, 483, 508, 499, 691, 691, 499, 478, 460, 571,
+ 551, 514, 482, 413, 413, 514, 460, 413, 501, 413,
+ 11, 697, 699, 444, 700, 695, 698, 676, 694, 493,
+ 615, 497, 515, 684, 683, 693, 479, 489, 620, 692,
+ 549, 592, 487, 246, 314, 498, 463, 689, 523, 486,
+ 455, 455, 455, 463, 687, 455, 455, 455, 455, 455,
+ 455, 455, 455, 732, 24, 495, 510, 591, 590, 589,
+ 406, 588, 496, 524, 422, 599, 488, 549, 549, 649,
+ 727, 673, 490, 682, 716, 690, 555, 119, 271, 681,
+ 648, 543, 492, 534, 680, 598, 246, 715, 494, 672,
+ 549, 671, 455, 674, 701, 730, 731, 688, 728, 722,
+ 152, 526, 587, 178, 729, 659, 596, 595, 554, 725,
+ 707, 721, 720, 178, 576, 511, 717, 518, 677, 504,
+ 678, 613, 258, 657, 686, 584, 724, 723, 726, 583,
+ 582, 609, 608, 250, 236, 685, 442, 458, 517, 581,
+ 500, 628, 604, 679, 580, 579, 623, 619, 718, 521,
+ 486, 519, 509, 507, 513, 600, 618, 719, 206, 578,
+ 586, 573, 481, 572, 631, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 134, 134, -2, -2, -2,
+ 0, 0, 0, 0, -2, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, 0, 0, 0, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 123, 123, 123, 123, 123, 123, 123, 123,
- 0, 129, 129, 129, 129, -94, -94, -94, 767, 767,
- 767, 767, 767, 767, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -94, -94, 129, 129,
- 767, 767, -24, -24, -24, -24, -24, 108, 108, 108,
- -24, 108, 145, 145, 145, 108, 108, 108, 100, 100,
- 0, 0, 0, 0, 0, 0, 0, 145, 0, 0,
- 0, 376, 0, 0, 0, 145, 260, 260, 221, 260,
- 260, 135, 0, 0, 425, 376, 0, 364, 376, 0,
- 0, 0, 0, 0, 0, 531, 0, 87, 637, 241,
- 425, 0, 0, 0, 0, 0, 0, 0, 425, 289,
- 289, 306, 0, 358, 0, 0, 0, 306, 241, 0,
- 0, 221
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 418, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 418, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 418, 418, 418, -3, 418, 418, -3, 418, 418,
+ 418, 418, 418, 418, -22, -22, -22, -22, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 49, 49, 49, 49, -22, -22, 221, 221,
+ 221, 221, 221, 49, 221, 221, 221, 92, 221, 92,
+ 92, 337, 337, 0, 0, 0, 0, 0, 485, 92,
+ 0, 0, 0, 0, 0, 0, 485, 485, 485, 0,
+ 0, 0, 0, 0, 485, 0, 0, 0, 337, 92,
+ 0, 420, 420, 178, 420, 420, 0, 0, 0, 485,
+ 485, 0, 508, 0, 0, 0, 0, 691, 0, 0,
+ 0, 0, 0, 455, 119, 682, 0, 39, 0, 0,
+ 0, 0, 0, 490, 39, 26, 0, 26, 0, 0,
+ 455, 455, 455, 0, 490, 490, 0, 0, 67, 490,
+ 0, 0, 0, 67, 35, 0, 35, 0, 0, 0,
+ 178
];
PHP.Parser.prototype.yydefault = [
- 3,32767,32767, 1,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767, 104, 96, 110, 95, 106,
+ 3,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767, 468, 468, 468,32767,32767,32767,32767, 285,
+ 460, 285, 285,32767, 419, 419, 419, 419, 419, 419,
+ 419, 460,32767,32767,32767,32767,32767, 364,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 358, 358, 122, 122, 122, 122, 122, 122, 122, 122,
- 316,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 173, 173, 173,32767, 348, 348, 348, 348, 348, 348,
- 348,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
@@ -3282,2998 +3285,278 @@ PHP.Parser.prototype.yydefault = [
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767, 363,32767,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767, 465,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767, 232, 233,
- 235, 236, 172, 125, 349, 362, 171, 199, 201, 250,
- 200, 177, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 176, 229, 228, 197, 313, 313, 316,
- 32767,32767,32767,32767,32767,32767,32767,32767, 198, 202,
- 204, 203, 219, 220, 217, 218, 175, 221, 222, 223,
- 224, 157, 157, 157, 357, 357,32767, 357,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767, 347, 348, 350,
+ 351, 284, 420, 237, 464, 283, 116, 246, 239, 191,
+ 282, 223, 119, 312, 365, 314, 363, 367, 313, 290,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 288, 289, 366, 344, 343, 342, 310, 311,
+ 287, 315, 317, 287, 316, 333, 334, 331, 332, 335,
+ 336, 337, 338, 339,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767, 269, 269,
+ 269, 269, 324, 325, 229, 229, 229, 229,32767, 270,
+ 32767, 229,32767,32767,32767,32767,32767,32767,32767, 413,
+ 341, 319, 320, 318,32767, 392,32767, 394, 307, 309,
+ 387, 291,32767,32767,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767, 158,32767, 211, 212, 276, 276, 117, 117,
- 117, 117, 117,32767,32767,32767,32767, 284,32767,32767,
- 32767,32767,32767, 286,32767,32767, 206, 207, 205,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767, 285,32767,
- 32767,32767,32767,32767,32767,32767,32767, 334, 321, 272,
- 32767,32767,32767, 265,32767, 107, 109,32767,32767,32767,
- 32767, 302, 339,32767,32767,32767, 17,32767,32767,32767,
- 370, 334,32767,32767, 19,32767,32767,32767,32767, 227,
- 32767, 338, 332,32767,32767,32767,32767,32767,32767, 63,
- 32767,32767,32767,32767,32767, 63, 281, 63,32767, 63,
- 32767, 315, 287,32767, 63, 74,32767, 72,32767,32767,
- 76,32767, 63, 93, 93, 254, 315, 54, 63, 254,
- 63,32767,32767,32767,32767, 4,32767,32767,32767,32767,
+ 32767,32767, 389, 421, 421,32767,32767,32767, 381,32767,
+ 159, 210, 212, 397,32767,32767,32767,32767,32767, 329,
+ 32767,32767,32767,32767,32767,32767, 474,32767,32767,32767,
+ 32767,32767, 421,32767,32767,32767, 321, 322, 323,32767,
+ 32767,32767, 421, 421,32767,32767, 421,32767, 421,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767, 267,32767, 323,32767, 337, 336, 324,32767,
- 265,32767, 215, 194, 266,32767, 196,32767,32767, 270,
- 273,32767,32767,32767, 134,32767, 268, 180,32767,32767,
- 32767,32767, 365,32767,32767, 174,32767,32767,32767, 130,
- 32767, 61, 332,32767,32767, 355,32767,32767, 332, 269,
- 208, 209, 210,32767, 121,32767, 310,32767,32767,32767,
- 32767,32767,32767, 327,32767, 333,32767,32767,32767,32767,
- 111,32767, 302,32767,32767,32767, 75,32767,32767, 178,
- 126,32767,32767, 364,32767,32767,32767, 320,32767,32767,
- 32767,32767,32767, 62,32767,32767, 77,32767,32767,32767,
- 32767, 332,32767,32767,32767, 115,32767, 169,32767,32767,
+ 32767,32767,32767, 163,32767,32767, 395, 395,32767,32767,
+ 163, 390, 163,32767,32767, 163, 163, 176,32767, 174,
+ 174,32767,32767, 178,32767, 435, 178,32767, 163, 196,
+ 196, 373, 165, 231, 231, 373, 163, 231,32767, 231,
+ 32767,32767,32767, 82,32767,32767,32767,32767,32767,32767,
32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767, 332,32767,32767,32767,32767,32767,32767,32767, 4,
- 32767, 151,32767,32767,32767,32767,32767,32767,32767, 25,
- 25, 3, 137, 3, 137, 25, 101, 25, 25, 137,
- 93, 93, 25, 25, 25, 144, 25, 25, 25, 25,
- 25, 25, 25, 25
+ 383,32767,32767,32767, 401,32767, 414, 433, 381,32767,
+ 327, 328, 330,32767, 423, 352, 353, 354, 355, 356,
+ 357, 358, 360,32767, 461, 386,32767,32767,32767,32767,
+ 32767,32767, 84, 108, 245,32767, 473, 84, 384,32767,
+ 473,32767,32767,32767,32767,32767,32767, 286,32767,32767,
+ 32767, 84,32767, 84,32767,32767, 457,32767,32767, 421,
+ 385,32767, 326, 398, 439,32767,32767, 422,32767,32767,
+ 218, 84,32767, 177,32767,32767,32767,32767,32767,32767,
+ 401,32767,32767, 179,32767,32767, 421,32767,32767,32767,
+ 32767,32767, 281,32767,32767,32767,32767,32767, 421,32767,
+ 32767,32767,32767, 222,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767,32767,32767,32767,32767, 82,
+ 60,32767, 263,32767,32767,32767,32767,32767,32767,32767,
+ 32767,32767,32767,32767,32767, 121, 121, 3, 3, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 248, 154, 248, 204, 248, 248,
+ 207, 196, 196, 255
];
PHP.Parser.prototype.yygoto = [
- 141, 141, 173, 173, 173, 173, 173, 173, 173, 173,
- 141, 173, 142, 143, 144, 148, 153, 155, 181, 175,
- 172, 172, 172, 172, 174, 174, 174, 174, 174, 174,
- 174, 168, 169, 170, 171, 179, 757, 758, 392, 760,
- 781, 782, 783, 784, 785, 786, 787, 789, 725, 145,
- 146, 147, 149, 150, 151, 152, 154, 177, 178, 180,
- 196, 208, 209, 210, 211, 212, 213, 214, 215, 217,
- 218, 219, 220, 244, 245, 266, 267, 268, 430, 431,
- 432, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 156, 157, 158, 159, 176, 160, 194, 161,
- 162, 163, 164, 195, 165, 193, 139, 166, 167, 452,
- 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
- 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
- 453, 551, 551, 551, 464, 491, 394, 394, 394, 394,
- 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
- 394, 394, 394, 394, 407, 552, 552, 552, 810, 810,
- 662, 662, 662, 662, 662, 594, 283, 595, 510, 399,
- 399, 567, 679, 632, 849, 850, 863, 660, 714, 426,
- 222, 622, 622, 622, 622, 223, 617, 623, 494, 395,
- 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
- 395, 395, 395, 395, 395, 395, 395, 465, 472, 514,
- 904, 398, 398, 425, 425, 459, 425, 419, 322, 421,
- 421, 393, 396, 412, 422, 428, 460, 463, 473, 481,
- 501, 5, 476, 284, 327, 1, 15, 2, 6, 7,
- 550, 550, 550, 8, 9, 10, 668, 16, 11, 17,
- 12, 18, 13, 19, 14, 704, 328, 881, 881, 643,
- 628, 626, 626, 624, 626, 526, 401, 652, 647, 847,
- 847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
- 437, 438, 441, 447, 477, 479, 497, 290, 910, 910,
- 400, 400, 486, 880, 880, 263, 913, 910, 303, 255,
- 723, 306, 822, 821, 306, 896, 896, 896, 861, 304,
- 323, 410, 913, 913, 897, 316, 420, 769, 658, 559,
- 879, 671, 536, 324, 466, 565, 311, 311, 311, 801,
- 241, 676, 496, 439, 440, 442, 444, 448, 475, 631,
- 858, 311, 285, 286, 603, 495, 712, 0, 406, 321,
- 0, 0, 0, 314, 0, 0, 429, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 163, 163, 135, 135, 135, 146, 148, 179, 164, 161,
+ 145, 161, 161, 161, 162, 162, 162, 162, 162, 162,
+ 162, 145, 157, 158, 159, 160, 176, 174, 177, 410,
+ 411, 299, 412, 415, 416, 417, 418, 419, 420, 421,
+ 422, 857, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 147, 173, 175, 178, 195, 198, 199, 201, 202,
+ 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 232, 233, 251, 252, 253, 316, 317, 318, 462, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
+ 191, 192, 193, 149, 194, 150, 165, 166, 167, 196,
+ 168, 151, 152, 153, 169, 154, 197, 133, 170, 155,
+ 171, 172, 156, 521, 200, 257, 246, 464, 432, 687,
+ 649, 278, 481, 482, 527, 200, 437, 437, 437, 766,
+ 5, 746, 650, 557, 437, 426, 775, 770, 428, 431,
+ 444, 465, 466, 468, 483, 279, 651, 336, 450, 453,
+ 437, 560, 485, 487, 508, 511, 763, 516, 517, 777,
+ 524, 762, 526, 532, 773, 534, 480, 480, 965, 965,
+ 965, 965, 965, 965, 965, 965, 965, 965, 965, 965,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 942, 502, 478, 496, 512, 456,
+ 298, 437, 437, 451, 471, 437, 437, 674, 437, 229,
+ 456, 230, 231, 463, 828, 533, 681, 438, 513, 826,
+ 461, 475, 460, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 301, 674, 674,
+ 443, 454, 1033, 1033, 1034, 1034, 425, 531, 425, 708,
+ 750, 800, 457, 372, 1033, 943, 1034, 1026, 300, 1018,
+ 497, 8, 313, 904, 796, 944, 996, 785, 789, 1007,
+ 285, 670, 1036, 329, 307, 310, 804, 668, 544, 332,
+ 935, 940, 366, 807, 678, 477, 377, 754, 844, 0,
+ 667, 667, 675, 675, 675, 677, 0, 666, 323, 498,
+ 328, 312, 312, 258, 259, 283, 459, 261, 322, 284,
+ 326, 486, 280, 281, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 790, 790, 790, 790, 946, 0, 946,
+ 790, 790, 1004, 790, 1004, 0, 0, 0, 0, 836,
+ 0, 1015, 1015, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 744, 744, 744, 720, 744, 0,
+ 739, 745, 721, 780, 780, 1023, 0, 0, 1002, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 411
+ 0, 806, 0, 806, 0, 0, 0, 0, 1008, 1009
];
PHP.Parser.prototype.yygcheck = [
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 6, 6, 6, 21, 21, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 71, 7, 7, 7, 35, 35,
- 35, 35, 35, 35, 35, 29, 44, 29, 35, 86,
- 86, 12, 12, 12, 12, 12, 12, 12, 12, 75,
- 40, 35, 35, 35, 35, 40, 35, 35, 35, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 36, 36, 36,
- 104, 82, 82, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 13, 42, 42, 42, 2, 13, 2, 13, 13,
- 5, 5, 5, 13, 13, 13, 54, 13, 13, 13,
- 13, 13, 13, 13, 13, 67, 67, 83, 83, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 52, 52, 52, 52, 52, 52, 52, 4, 105, 105,
- 89, 89, 94, 84, 84, 92, 105, 105, 26, 92,
- 71, 4, 91, 91, 4, 84, 84, 84, 97, 30,
- 70, 30, 105, 105, 102, 27, 30, 72, 50, 10,
- 84, 55, 46, 9, 30, 11, 90, 90, 90, 80,
- 30, 56, 30, 85, 85, 85, 85, 85, 85, 43,
- 96, 90, 44, 44, 34, 77, 69, -1, 4, 90,
- -1, -1, -1, 4, -1, -1, 4, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 52, 45, 112, 112, 80, 8, 10,
+ 10, 64, 55, 55, 55, 45, 8, 8, 8, 10,
+ 92, 10, 11, 10, 8, 10, 10, 10, 38, 38,
+ 38, 38, 38, 38, 62, 62, 12, 62, 28, 8,
+ 8, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 28, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 76, 56, 35, 35, 56, 69,
+ 56, 8, 8, 8, 8, 8, 8, 19, 8, 60,
+ 69, 60, 60, 7, 7, 7, 25, 8, 7, 7,
+ 2, 2, 8, 115, 115, 115, 115, 115, 115, 115,
+ 115, 115, 115, 115, 115, 115, 115, 53, 19, 19,
+ 53, 53, 123, 123, 124, 124, 109, 5, 109, 44,
+ 29, 78, 114, 53, 123, 76, 124, 122, 41, 120,
+ 43, 53, 42, 96, 74, 76, 76, 72, 75, 117,
+ 14, 21, 123, 18, 9, 13, 79, 20, 66, 17,
+ 102, 104, 58, 81, 22, 59, 100, 63, 94, -1,
+ 19, 19, 19, 19, 19, 19, -1, 19, 45, 45,
+ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
+ 45, 45, 64, 64, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 52, 52, 52, 52, 52, -1, 52,
+ 52, 52, 80, 52, 80, -1, -1, -1, -1, 92,
+ -1, 80, 80, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 52, 52, 52, 52, 52, -1,
+ 52, 52, 52, 69, 69, 69, -1, -1, 80, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 71
+ -1, 80, -1, 80, -1, -1, -1, -1, 80, 80
];
PHP.Parser.prototype.yygbase = [
- 0, 0, -286, 0, 10, 239, 130, 154, 0, -10,
- 25, -23, -29, -289, 0, -30, 0, 0, 0, 0,
- 0, 83, 0, 0, 0, 0, 245, 84, -11, 142,
- -28, 0, 0, 0, -13, -88, -42, 0, 0, 0,
- -344, 0, -38, -12, -188, 0, 23, 0, 0, 0,
- 66, 0, 247, 0, 205, 24, -18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 13, 0, -15,
- 85, 74, 70, 0, 0, 148, 0, -14, 0, 0,
- -6, 0, -35, 11, 47, 278, -77, 0, 0, 44,
- 68, 43, 38, 72, 94, 0, -16, 109, 0, 0,
- 0, 0, 87, 0, 170, 34, 0
+ 0, 0, -317, 0, 0, 237, 0, 210, -136, 4,
+ 118, 130, 144, -10, 16, 0, 0, -59, 10, -47,
+ -9, 7, -77, -20, 0, 209, 0, 0, -388, 234,
+ 0, 0, 0, 0, 0, 165, 0, 0, 103, 0,
+ 0, 225, 44, 45, 235, 84, 0, 0, 0, 0,
+ 0, 0, 109, -115, 0, -113, -179, 0, -78, -81,
+ -347, 0, -122, -80, -249, 0, -19, 0, 0, 169,
+ -48, 0, 26, 0, 22, 24, -99, 0, 230, -13,
+ 114, -79, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 120, 0, -90, 0, 23, 0, 0, 0,
+ -89, 0, -67, 0, -69, 0, 0, 0, 0, 8,
+ 0, 0, -140, -34, 229, 9, 0, 21, 0, 0,
+ 218, 0, 233, -3, -1, 0
];
PHP.Parser.prototype.yygdefault = [
- -32768, 362, 3, 546, 382, 570, 571, 572, 307, 305,
- 560, 566, 467, 4, 568, 140, 295, 575, 296, 500,
- 577, 414, 579, 580, 308, 309, 415, 315, 216, 593,
- 503, 313, 596, 357, 602, 301, 449, 383, 350, 461,
- 221, 423, 456, 630, 282, 638, 540, 646, 649, 450,
- 657, 352, 433, 434, 667, 672, 677, 680, 334, 325,
- 474, 684, 685, 256, 689, 511, 512, 703, 242, 711,
- 317, 724, 342, 788, 790, 397, 408, 484, 797, 326,
- 800, 384, 385, 386, 387, 435, 818, 815, 289, 866,
- 287, 443, 254, 853, 468, 356, 903, 862, 288, 388,
- 389, 302, 898, 341, 905, 912, 458
+ -32768, 380, 565, 2, 566, 637, 645, 504, 400, 433,
+ 748, 688, 689, 303, 342, 401, 302, 330, 324, 676,
+ 669, 671, 679, 134, 333, 682, 1, 684, 439, 716,
+ 291, 692, 292, 507, 694, 446, 696, 697, 427, 304,
+ 305, 447, 311, 479, 707, 203, 308, 709, 290, 710,
+ 719, 335, 293, 510, 489, 469, 501, 402, 363, 476,
+ 228, 455, 473, 753, 277, 761, 549, 769, 772, 403,
+ 404, 470, 784, 368, 794, 788, 960, 319, 799, 805,
+ 991, 808, 811, 349, 331, 327, 815, 816, 4, 820,
+ 522, 523, 835, 239, 843, 856, 347, 923, 925, 441,
+ 374, 936, 360, 334, 939, 995, 354, 405, 364, 952,
+ 260, 282, 245, 406, 423, 249, 407, 365, 998, 314,
+ 1019, 424, 1027, 1035, 275, 474
];
PHP.Parser.prototype.yylhs = [
- 0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 8, 8, 10, 10, 10,
- 10, 9, 9, 11, 13, 13, 14, 14, 14, 14,
+ 0, 1, 3, 3, 2, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 33, 33,
- 34, 27, 27, 30, 30, 6, 7, 7, 7, 37,
- 37, 37, 38, 38, 41, 41, 39, 39, 42, 42,
- 22, 22, 29, 29, 32, 32, 31, 31, 43, 23,
- 23, 23, 23, 44, 44, 45, 45, 46, 46, 20,
- 20, 16, 16, 47, 18, 18, 48, 17, 17, 19,
- 19, 36, 36, 49, 49, 50, 50, 51, 51, 51,
- 51, 52, 52, 53, 53, 54, 54, 24, 24, 55,
- 55, 55, 25, 25, 56, 56, 40, 40, 57, 57,
- 57, 57, 62, 62, 63, 63, 64, 64, 64, 64,
- 65, 66, 66, 61, 61, 58, 58, 60, 60, 68,
- 68, 67, 67, 67, 67, 67, 67, 59, 59, 69,
- 69, 26, 26, 21, 21, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 71, 77, 77, 79, 79, 80, 81,
- 81, 81, 81, 81, 81, 86, 86, 35, 35, 35,
- 72, 72, 87, 87, 82, 82, 88, 88, 88, 88,
- 88, 73, 73, 73, 76, 76, 76, 78, 78, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 12, 12, 12, 12, 12, 12, 74,
- 74, 74, 74, 94, 94, 96, 96, 95, 95, 97,
- 97, 28, 28, 28, 28, 99, 99, 98, 98, 98,
- 98, 98, 100, 100, 84, 84, 89, 89, 83, 83,
- 101, 101, 101, 101, 90, 90, 90, 90, 85, 85,
- 91, 91, 91, 70, 70, 102, 102, 102, 75, 75,
- 103, 103, 104, 104, 104, 104, 92, 92, 92, 92,
- 105, 105, 105, 105, 105, 105, 105, 106, 106, 106
+ 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
+ 7, 7, 8, 8, 9, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 14, 14, 15, 15,
+ 15, 15, 17, 17, 13, 13, 18, 18, 19, 19,
+ 20, 20, 21, 21, 16, 16, 22, 24, 24, 25,
+ 26, 26, 28, 27, 27, 27, 27, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 10, 10, 48, 48, 51, 51, 50, 49,
+ 49, 42, 42, 53, 53, 54, 54, 11, 12, 12,
+ 12, 57, 57, 57, 58, 58, 61, 61, 59, 59,
+ 62, 62, 36, 36, 44, 44, 47, 47, 47, 46,
+ 46, 63, 37, 37, 37, 37, 64, 64, 65, 65,
+ 66, 66, 34, 34, 30, 30, 67, 32, 32, 68,
+ 31, 31, 33, 33, 43, 43, 43, 43, 55, 55,
+ 71, 71, 72, 72, 74, 74, 75, 75, 75, 73,
+ 73, 56, 56, 76, 76, 77, 77, 78, 78, 78,
+ 39, 39, 79, 40, 40, 81, 81, 60, 60, 82,
+ 82, 82, 82, 87, 87, 88, 88, 89, 89, 89,
+ 89, 89, 90, 91, 91, 86, 86, 83, 83, 85,
+ 85, 93, 93, 92, 92, 92, 92, 92, 92, 84,
+ 84, 94, 94, 41, 41, 35, 35, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 101, 95, 95, 100, 100, 103, 103, 104, 105, 105,
+ 105, 109, 109, 52, 52, 52, 96, 96, 107, 107,
+ 97, 97, 99, 99, 99, 102, 102, 113, 113, 70,
+ 115, 115, 115, 98, 98, 98, 98, 98, 98, 98,
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 38,
+ 38, 111, 111, 111, 106, 106, 106, 116, 116, 116,
+ 116, 116, 116, 45, 45, 45, 80, 80, 80, 118,
+ 110, 110, 110, 110, 110, 110, 108, 108, 108, 117,
+ 117, 117, 117, 69, 119, 119, 120, 120, 120, 120,
+ 120, 114, 121, 121, 122, 122, 122, 122, 122, 112,
+ 112, 112, 112, 124, 123, 123, 123, 123, 123, 123,
+ 123, 125, 125, 125
];
PHP.Parser.prototype.yylen = [
- 1, 1, 2, 0, 1, 3, 1, 1, 1, 1,
- 3, 5, 4, 3, 3, 3, 1, 1, 3, 2,
- 4, 3, 1, 3, 2, 0, 1, 1, 1, 1,
- 3, 7, 10, 5, 7, 9, 5, 2, 3, 2,
- 3, 2, 3, 3, 3, 3, 1, 2, 5, 7,
- 8, 10, 5, 1, 5, 3, 3, 2, 1, 2,
- 8, 1, 3, 0, 1, 9, 7, 6, 5, 1,
- 2, 2, 0, 2, 0, 2, 0, 2, 1, 3,
- 1, 4, 1, 4, 1, 4, 1, 3, 3, 3,
- 4, 4, 5, 0, 2, 4, 3, 1, 1, 1,
- 4, 0, 2, 5, 0, 2, 6, 0, 2, 0,
- 3, 1, 0, 1, 3, 3, 5, 0, 1, 1,
- 1, 1, 0, 1, 3, 1, 2, 3, 1, 1,
- 2, 4, 3, 1, 1, 3, 2, 0, 3, 3,
- 8, 3, 1, 3, 0, 2, 4, 5, 4, 4,
- 3, 1, 1, 1, 3, 1, 1, 0, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 3, 1,
- 3, 3, 1, 0, 1, 1, 6, 3, 4, 4,
- 1, 2, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 2, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 2, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 5, 4,
- 4, 4, 2, 2, 4, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 4, 3, 3,
- 2, 9, 10, 3, 0, 4, 1, 3, 2, 4,
- 6, 8, 4, 4, 4, 1, 1, 1, 2, 3,
- 1, 1, 1, 1, 1, 1, 0, 3, 3, 4,
- 4, 0, 2, 3, 0, 1, 1, 0, 3, 1,
+ 1, 1, 2, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 2, 1, 1, 3, 2, 2, 4, 3, 1,
- 3, 3, 3, 0, 2, 0, 1, 3, 1, 3,
- 1, 1, 1, 1, 1, 6, 4, 3, 6, 4,
- 4, 4, 1, 3, 1, 2, 1, 1, 4, 1,
- 3, 6, 4, 4, 4, 4, 1, 4, 0, 1,
- 1, 3, 1, 3, 1, 1, 4, 0, 0, 2,
- 3, 1, 3, 1, 4, 2, 2, 2, 1, 2,
- 1, 4, 3, 3, 3, 6, 3, 1, 1, 1
+ 1, 1, 1, 3, 1, 1, 1, 1, 1, 3,
+ 5, 4, 3, 4, 2, 3, 1, 1, 7, 8,
+ 6, 7, 3, 1, 3, 1, 3, 1, 1, 3,
+ 1, 2, 1, 2, 3, 1, 3, 3, 1, 3,
+ 2, 0, 1, 1, 1, 1, 1, 3, 7, 10,
+ 5, 7, 9, 5, 3, 3, 3, 3, 3, 3,
+ 1, 2, 5, 7, 9, 5, 6, 3, 3, 2,
+ 2, 1, 1, 1, 0, 2, 1, 3, 8, 0,
+ 4, 1, 3, 0, 1, 0, 1, 10, 7, 6,
+ 5, 1, 2, 2, 0, 2, 0, 2, 0, 2,
+ 1, 3, 1, 4, 1, 4, 1, 1, 4, 1,
+ 3, 3, 3, 4, 4, 5, 0, 2, 4, 3,
+ 1, 1, 1, 4, 0, 2, 5, 0, 2, 6,
+ 0, 2, 0, 3, 1, 2, 1, 1, 1, 0,
+ 1, 3, 4, 6, 1, 2, 1, 1, 1, 0,
+ 1, 0, 2, 2, 3, 1, 3, 1, 2, 2,
+ 3, 1, 1, 3, 1, 1, 3, 2, 0, 3,
+ 4, 9, 3, 1, 3, 0, 2, 4, 5, 4,
+ 4, 4, 3, 1, 1, 1, 3, 1, 1, 0,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
+ 3, 1, 3, 3, 1, 0, 1, 1, 3, 3,
+ 3, 4, 1, 2, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 2, 2, 2,
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 5, 4, 3, 4, 4, 2, 2, 4,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 1, 3, 2, 1, 2, 4, 2, 10, 11,
+ 7, 3, 2, 0, 4, 1, 3, 2, 2, 2,
+ 4, 1, 1, 1, 2, 3, 1, 1, 1, 1,
+ 0, 3, 0, 1, 1, 0, 1, 1, 3, 3,
+ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 3, 2, 3, 3, 0,
+ 1, 1, 3, 1, 1, 3, 1, 1, 4, 4,
+ 4, 1, 4, 1, 1, 3, 1, 4, 2, 3,
+ 1, 4, 4, 3, 3, 3, 1, 3, 1, 1,
+ 3, 1, 1, 4, 3, 1, 1, 1, 3, 3,
+ 0, 1, 3, 1, 3, 1, 4, 2, 0, 2,
+ 2, 1, 2, 1, 1, 4, 3, 3, 3, 6,
+ 3, 1, 1, 1
];
-
-
-
-
-PHP.Parser.prototype.yyn0 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn1 = function ( attributes ) {
- this.yyval = this.Stmt_Namespace_postprocess(this.yyastk[ this.stackPos-(1-1) ]);
-};
-
-PHP.Parser.prototype.yyn2 = function ( attributes ) {
- if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; };
-};
-
-PHP.Parser.prototype.yyn3 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn4 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn5 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn6 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn7 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn8 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn9 = function ( attributes ) {
- this.yyval = this.Node_Stmt_HaltCompiler(attributes);
-};
-
-PHP.Parser.prototype.yyn10 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(3-2) ], attributes), null, attributes);
-};
-
-PHP.Parser.prototype.yyn11 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(5-2) ], attributes), this.yyastk[ this.stackPos-(5-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn12 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Namespace(null, this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn13 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Use(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn14 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Const(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn15 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn16 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn17 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes), null, attributes);
-};
-
-PHP.Parser.prototype.yyn18 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(3-1) ], attributes), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn19 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(2-2) ], attributes), null, attributes);
-};
-
-PHP.Parser.prototype.yyn20 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(4-2) ], attributes), this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn21 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn22 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn23 = function ( attributes ) {
- this.yyval = this.Node_Const(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn24 = function ( attributes ) {
- if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; };
-};
-
-PHP.Parser.prototype.yyn25 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn26 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn27 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn28 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn29 = function ( attributes ) {
- throw new Error('__halt_compiler() can only be used from the outermost scope');
-};
-
-PHP.Parser.prototype.yyn30 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn31 = function ( attributes ) {
- this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(7-3) ], {'stmts': Array.isArray(this.yyastk[ this.stackPos-(7-5) ]) ? this.yyastk[ this.stackPos-(7-5) ] : [this.yyastk[ this.stackPos-(7-5) ]], 'elseifs': this.yyastk[ this.stackPos-(7-6) ], 'Else': this.yyastk[ this.stackPos-(7-7) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn32 = function ( attributes ) {
- this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(10-3) ], {'stmts': this.yyastk[ this.stackPos-(10-6) ], 'elseifs': this.yyastk[ this.stackPos-(10-7) ], 'else': this.yyastk[ this.stackPos-(10-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn33 = function ( attributes ) {
- this.yyval = this.Node_Stmt_While(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn34 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Do(this.yyastk[ this.stackPos-(7-5) ], Array.isArray(this.yyastk[ this.stackPos-(7-2) ]) ? this.yyastk[ this.stackPos-(7-2) ] : [this.yyastk[ this.stackPos-(7-2) ]], attributes);
-};
-
-PHP.Parser.prototype.yyn35 = function ( attributes ) {
- this.yyval = this.Node_Stmt_For({'init': this.yyastk[ this.stackPos-(9-3) ], 'cond': this.yyastk[ this.stackPos-(9-5) ], 'loop': this.yyastk[ this.stackPos-(9-7) ], 'stmts': this.yyastk[ this.stackPos-(9-9) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn36 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Switch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn37 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Break(null, attributes);
-};
-
-PHP.Parser.prototype.yyn38 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Break(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn39 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Continue(null, attributes);
-};
-
-PHP.Parser.prototype.yyn40 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Continue(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn41 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Return(null, attributes);
-};
-
-PHP.Parser.prototype.yyn42 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Return(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn43 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Global(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn44 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Static(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn45 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Echo(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn46 = function ( attributes ) {
- this.yyval = this.Node_Stmt_InlineHTML(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn47 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn48 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Unset(this.yyastk[ this.stackPos-(5-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn49 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(7-3) ], this.yyastk[ this.stackPos-(7-5) ], {'keyVar': null, 'byRef': false, 'stmts': this.yyastk[ this.stackPos-(7-7) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn50 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-6) ], {'keyVar': null, 'byRef': true, 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn51 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(10-3) ], this.yyastk[ this.stackPos-(10-8) ], {'keyVar': this.yyastk[ this.stackPos-(10-5) ], 'byRef': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-10) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn52 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Declare(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn53 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn54 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TryCatch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn55 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Throw(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn56 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Goto(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn57 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Label(this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn58 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn59 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn60 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Catch(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-4) ].substring( 1 ), this.yyastk[ this.stackPos-(8-7) ], attributes);
-};
-
-PHP.Parser.prototype.yyn61 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn62 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn63 = function ( attributes ) {
- this.yyval = false;
-};
-
-PHP.Parser.prototype.yyn64 = function ( attributes ) {
- this.yyval = true;
-};
-
-PHP.Parser.prototype.yyn65 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Function(this.yyastk[ this.stackPos-(9-3) ], {'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-5) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn66 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Class(this.yyastk[ this.stackPos-(7-2) ], {'type': this.yyastk[ this.stackPos-(7-1) ], 'Extends': this.yyastk[ this.stackPos-(7-3) ], 'Implements': this.yyastk[ this.stackPos-(7-4) ], 'stmts': this.yyastk[ this.stackPos-(7-6) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn67 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Interface(this.yyastk[ this.stackPos-(6-2) ], {'Extends': this.yyastk[ this.stackPos-(6-3) ], 'stmts': this.yyastk[ this.stackPos-(6-5) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn68 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Trait(this.yyastk[ this.stackPos-(5-2) ], this.yyastk[ this.stackPos-(5-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn69 = function ( attributes ) {
- this.yyval = 0;
-};
-
-PHP.Parser.prototype.yyn70 = function ( attributes ) {
- this.yyval = this.MODIFIER_ABSTRACT;
-};
-
-PHP.Parser.prototype.yyn71 = function ( attributes ) {
- this.yyval = this.MODIFIER_FINAL;
-};
-
-PHP.Parser.prototype.yyn72 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn73 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn74 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn75 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn76 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn77 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn78 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn79 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn80 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn81 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn82 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn83 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn84 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn85 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn86 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn87 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn88 = function ( attributes ) {
- this.yyval = this.Node_Stmt_DeclareDeclare(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn89 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn90 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-3) ];
-};
-
-PHP.Parser.prototype.yyn91 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn92 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(5-3) ];
-};
-
-PHP.Parser.prototype.yyn93 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn94 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn95 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Case(this.yyastk[ this.stackPos-(4-2) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn96 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Case(null, this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn97 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn98 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn99 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn100 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn101 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn102 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn103 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(5-3) ], Array.isArray(this.yyastk[ this.stackPos-(5-5) ]) ? this.yyastk[ this.stackPos-(5-5) ] : [this.yyastk[ this.stackPos-(5-5) ]], attributes);
-};
-
-PHP.Parser.prototype.yyn104 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn105 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn106 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes);
-};
-
-PHP.Parser.prototype.yyn107 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn108 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Else(Array.isArray(this.yyastk[ this.stackPos-(2-2) ]) ? this.yyastk[ this.stackPos-(2-2) ] : [this.yyastk[ this.stackPos-(2-2) ]], attributes);
-};
-
-PHP.Parser.prototype.yyn109 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn110 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Else(this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn111 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn112 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn113 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn114 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn115 = function ( attributes ) {
- this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), null, this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn116 = function ( attributes ) {
- this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(5-3) ].substring( 1 ), this.yyastk[ this.stackPos-(5-5) ], this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn117 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn118 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn119 = function ( attributes ) {
- this.yyval = 'array';
-};
-
-PHP.Parser.prototype.yyn120 = function ( attributes ) {
- this.yyval = 'callable';
-};
-
-PHP.Parser.prototype.yyn121 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn122 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn123 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn124 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn125 = function ( attributes ) {
- this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(1-1) ], false, attributes);
-};
-
-PHP.Parser.prototype.yyn126 = function ( attributes ) {
- this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(2-2) ], true, attributes);
-};
-
-PHP.Parser.prototype.yyn127 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn128 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn129 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn130 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn131 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn132 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn133 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn134 = function ( attributes ) {
- this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes);
-};
-
-PHP.Parser.prototype.yyn135 = function ( attributes ) {
- this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn136 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn137 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn138 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Property(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn139 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ClassConst(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn140 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ClassMethod(this.yyastk[ this.stackPos-(8-4) ], {'type': this.yyastk[ this.stackPos-(8-1) ], 'byRef': this.yyastk[ this.stackPos-(8-3) ], 'params': this.yyastk[ this.stackPos-(8-6) ], 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn141 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUse(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn142 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn143 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn144 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn145 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn146 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Precedence(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn147 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(5-1) ][0], this.yyastk[ this.stackPos-(5-1) ][1], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn148 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], null, attributes);
-};
-
-PHP.Parser.prototype.yyn149 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], null, this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn150 = function ( attributes ) {
- this.yyval = array(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ]);
-};
-
-PHP.Parser.prototype.yyn151 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn152 = function ( attributes ) {
- this.yyval = array(null, this.yyastk[ this.stackPos-(1-1) ]);
-};
-
-PHP.Parser.prototype.yyn153 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn154 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn155 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn156 = function ( attributes ) {
- this.yyval = this.MODIFIER_PUBLIC;
-};
-
-PHP.Parser.prototype.yyn157 = function ( attributes ) {
- this.yyval = this.MODIFIER_PUBLIC;
-};
-
-PHP.Parser.prototype.yyn158 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn159 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn160 = function ( attributes ) {
- this.Stmt_Class_verifyModifier(this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]); this.yyval = this.yyastk[ this.stackPos-(2-1) ] | this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn161 = function ( attributes ) {
- this.yyval = this.MODIFIER_PUBLIC;
-};
-
-PHP.Parser.prototype.yyn162 = function ( attributes ) {
- this.yyval = this.MODIFIER_PROTECTED;
-};
-
-PHP.Parser.prototype.yyn163 = function ( attributes ) {
- this.yyval = this.MODIFIER_PRIVATE;
-};
-
-PHP.Parser.prototype.yyn164 = function ( attributes ) {
- this.yyval = this.MODIFIER_STATIC;
-};
-
-PHP.Parser.prototype.yyn165 = function ( attributes ) {
- this.yyval = this.MODIFIER_ABSTRACT;
-};
-
-PHP.Parser.prototype.yyn166 = function ( attributes ) {
- this.yyval = this.MODIFIER_FINAL;
-};
-
-PHP.Parser.prototype.yyn167 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn168 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn169 = function ( attributes ) {
- this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes);
-};
-
-PHP.Parser.prototype.yyn170 = function ( attributes ) {
- this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn171 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn172 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn173 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn174 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn175 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn176 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignList(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes);
-};
-
-PHP.Parser.prototype.yyn177 = function ( attributes ) {
- this.yyval = this.Node_Expr_Assign(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn178 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn179 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn180 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn181 = function ( attributes ) {
- this.yyval = this.Node_Expr_Clone(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn182 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignPlus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn183 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignMinus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn184 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignMul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn185 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignDiv(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn186 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignConcat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn187 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignMod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn188 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignBitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn189 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignBitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn190 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignBitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn191 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn192 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn193 = function ( attributes ) {
- this.yyval = this.Node_Expr_PostInc(this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn194 = function ( attributes ) {
- this.yyval = this.Node_Expr_PreInc(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn195 = function ( attributes ) {
- this.yyval = this.Node_Expr_PostDec(this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn196 = function ( attributes ) {
- this.yyval = this.Node_Expr_PreDec(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn197 = function ( attributes ) {
- this.yyval = this.Node_Expr_BooleanOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn198 = function ( attributes ) {
- this.yyval = this.Node_Expr_BooleanAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn199 = function ( attributes ) {
- this.yyval = this.Node_Expr_LogicalOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn200 = function ( attributes ) {
- this.yyval = this.Node_Expr_LogicalAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn201 = function ( attributes ) {
- this.yyval = this.Node_Expr_LogicalXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn202 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn203 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn204 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn205 = function ( attributes ) {
- this.yyval = this.Node_Expr_Concat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn206 = function ( attributes ) {
- this.yyval = this.Node_Expr_Plus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn207 = function ( attributes ) {
- this.yyval = this.Node_Expr_Minus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn208 = function ( attributes ) {
- this.yyval = this.Node_Expr_Mul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn209 = function ( attributes ) {
- this.yyval = this.Node_Expr_Div(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn210 = function ( attributes ) {
- this.yyval = this.Node_Expr_Mod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn211 = function ( attributes ) {
- this.yyval = this.Node_Expr_ShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn212 = function ( attributes ) {
- this.yyval = this.Node_Expr_ShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn213 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn214 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn215 = function ( attributes ) {
- this.yyval = this.Node_Expr_BooleanNot(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn216 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseNot(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn217 = function ( attributes ) {
- this.yyval = this.Node_Expr_Identical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn218 = function ( attributes ) {
- this.yyval = this.Node_Expr_NotIdentical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn219 = function ( attributes ) {
- this.yyval = this.Node_Expr_Equal(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn220 = function ( attributes ) {
- this.yyval = this.Node_Expr_NotEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn221 = function ( attributes ) {
- this.yyval = this.Node_Expr_Smaller(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn222 = function ( attributes ) {
- this.yyval = this.Node_Expr_SmallerOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn223 = function ( attributes ) {
- this.yyval = this.Node_Expr_Greater(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn224 = function ( attributes ) {
- this.yyval = this.Node_Expr_GreaterOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn225 = function ( attributes ) {
- this.yyval = this.Node_Expr_Instanceof(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn226 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn227 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn228 = function ( attributes ) {
- this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn229 = function ( attributes ) {
- this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(4-1) ], null, this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn230 = function ( attributes ) {
- this.yyval = this.Node_Expr_Isset(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn231 = function ( attributes ) {
- this.yyval = this.Node_Expr_Empty(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn232 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Include", attributes);
-};
-
-PHP.Parser.prototype.yyn233 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_IncludeOnce", attributes);
-};
-
-PHP.Parser.prototype.yyn234 = function ( attributes ) {
- this.yyval = this.Node_Expr_Eval(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn235 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Require", attributes);
-};
-
-PHP.Parser.prototype.yyn236 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_RequireOnce", attributes);
-};
-
-PHP.Parser.prototype.yyn237 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Int(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn238 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Double(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn239 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_String(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn240 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Array(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn241 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Object(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn242 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Bool(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn243 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Unset(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn244 = function ( attributes ) {
- this.yyval = this.Node_Expr_Exit(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn245 = function ( attributes ) {
- this.yyval = this.Node_Expr_ErrorSuppress(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn246 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn247 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn248 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn249 = function ( attributes ) {
- this.yyval = this.Node_Expr_ShellExec(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn250 = function ( attributes ) {
- this.yyval = this.Node_Expr_Print(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn251 = function ( attributes ) {
- this.yyval = this.Node_Expr_Closure({'static': false, 'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-4) ], 'uses': this.yyastk[ this.stackPos-(9-6) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn252 = function ( attributes ) {
- this.yyval = this.Node_Expr_Closure({'static': true, 'byRef': this.yyastk[ this.stackPos-(10-3) ], 'params': this.yyastk[ this.stackPos-(10-5) ], 'uses': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-9) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn253 = function ( attributes ) {
- this.yyval = this.Node_Expr_New(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn254 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn255 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-3) ];
-};
-
-PHP.Parser.prototype.yyn256 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn257 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn258 = function ( attributes ) {
- this.yyval = this.Node_Expr_ClosureUse(this.yyastk[ this.stackPos-(2-2) ].substring( 1 ), this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn259 = function ( attributes ) {
- this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn260 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn261 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(8-1) ], this.yyastk[ this.stackPos-(8-4) ], this.yyastk[ this.stackPos-(8-7) ], attributes);
-};
-
-PHP.Parser.prototype.yyn262 = function ( attributes ) {
-
- if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_StaticPropertyFetch") {
- this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(4-1) ].Class, this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].name, attributes), this.yyastk[ this.stackPos-(4-3) ], attributes);
- } else if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_ArrayDimFetch") {
- var tmp = this.yyastk[ this.stackPos-(4-1) ];
- while (tmp.variable.type === "Node_Expr_ArrayDimFetch") {
- tmp = tmp.variable;
- }
-
- this.yyval = this.Node_Expr_StaticCall(tmp.variable.Class, this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
- tmp.variable = this.Node_Expr_Variable(tmp.variable.name, attributes);
- } else {
- throw new Exception;
- }
-
-};
-
-PHP.Parser.prototype.yyn263 = function ( attributes ) {
- this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn264 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn265 = function ( attributes ) {
- this.yyval = this.Node_Name('static', attributes);
-};
-
-PHP.Parser.prototype.yyn266 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn267 = function ( attributes ) {
- this.yyval = this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn268 = function ( attributes ) {
- this.yyval = this.Node_Name_FullyQualified(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn269 = function ( attributes ) {
- this.yyval = this.Node_Name_Relative(this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn270 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn271 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn272 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn273 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn274 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn275 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn276 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn277 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn278 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn279 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn280 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn281 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn282 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn283 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn284 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn285 = function ( attributes ) {
- this.yyval = [this.Scalar_String_parseEscapeSequences(this.yyastk[ this.stackPos-(1-1) ], '`')];
-};
-
-PHP.Parser.prototype.yyn286 = function ( attributes ) {
- ; this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn287 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn288 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn289 = function ( attributes ) {
- this.yyval = this.Node_Scalar_LNumber(this.Scalar_LNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes);
-};
-
-PHP.Parser.prototype.yyn290 = function ( attributes ) {
- this.yyval = this.Node_Scalar_DNumber(this.Scalar_DNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes);
-};
-
-PHP.Parser.prototype.yyn291 = function ( attributes ) {
- this.yyval = this.Scalar_String_create(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn292 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_LineConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn293 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_FileConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn294 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_DirConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn295 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_ClassConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn296 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_TraitConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn297 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_MethodConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn298 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_FuncConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn299 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_NSConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn300 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String(this.Scalar_String_parseDocString(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ]), attributes);
-};
-
-PHP.Parser.prototype.yyn301 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String('', attributes);
-};
-
-PHP.Parser.prototype.yyn302 = function ( attributes ) {
- this.yyval = this.Node_Expr_ConstFetch(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn303 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn304 = function ( attributes ) {
- this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn305 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn306 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn307 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn308 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn309 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn310 = function ( attributes ) {
- this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn311 = function ( attributes ) {
- ; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn312 = function ( attributes ) {
- ; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn313 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn314 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn315 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn316 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn317 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn318 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn319 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes);
-};
-
-PHP.Parser.prototype.yyn320 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes);
-};
-
-PHP.Parser.prototype.yyn321 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn322 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn323 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn324 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn325 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(6-2) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn326 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn327 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn328 = function ( attributes ) {
- this.yyval = this.Node_Expr_MethodCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn329 = function ( attributes ) {
- this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn330 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn331 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn332 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn333 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn334 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn335 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn336 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn337 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn338 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn339 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn340 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn341 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn342 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn343 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn344 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn345 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn346 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn347 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn348 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn349 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn350 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn351 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn352 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn353 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn354 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn355 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn356 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-3) ];
-};
-
-PHP.Parser.prototype.yyn357 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn358 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn359 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn360 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn361 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn362 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes);
-};
-
-PHP.Parser.prototype.yyn363 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes);
-};
-
-PHP.Parser.prototype.yyn364 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(4-4) ], this.yyastk[ this.stackPos-(4-1) ], true, attributes);
-};
-
-PHP.Parser.prototype.yyn365 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(2-2) ], null, true, attributes);
-};
-
-PHP.Parser.prototype.yyn366 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn367 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn368 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn369 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]];
-};
-
-PHP.Parser.prototype.yyn370 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn371 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn372 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn373 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn374 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn375 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(6-2) ], attributes), this.yyastk[ this.stackPos-(6-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn376 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn377 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn378 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn379 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-
-PHP.Parser.prototype.Stmt_Namespace_postprocess = function( a ) {
- return a;
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Echo = function() {
- return {
- type: "Node_Stmt_Echo",
- exprs: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_If = function() {
- return {
- type: "Node_Stmt_If",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ].stmts,
- elseifs: arguments[ 1 ].elseifs,
- Else: arguments[ 1 ].Else || null,
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_For = function() {
-
- return {
- type: "Node_Stmt_For",
- init: arguments[ 0 ].init,
- cond: arguments[ 0 ].cond,
- loop: arguments[ 0 ].loop,
- stmts: arguments[ 0 ].stmts,
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Function = function() {
- return {
- type: "Node_Stmt_Function",
- name: arguments[ 0 ],
- byRef: arguments[ 1 ].byRef,
- params: arguments[ 1 ].params,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Stmt_Class_verifyModifier = function() {
-
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Namespace = function() {
- return {
- type: "Node_Stmt_Namespace",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_Use = function() {
- return {
- type: "Node_Stmt_Use",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_UseUse = function() {
- return {
- type: "Node_Stmt_UseUse",
- name: arguments[ 0 ],
- as: arguments[1],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_TraitUseAdaptation_Precedence = function() {
- return {
- type: "Node_Stmt_TraitUseAdaptation_Precedence",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_TraitUseAdaptation_Alias = function() {
- return {
- type: "Node_Stmt_TraitUseAdaptation_Alias",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_Trait = function() {
- return {
- type: "Node_Stmt_Trait",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_TraitUse = function() {
- return {
- type: "Node_Stmt_TraitUse",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_Class = function() {
- return {
- type: "Node_Stmt_Class",
- name: arguments[ 0 ],
- Type: arguments[ 1 ].type,
- Extends: arguments[ 1 ].Extends,
- Implements: arguments[ 1 ].Implements,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_ClassMethod = function() {
- return {
- type: "Node_Stmt_ClassMethod",
- name: arguments[ 0 ],
- Type: arguments[ 1 ].type,
- byRef: arguments[ 1 ].byRef,
- params: arguments[ 1 ].params,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_ClassConst = function() {
- return {
- type: "Node_Stmt_ClassConst",
- consts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Interface = function() {
- return {
- type: "Node_Stmt_Interface",
- name: arguments[ 0 ],
- Extends: arguments[ 1 ].Extends,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Throw = function() {
- return {
- type: "Node_Stmt_Throw",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Catch = function() {
- return {
- type: "Node_Stmt_Catch",
- Type: arguments[ 0 ],
- variable: arguments[ 1 ],
- stmts: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_TryCatch = function() {
- return {
- type: "Node_Stmt_TryCatch",
- stmts: arguments[ 0 ],
- catches: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Foreach = function() {
- return {
- type: "Node_Stmt_Foreach",
- expr: arguments[ 0 ],
- valueVar: arguments[ 1 ],
- keyVar: arguments[ 2 ].keyVar,
- byRef: arguments[ 2 ].byRef,
- stmts: arguments[ 2 ].stmts,
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_While = function() {
- return {
- type: "Node_Stmt_While",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Do = function() {
- return {
- type: "Node_Stmt_Do",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Break = function() {
- return {
- type: "Node_Stmt_Break",
- num: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Continue = function() {
- return {
- type: "Node_Stmt_Continue",
- num: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Return = function() {
- return {
- type: "Node_Stmt_Return",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Case = function() {
- return {
- type: "Node_Stmt_Case",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Switch = function() {
- return {
- type: "Node_Stmt_Switch",
- cond: arguments[ 0 ],
- cases: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Else = function() {
-
- return {
- type: "Node_Stmt_Else",
- stmts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_ElseIf = function() {
- return {
- type: "Node_Stmt_ElseIf",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_InlineHTML = function() {
- return {
- type: "Node_Stmt_InlineHTML",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_StaticVar = function() {
- return {
- type: "Node_Stmt_StaticVar",
- name: arguments[ 0 ],
- def: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Static = function() {
- return {
- type: "Node_Stmt_Static",
- vars: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Global = function() {
- return {
- type: "Node_Stmt_Global",
- vars: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_PropertyProperty = function() {
- return {
- type: "Node_Stmt_PropertyProperty",
- name: arguments[ 0 ],
- def: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Property = function() {
- return {
- type: "Node_Stmt_Property",
- Type: arguments[ 0 ],
- props: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Unset = function() {
- return {
- type: "Node_Stmt_Unset",
- variables: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Variable = function( a ) {
- return {
- type: "Node_Expr_Variable",
- name: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-};
-
-PHP.Parser.prototype.Node_Expr_FuncCall = function() {
-
- return {
- type: "Node_Expr_FuncCall",
- func: arguments[ 0 ],
- args: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_MethodCall = function() {
-
- return {
- type: "Node_Expr_MethodCall",
- variable: arguments[ 0 ],
- name: arguments[ 1 ],
- args: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_StaticCall = function() {
-
- return {
- type: "Node_Expr_StaticCall",
- Class: arguments[ 0 ],
- func: arguments[ 1 ],
- args: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Ternary = function() {
-
- return {
- type: "Node_Expr_Ternary",
- cond: arguments[ 0 ],
- If: arguments[ 1 ],
- Else: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignList = function() {
-
- return {
- type: "Node_Expr_AssignList",
- assignList: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Assign = function() {
-
- return {
- type: "Node_Expr_Assign",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignConcat = function() {
-
- return {
- type: "Node_Expr_AssignConcat",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignMinus = function() {
-
- return {
- type: "Node_Expr_AssignMinus",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignPlus = function() {
-
- return {
- type: "Node_Expr_AssignPlus",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignDiv = function() {
-
- return {
- type: "Node_Expr_AssignDiv",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignRef = function() {
-
- return {
- type: "Node_Expr_AssignRef",
- variable: arguments[ 0 ],
- refVar: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignMul = function() {
-
- return {
- type: "Node_Expr_AssignMul",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignMod = function() {
-
- return {
- type: "Node_Expr_AssignMod",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Plus = function() {
-
- return {
- type: "Node_Expr_Plus",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Minus = function() {
-
- return {
- type: "Node_Expr_Minus",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Mul = function() {
-
- return {
- type: "Node_Expr_Mul",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Div = function() {
-
- return {
- type: "Node_Expr_Div",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Mod = function() {
-
- return {
- type: "Node_Expr_Mod",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Greater = function() {
-
- return {
- type: "Node_Expr_Greater",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Equal = function() {
-
- return {
- type: "Node_Expr_Equal",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_NotEqual = function() {
-
- return {
- type: "Node_Expr_NotEqual",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Identical = function() {
-
- return {
- type: "Node_Expr_Identical",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_NotIdentical = function() {
-
- return {
- type: "Node_Expr_NotIdentical",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_GreaterOrEqual = function() {
-
- return {
- type: "Node_Expr_GreaterOrEqual",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_SmallerOrEqual = function() {
-
- return {
- type: "Node_Expr_SmallerOrEqual",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Concat = function() {
-
- return {
- type: "Node_Expr_Concat",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Smaller = function() {
-
- return {
- type: "Node_Expr_Smaller",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PostInc = function() {
-
- return {
- type: "Node_Expr_PostInc",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PostDec = function() {
-
- return {
- type: "Node_Expr_PostDec",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PreInc = function() {
-
- return {
- type: "Node_Expr_PreInc",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PreDec = function() {
-
- return {
- type: "Node_Expr_PreDec",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Include = function() {
- return {
- expr: arguments[ 0 ],
- type: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Expr_ArrayDimFetch = function() {
-
- return {
- type: "Node_Expr_ArrayDimFetch",
- variable: arguments[ 0 ],
- dim: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() {
-
- return {
- type: "Node_Expr_StaticPropertyFetch",
- Class: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_ClassConstFetch = function() {
-
- return {
- type: "Node_Expr_ClassConstFetch",
- Class: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() {
-
- return {
- type: "Node_Expr_StaticPropertyFetch",
- Class: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_ConstFetch = function() {
-
- return {
- type: "Node_Expr_ConstFetch",
- name: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_ArrayItem = function() {
-
- return {
- type: "Node_Expr_ArrayItem",
- value: arguments[ 0 ],
- key: arguments[ 1 ],
- byRef: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Array = function() {
-
- return {
- type: "Node_Expr_Array",
- items: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PropertyFetch = function() {
-
- return {
- type: "Node_Expr_PropertyFetch",
- variable: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_New = function() {
-
- return {
- type: "Node_Expr_New",
- Class: arguments[ 0 ],
- args: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Print = function() {
- return {
- type: "Node_Expr_Print",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Exit = function() {
- return {
- type: "Node_Expr_Exit",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Cast_Bool = function() {
- return {
- type: "Node_Expr_Cast_Bool",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Int = function() {
- return {
- type: "Node_Expr_Cast_Int",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_String = function() {
- return {
- type: "Node_Expr_Cast_String",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Double = function() {
- return {
- type: "Node_Expr_Cast_Double",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Array = function() {
- return {
- type: "Node_Expr_Cast_Array",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Object = function() {
- return {
- type: "Node_Expr_Cast_Object",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_ErrorSuppress = function() {
- return {
- type: "Node_Expr_ErrorSuppress",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Isset = function() {
- return {
- type: "Node_Expr_Isset",
- variables: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-
-
-PHP.Parser.prototype.Node_Expr_UnaryMinus = function() {
- return {
- type: "Node_Expr_UnaryMinus",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_UnaryPlus = function() {
- return {
- type: "Node_Expr_UnaryPlus",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Empty = function() {
- return {
- type: "Node_Expr_Empty",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BooleanOr = function() {
- return {
- type: "Node_Expr_BooleanOr",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_LogicalOr = function() {
- return {
- type: "Node_Expr_LogicalOr",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_LogicalAnd = function() {
- return {
- type: "Node_Expr_LogicalAnd",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_LogicalXor = function() {
- return {
- type: "Node_Expr_LogicalXor",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BitwiseAnd = function() {
- return {
- type: "Node_Expr_BitwiseAnd",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BitwiseOr = function() {
- return {
- type: "Node_Expr_BitwiseOr",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BitwiseXor = function() {
- return {
- type: "Node_Expr_BitwiseXor",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BitwiseNot = function() {
- return {
- type: "Node_Expr_BitwiseNot",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BooleanNot = function() {
- return {
- type: "Node_Expr_BooleanNot",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BooleanAnd = function() {
- return {
- type: "Node_Expr_BooleanAnd",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Instanceof = function() {
-
- return {
- type: "Node_Expr_Instanceof",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Clone = function() {
-
- return {
- type: "Node_Expr_Clone",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-
-PHP.Parser.prototype.Scalar_LNumber_parse = function( a ) {
-
- return a;
-};
-
-PHP.Parser.prototype.Scalar_DNumber_parse = function( a ) {
-
- return a;
-};
-
-PHP.Parser.prototype.Scalar_String_parseDocString = function() {
-
- return '"' + arguments[ 1 ].replace(/([^"\\]*(?:\\.[^"\\]*)*)"/g, '$1\\"') + '"';
-};
-
-
-PHP.Parser.prototype.Node_Scalar_String = function( ) {
-
- return {
- type: "Node_Scalar_String",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Scalar_String_create = function( ) {
- return {
- type: "Node_Scalar_String",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Scalar_LNumber = function() {
-
- return {
- type: "Node_Scalar_LNumber",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Scalar_DNumber = function() {
-
- return {
- type: "Node_Scalar_DNumber",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Scalar_Encapsed = function() {
-
- return {
- type: "Node_Scalar_Encapsed",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Name = function() {
-
- return {
- type: "Node_Name",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Name_FullyQualified = function() {
-
- return {
- type: "Node_Name_FullyQualified",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Name_Relative = function() {
-
- return {
- type: "Node_Name_Relative",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Param = function() {
-
- return {
- type: "Node_Param",
- name: arguments[ 0 ],
- def: arguments[ 1 ],
- Type: arguments[ 2 ],
- byRef: arguments[ 3 ],
- attributes: arguments[ 4 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Arg = function() {
-
- return {
- type: "Node_Name",
- value: arguments[ 0 ],
- byRef: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Const = function() {
-
- return {
- type: "Node_Const",
- name: arguments[ 0 ],
- value: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
exports.PHP = PHP;
});