沟通补正BUG修改
This commit is contained in:
parent
90ca27ff09
commit
07d26ebb19
331
src/main/resources/static/assets/js/vendor/template/build/src/ext-beautify.js
vendored
Normal file
331
src/main/resources/static/assets/js/vendor/template/build/src/ext-beautify.js
vendored
Normal file
@ -0,0 +1,331 @@
|
||||
define("ace/ext/beautify",["require","exports","module","ace/token_iterator"], function(require, exports, module){// [WIP]
|
||||
"use strict";
|
||||
var TokenIterator = require("../token_iterator").TokenIterator;
|
||||
function is(token, type) {
|
||||
return token.type.lastIndexOf(type + ".xml") > -1;
|
||||
}
|
||||
exports.singletonTags = ["area", "base", "br", "col", "command", "embed", "hr", "html", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"];
|
||||
exports.blockTags = ["article", "aside", "blockquote", "body", "div", "dl", "fieldset", "footer", "form", "head", "header", "html", "nav", "ol", "p", "script", "section", "style", "table", "tbody", "tfoot", "thead", "ul"];
|
||||
exports.formatOptions = {
|
||||
lineBreaksAfterCommasInCurlyBlock: true
|
||||
};
|
||||
exports.beautify = function (session) {
|
||||
var iterator = new TokenIterator(session, 0, 0);
|
||||
var token = iterator.getCurrentToken();
|
||||
var tabString = session.getTabString();
|
||||
var singletonTags = exports.singletonTags;
|
||||
var blockTags = exports.blockTags;
|
||||
var formatOptions = exports.formatOptions || {};
|
||||
var nextToken;
|
||||
var breakBefore = false;
|
||||
var spaceBefore = false;
|
||||
var spaceAfter = false;
|
||||
var code = "";
|
||||
var value = "";
|
||||
var tagName = "";
|
||||
var depth = 0;
|
||||
var lastDepth = 0;
|
||||
var lastIndent = 0;
|
||||
var indent = 0;
|
||||
var unindent = 0;
|
||||
var roundDepth = 0;
|
||||
var curlyDepth = 0;
|
||||
var row;
|
||||
var curRow = 0;
|
||||
var rowsToAdd = 0;
|
||||
var rowTokens = [];
|
||||
var abort = false;
|
||||
var i;
|
||||
var indentNextLine = false;
|
||||
var inTag = false;
|
||||
var inCSS = false;
|
||||
var inBlock = false;
|
||||
var levels = { 0: 0 };
|
||||
var parents = [];
|
||||
var caseBody = false;
|
||||
var trimNext = function () {
|
||||
if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')
|
||||
nextToken.value = nextToken.value.replace(/^\s*/, "");
|
||||
};
|
||||
var trimLine = function () {
|
||||
var end = code.length - 1;
|
||||
while (true) {
|
||||
if (end == 0)
|
||||
break;
|
||||
if (code[end] !== " ")
|
||||
break;
|
||||
end = end - 1;
|
||||
}
|
||||
code = code.slice(0, end + 1);
|
||||
};
|
||||
var trimCode = function () {
|
||||
code = code.trimRight();
|
||||
breakBefore = false;
|
||||
};
|
||||
while (token !== null) {
|
||||
curRow = iterator.getCurrentTokenRow();
|
||||
rowTokens = iterator.$rowTokens;
|
||||
nextToken = iterator.stepForward();
|
||||
if (typeof token !== "undefined") {
|
||||
value = token.value;
|
||||
unindent = 0;
|
||||
inCSS = (tagName === "style" || session.$modeId === "ace/mode/css");
|
||||
if (is(token, "tag-open")) {
|
||||
inTag = true;
|
||||
if (nextToken)
|
||||
inBlock = (blockTags.indexOf(nextToken.value) !== -1);
|
||||
if (value === "</") {
|
||||
if (inBlock && !breakBefore && rowsToAdd < 1)
|
||||
rowsToAdd++;
|
||||
if (inCSS)
|
||||
rowsToAdd = 1;
|
||||
unindent = 1;
|
||||
inBlock = false;
|
||||
}
|
||||
}
|
||||
else if (is(token, "tag-close")) {
|
||||
inTag = false;
|
||||
}
|
||||
else if (is(token, "comment.start")) {
|
||||
inBlock = true;
|
||||
}
|
||||
else if (is(token, "comment.end")) {
|
||||
inBlock = false;
|
||||
}
|
||||
if (!inTag && !rowsToAdd && token.type === "paren.rparen" && token.value.substr(0, 1) === "}") {
|
||||
rowsToAdd++;
|
||||
}
|
||||
if (curRow !== row) {
|
||||
rowsToAdd = curRow;
|
||||
if (row)
|
||||
rowsToAdd -= row;
|
||||
}
|
||||
if (rowsToAdd) {
|
||||
trimCode();
|
||||
for (; rowsToAdd > 0; rowsToAdd--)
|
||||
code += "\n";
|
||||
breakBefore = true;
|
||||
if (!is(token, "comment") && !token.type.match(/^(comment|string)$/))
|
||||
value = value.trimLeft();
|
||||
}
|
||||
if (value) {
|
||||
if (token.type === "keyword" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {
|
||||
parents[depth] = value;
|
||||
trimNext();
|
||||
spaceAfter = true;
|
||||
if (value.match(/^(else|elseif)$/)) {
|
||||
if (code.match(/\}[\s]*$/)) {
|
||||
trimCode();
|
||||
spaceBefore = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token.type === "paren.lparen") {
|
||||
trimNext();
|
||||
if (value.substr(-1) === "{") {
|
||||
spaceAfter = true;
|
||||
indentNextLine = false;
|
||||
if (!inTag)
|
||||
rowsToAdd = 1;
|
||||
}
|
||||
if (value.substr(0, 1) === "{") {
|
||||
spaceBefore = true;
|
||||
if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {
|
||||
trimCode();
|
||||
spaceBefore = false;
|
||||
}
|
||||
else if (code.trimRight().substr(-1) === ')') {
|
||||
trimCode();
|
||||
}
|
||||
else {
|
||||
trimLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token.type === "paren.rparen") {
|
||||
unindent = 1;
|
||||
if (value.substr(0, 1) === "}") {
|
||||
if (parents[depth - 1] === 'case')
|
||||
unindent++;
|
||||
if (code.trimRight().substr(-1) === '{') {
|
||||
trimCode();
|
||||
}
|
||||
else {
|
||||
spaceBefore = true;
|
||||
if (inCSS)
|
||||
rowsToAdd += 2;
|
||||
}
|
||||
}
|
||||
if (value.substr(0, 1) === "]") {
|
||||
if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {
|
||||
spaceBefore = false;
|
||||
indent++;
|
||||
trimCode();
|
||||
}
|
||||
}
|
||||
if (value.substr(0, 1) === ")") {
|
||||
if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {
|
||||
spaceBefore = false;
|
||||
indent++;
|
||||
trimCode();
|
||||
}
|
||||
}
|
||||
trimLine();
|
||||
}
|
||||
else if ((token.type === "keyword.operator" || token.type === "keyword") && value.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)) {
|
||||
trimCode();
|
||||
trimNext();
|
||||
spaceBefore = true;
|
||||
spaceAfter = true;
|
||||
}
|
||||
else if (token.type === "punctuation.operator" && value === ';') {
|
||||
trimCode();
|
||||
trimNext();
|
||||
spaceAfter = true;
|
||||
if (inCSS)
|
||||
rowsToAdd++;
|
||||
}
|
||||
else if (token.type === "punctuation.operator" && value.match(/^(:|,)$/)) {
|
||||
trimCode();
|
||||
trimNext();
|
||||
if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {
|
||||
rowsToAdd++;
|
||||
}
|
||||
else {
|
||||
spaceAfter = true;
|
||||
breakBefore = false;
|
||||
}
|
||||
}
|
||||
else if (token.type === "support.php_tag" && value === "?>" && !breakBefore) {
|
||||
trimCode();
|
||||
spaceBefore = true;
|
||||
}
|
||||
else if (is(token, "attribute-name") && code.substr(-1).match(/^\s$/)) {
|
||||
spaceBefore = true;
|
||||
}
|
||||
else if (is(token, "attribute-equals")) {
|
||||
trimLine();
|
||||
trimNext();
|
||||
}
|
||||
else if (is(token, "tag-close")) {
|
||||
trimLine();
|
||||
if (value === "/>")
|
||||
spaceBefore = true;
|
||||
}
|
||||
else if (token.type === "keyword" && value.match(/^(case|default)$/)) {
|
||||
if (caseBody)
|
||||
unindent = 1;
|
||||
}
|
||||
if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['"@]$/))) {
|
||||
indent = lastIndent;
|
||||
if (depth > lastDepth) {
|
||||
indent++;
|
||||
for (i = depth; i > lastDepth; i--)
|
||||
levels[i] = indent;
|
||||
}
|
||||
else if (depth < lastDepth)
|
||||
indent = levels[depth];
|
||||
lastDepth = depth;
|
||||
lastIndent = indent;
|
||||
if (unindent)
|
||||
indent -= unindent;
|
||||
if (indentNextLine && !roundDepth) {
|
||||
indent++;
|
||||
indentNextLine = false;
|
||||
}
|
||||
for (i = 0; i < indent; i++)
|
||||
code += tabString;
|
||||
}
|
||||
if (token.type === "keyword" && value.match(/^(case|default)$/)) {
|
||||
if (caseBody === false) {
|
||||
parents[depth] = value;
|
||||
depth++;
|
||||
caseBody = true;
|
||||
}
|
||||
}
|
||||
else if (token.type === "keyword" && value.match(/^(break)$/)) {
|
||||
if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {
|
||||
depth--;
|
||||
caseBody = false;
|
||||
}
|
||||
}
|
||||
if (token.type === "paren.lparen") {
|
||||
roundDepth += (value.match(/\(/g) || []).length;
|
||||
curlyDepth += (value.match(/\{/g) || []).length;
|
||||
depth += value.length;
|
||||
}
|
||||
if (token.type === "keyword" && value.match(/^(if|else|elseif|for|while)$/)) {
|
||||
indentNextLine = true;
|
||||
roundDepth = 0;
|
||||
}
|
||||
else if (!roundDepth && value.trim() && token.type !== "comment")
|
||||
indentNextLine = false;
|
||||
if (token.type === "paren.rparen") {
|
||||
roundDepth -= (value.match(/\)/g) || []).length;
|
||||
curlyDepth -= (value.match(/\}/g) || []).length;
|
||||
for (i = 0; i < value.length; i++) {
|
||||
depth--;
|
||||
if (value.substr(i, 1) === '}' && parents[depth] === 'case') {
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (token.type == "text")
|
||||
value = value.replace(/\s+$/, " ");
|
||||
if (spaceBefore && !breakBefore) {
|
||||
trimLine();
|
||||
if (code.substr(-1) !== "\n")
|
||||
code += " ";
|
||||
}
|
||||
code += value;
|
||||
if (spaceAfter)
|
||||
code += " ";
|
||||
breakBefore = false;
|
||||
spaceBefore = false;
|
||||
spaceAfter = false;
|
||||
if ((is(token, "tag-close") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, "doctype") && value === ">")) {
|
||||
if (inBlock && nextToken && nextToken.value === "</")
|
||||
rowsToAdd = -1;
|
||||
else
|
||||
rowsToAdd = 1;
|
||||
}
|
||||
if (nextToken && singletonTags.indexOf(nextToken.value) === -1) {
|
||||
if (is(token, "tag-open") && value === "</") {
|
||||
depth--;
|
||||
}
|
||||
else if (is(token, "tag-open") && value === "<") {
|
||||
depth++;
|
||||
}
|
||||
else if (is(token, "tag-close") && value === "/>") {
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
if (is(token, "tag-name")) {
|
||||
tagName = value;
|
||||
}
|
||||
row = curRow;
|
||||
}
|
||||
}
|
||||
token = nextToken;
|
||||
}
|
||||
code = code.trim();
|
||||
session.doc.setValue(code);
|
||||
};
|
||||
exports.commands = [{
|
||||
name: "beautify",
|
||||
description: "Format selection (Beautify)",
|
||||
exec: function (editor) {
|
||||
exports.beautify(editor.session);
|
||||
},
|
||||
bindKey: "Ctrl-Shift-B"
|
||||
}];
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/beautify"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
203
src/main/resources/static/assets/js/vendor/template/build/src/ext-code_lens.js
vendored
Normal file
203
src/main/resources/static/assets/js/vendor/template/build/src/ext-code_lens.js
vendored
Normal file
@ -0,0 +1,203 @@
|
||||
define("ace/ext/code_lens",["require","exports","module","ace/line_widgets","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var LineWidgets = require("../line_widgets").LineWidgets;
|
||||
var event = require("../lib/event");
|
||||
var lang = require("../lib/lang");
|
||||
var dom = require("../lib/dom");
|
||||
function clearLensElements(renderer) {
|
||||
var textLayer = renderer.$textLayer;
|
||||
var lensElements = textLayer.$lenses;
|
||||
if (lensElements)
|
||||
lensElements.forEach(function (el) { el.remove(); });
|
||||
textLayer.$lenses = null;
|
||||
}
|
||||
function renderWidgets(changes, renderer) {
|
||||
var changed = changes & renderer.CHANGE_LINES
|
||||
|| changes & renderer.CHANGE_FULL
|
||||
|| changes & renderer.CHANGE_SCROLL
|
||||
|| changes & renderer.CHANGE_TEXT;
|
||||
if (!changed)
|
||||
return;
|
||||
var session = renderer.session;
|
||||
var lineWidgets = renderer.session.lineWidgets;
|
||||
var textLayer = renderer.$textLayer;
|
||||
var lensElements = textLayer.$lenses;
|
||||
if (!lineWidgets) {
|
||||
if (lensElements)
|
||||
clearLensElements(renderer);
|
||||
return;
|
||||
}
|
||||
var textCells = renderer.$textLayer.$lines.cells;
|
||||
var config = renderer.layerConfig;
|
||||
var padding = renderer.$padding;
|
||||
if (!lensElements)
|
||||
lensElements = textLayer.$lenses = [];
|
||||
var index = 0;
|
||||
for (var i = 0; i < textCells.length; i++) {
|
||||
var row = textCells[i].row;
|
||||
var widget = lineWidgets[row];
|
||||
var lenses = widget && widget.lenses;
|
||||
if (!lenses || !lenses.length)
|
||||
continue;
|
||||
var lensContainer = lensElements[index];
|
||||
if (!lensContainer) {
|
||||
lensContainer = lensElements[index]
|
||||
= dom.buildDom(["div", { class: "ace_codeLens" }], renderer.container);
|
||||
}
|
||||
lensContainer.style.height = config.lineHeight + "px";
|
||||
index++;
|
||||
for (var j = 0; j < lenses.length; j++) {
|
||||
var el = lensContainer.childNodes[2 * j];
|
||||
if (!el) {
|
||||
if (j != 0)
|
||||
lensContainer.appendChild(dom.createTextNode("\xa0|\xa0"));
|
||||
el = dom.buildDom(["a"], lensContainer);
|
||||
}
|
||||
el.textContent = lenses[j].title;
|
||||
el.lensCommand = lenses[j];
|
||||
}
|
||||
while (lensContainer.childNodes.length > 2 * j - 1)
|
||||
lensContainer.lastChild.remove();
|
||||
var top = renderer.$cursorLayer.getPixelPosition({
|
||||
row: row,
|
||||
column: 0
|
||||
}, true).top - config.lineHeight * widget.rowsAbove - config.offset;
|
||||
lensContainer.style.top = top + "px";
|
||||
var left = renderer.gutterWidth;
|
||||
var indent = session.getLine(row).search(/\S|$/);
|
||||
if (indent == -1)
|
||||
indent = 0;
|
||||
left += indent * config.characterWidth;
|
||||
lensContainer.style.paddingLeft = padding + left + "px";
|
||||
}
|
||||
while (index < lensElements.length)
|
||||
lensElements.pop().remove();
|
||||
}
|
||||
function clearCodeLensWidgets(session) {
|
||||
if (!session.lineWidgets)
|
||||
return;
|
||||
var widgetManager = session.widgetManager;
|
||||
session.lineWidgets.forEach(function (widget) {
|
||||
if (widget && widget.lenses)
|
||||
widgetManager.removeLineWidget(widget);
|
||||
});
|
||||
}
|
||||
exports.setLenses = function (session, lenses) {
|
||||
var firstRow = Number.MAX_VALUE;
|
||||
clearCodeLensWidgets(session);
|
||||
lenses && lenses.forEach(function (lens) {
|
||||
var row = lens.start.row;
|
||||
var column = lens.start.column;
|
||||
var widget = session.lineWidgets && session.lineWidgets[row];
|
||||
if (!widget || !widget.lenses) {
|
||||
widget = session.widgetManager.$registerLineWidget({
|
||||
rowCount: 1,
|
||||
rowsAbove: 1,
|
||||
row: row,
|
||||
column: column,
|
||||
lenses: []
|
||||
});
|
||||
}
|
||||
widget.lenses.push(lens.command);
|
||||
if (row < firstRow)
|
||||
firstRow = row;
|
||||
});
|
||||
session._emit("changeFold", { data: { start: { row: firstRow } } });
|
||||
return firstRow;
|
||||
};
|
||||
function attachToEditor(editor) {
|
||||
editor.codeLensProviders = [];
|
||||
editor.renderer.on("afterRender", renderWidgets);
|
||||
if (!editor.$codeLensClickHandler) {
|
||||
editor.$codeLensClickHandler = function (e) {
|
||||
var command = e.target.lensCommand;
|
||||
if (!command)
|
||||
return;
|
||||
editor.execCommand(command.id, command.arguments);
|
||||
editor._emit("codeLensClick", e);
|
||||
};
|
||||
event.addListener(editor.container, "click", editor.$codeLensClickHandler, editor);
|
||||
}
|
||||
editor.$updateLenses = function () {
|
||||
var session = editor.session;
|
||||
if (!session)
|
||||
return;
|
||||
if (!session.widgetManager) {
|
||||
session.widgetManager = new LineWidgets(session);
|
||||
session.widgetManager.attach(editor);
|
||||
}
|
||||
var providersToWaitNum = editor.codeLensProviders.length;
|
||||
var lenses = [];
|
||||
editor.codeLensProviders.forEach(function (provider) {
|
||||
provider.provideCodeLenses(session, function (err, payload) {
|
||||
if (err)
|
||||
return;
|
||||
payload.forEach(function (lens) {
|
||||
lenses.push(lens);
|
||||
});
|
||||
providersToWaitNum--;
|
||||
if (providersToWaitNum == 0) {
|
||||
applyLenses();
|
||||
}
|
||||
});
|
||||
});
|
||||
function applyLenses() {
|
||||
var cursor = session.selection.cursor;
|
||||
var oldRow = session.documentToScreenRow(cursor);
|
||||
var scrollTop = session.getScrollTop();
|
||||
var firstRow = exports.setLenses(session, lenses);
|
||||
var lastDelta = session.$undoManager && session.$undoManager.$lastDelta;
|
||||
if (lastDelta && lastDelta.action == "remove" && lastDelta.lines.length > 1)
|
||||
return;
|
||||
var row = session.documentToScreenRow(cursor);
|
||||
var lineHeight = editor.renderer.layerConfig.lineHeight;
|
||||
var top = session.getScrollTop() + (row - oldRow) * lineHeight;
|
||||
if (firstRow == 0 && scrollTop < lineHeight / 4 && scrollTop > -lineHeight / 4) {
|
||||
top = -lineHeight;
|
||||
}
|
||||
session.setScrollTop(top);
|
||||
}
|
||||
};
|
||||
var updateLenses = lang.delayedCall(editor.$updateLenses);
|
||||
editor.$updateLensesOnInput = function () {
|
||||
updateLenses.delay(250);
|
||||
};
|
||||
editor.on("input", editor.$updateLensesOnInput);
|
||||
}
|
||||
function detachFromEditor(editor) {
|
||||
editor.off("input", editor.$updateLensesOnInput);
|
||||
editor.renderer.off("afterRender", renderWidgets);
|
||||
if (editor.$codeLensClickHandler)
|
||||
editor.container.removeEventListener("click", editor.$codeLensClickHandler);
|
||||
}
|
||||
exports.registerCodeLensProvider = function (editor, codeLensProvider) {
|
||||
editor.setOption("enableCodeLens", true);
|
||||
editor.codeLensProviders.push(codeLensProvider);
|
||||
editor.$updateLensesOnInput();
|
||||
};
|
||||
exports.clear = function (session) {
|
||||
exports.setLenses(session, null);
|
||||
};
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
enableCodeLens: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
attachToEditor(this);
|
||||
}
|
||||
else {
|
||||
detachFromEditor(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
dom.importCssString("\n.ace_codeLens {\n position: absolute;\n color: #aaa;\n font-size: 88%;\n background: inherit;\n width: 100%;\n display: flex;\n align-items: flex-end;\n pointer-events: none;\n}\n.ace_codeLens > a {\n cursor: pointer;\n pointer-events: auto;\n}\n.ace_codeLens > a:hover {\n color: #0000ff;\n text-decoration: underline;\n}\n.ace_dark > .ace_codeLens > a:hover {\n color: #4e94ce;\n}\n", "codelense.css", false);
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/code_lens"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
227
src/main/resources/static/assets/js/vendor/template/build/src/ext-elastic_tabstops_lite.js
vendored
Normal file
227
src/main/resources/static/assets/js/vendor/template/build/src/ext-elastic_tabstops_lite.js
vendored
Normal file
@ -0,0 +1,227 @@
|
||||
define("ace/ext/elastic_tabstops_lite",["require","exports","module","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var ElasticTabstopsLite = function (editor) {
|
||||
this.$editor = editor;
|
||||
var self = this;
|
||||
var changedRows = [];
|
||||
var recordChanges = false;
|
||||
this.onAfterExec = function () {
|
||||
recordChanges = false;
|
||||
self.processRows(changedRows);
|
||||
changedRows = [];
|
||||
};
|
||||
this.onExec = function () {
|
||||
recordChanges = true;
|
||||
};
|
||||
this.onChange = function (delta) {
|
||||
if (recordChanges) {
|
||||
if (changedRows.indexOf(delta.start.row) == -1)
|
||||
changedRows.push(delta.start.row);
|
||||
if (delta.end.row != delta.start.row)
|
||||
changedRows.push(delta.end.row);
|
||||
}
|
||||
};
|
||||
};
|
||||
(function () {
|
||||
this.processRows = function (rows) {
|
||||
this.$inChange = true;
|
||||
var checkedRows = [];
|
||||
for (var r = 0, rowCount = rows.length; r < rowCount; r++) {
|
||||
var row = rows[r];
|
||||
if (checkedRows.indexOf(row) > -1)
|
||||
continue;
|
||||
var cellWidthObj = this.$findCellWidthsForBlock(row);
|
||||
var cellWidths = this.$setBlockCellWidthsToMax(cellWidthObj.cellWidths);
|
||||
var rowIndex = cellWidthObj.firstRow;
|
||||
for (var w = 0, l = cellWidths.length; w < l; w++) {
|
||||
var widths = cellWidths[w];
|
||||
checkedRows.push(rowIndex);
|
||||
this.$adjustRow(rowIndex, widths);
|
||||
rowIndex++;
|
||||
}
|
||||
}
|
||||
this.$inChange = false;
|
||||
};
|
||||
this.$findCellWidthsForBlock = function (row) {
|
||||
var cellWidths = [], widths;
|
||||
var rowIter = row;
|
||||
while (rowIter >= 0) {
|
||||
widths = this.$cellWidthsForRow(rowIter);
|
||||
if (widths.length == 0)
|
||||
break;
|
||||
cellWidths.unshift(widths);
|
||||
rowIter--;
|
||||
}
|
||||
var firstRow = rowIter + 1;
|
||||
rowIter = row;
|
||||
var numRows = this.$editor.session.getLength();
|
||||
while (rowIter < numRows - 1) {
|
||||
rowIter++;
|
||||
widths = this.$cellWidthsForRow(rowIter);
|
||||
if (widths.length == 0)
|
||||
break;
|
||||
cellWidths.push(widths);
|
||||
}
|
||||
return { cellWidths: cellWidths, firstRow: firstRow };
|
||||
};
|
||||
this.$cellWidthsForRow = function (row) {
|
||||
var selectionColumns = this.$selectionColumnsForRow(row);
|
||||
var tabs = [-1].concat(this.$tabsForRow(row));
|
||||
var widths = tabs.map(function (el) { return 0; }).slice(1);
|
||||
var line = this.$editor.session.getLine(row);
|
||||
for (var i = 0, len = tabs.length - 1; i < len; i++) {
|
||||
var leftEdge = tabs[i] + 1;
|
||||
var rightEdge = tabs[i + 1];
|
||||
var rightmostSelection = this.$rightmostSelectionInCell(selectionColumns, rightEdge);
|
||||
var cell = line.substring(leftEdge, rightEdge);
|
||||
widths[i] = Math.max(cell.replace(/\s+$/g, '').length, rightmostSelection - leftEdge);
|
||||
}
|
||||
return widths;
|
||||
};
|
||||
this.$selectionColumnsForRow = function (row) {
|
||||
var selections = [], cursor = this.$editor.getCursorPosition();
|
||||
if (this.$editor.session.getSelection().isEmpty()) {
|
||||
if (row == cursor.row)
|
||||
selections.push(cursor.column);
|
||||
}
|
||||
return selections;
|
||||
};
|
||||
this.$setBlockCellWidthsToMax = function (cellWidths) {
|
||||
var startingNewBlock = true, blockStartRow, blockEndRow, maxWidth;
|
||||
var columnInfo = this.$izip_longest(cellWidths);
|
||||
for (var c = 0, l = columnInfo.length; c < l; c++) {
|
||||
var column = columnInfo[c];
|
||||
if (!column.push) {
|
||||
console.error(column);
|
||||
continue;
|
||||
}
|
||||
column.push(NaN);
|
||||
for (var r = 0, s = column.length; r < s; r++) {
|
||||
var width = column[r];
|
||||
if (startingNewBlock) {
|
||||
blockStartRow = r;
|
||||
maxWidth = 0;
|
||||
startingNewBlock = false;
|
||||
}
|
||||
if (isNaN(width)) {
|
||||
blockEndRow = r;
|
||||
for (var j = blockStartRow; j < blockEndRow; j++) {
|
||||
cellWidths[j][c] = maxWidth;
|
||||
}
|
||||
startingNewBlock = true;
|
||||
}
|
||||
maxWidth = Math.max(maxWidth, width);
|
||||
}
|
||||
}
|
||||
return cellWidths;
|
||||
};
|
||||
this.$rightmostSelectionInCell = function (selectionColumns, cellRightEdge) {
|
||||
var rightmost = 0;
|
||||
if (selectionColumns.length) {
|
||||
var lengths = [];
|
||||
for (var s = 0, length = selectionColumns.length; s < length; s++) {
|
||||
if (selectionColumns[s] <= cellRightEdge)
|
||||
lengths.push(s);
|
||||
else
|
||||
lengths.push(0);
|
||||
}
|
||||
rightmost = Math.max.apply(Math, lengths);
|
||||
}
|
||||
return rightmost;
|
||||
};
|
||||
this.$tabsForRow = function (row) {
|
||||
var rowTabs = [], line = this.$editor.session.getLine(row), re = /\t/g, match;
|
||||
while ((match = re.exec(line)) != null) {
|
||||
rowTabs.push(match.index);
|
||||
}
|
||||
return rowTabs;
|
||||
};
|
||||
this.$adjustRow = function (row, widths) {
|
||||
var rowTabs = this.$tabsForRow(row);
|
||||
if (rowTabs.length == 0)
|
||||
return;
|
||||
var bias = 0, location = -1;
|
||||
var expandedSet = this.$izip(widths, rowTabs);
|
||||
for (var i = 0, l = expandedSet.length; i < l; i++) {
|
||||
var w = expandedSet[i][0], it = expandedSet[i][1];
|
||||
location += 1 + w;
|
||||
it += bias;
|
||||
var difference = location - it;
|
||||
if (difference == 0)
|
||||
continue;
|
||||
var partialLine = this.$editor.session.getLine(row).substr(0, it);
|
||||
var strippedPartialLine = partialLine.replace(/\s*$/g, "");
|
||||
var ispaces = partialLine.length - strippedPartialLine.length;
|
||||
if (difference > 0) {
|
||||
this.$editor.session.getDocument().insertInLine({ row: row, column: it + 1 }, Array(difference + 1).join(" ") + "\t");
|
||||
this.$editor.session.getDocument().removeInLine(row, it, it + 1);
|
||||
bias += difference;
|
||||
}
|
||||
if (difference < 0 && ispaces >= -difference) {
|
||||
this.$editor.session.getDocument().removeInLine(row, it + difference, it);
|
||||
bias += difference;
|
||||
}
|
||||
}
|
||||
};
|
||||
this.$izip_longest = function (iterables) {
|
||||
if (!iterables[0])
|
||||
return [];
|
||||
var longest = iterables[0].length;
|
||||
var iterablesLength = iterables.length;
|
||||
for (var i = 1; i < iterablesLength; i++) {
|
||||
var iLength = iterables[i].length;
|
||||
if (iLength > longest)
|
||||
longest = iLength;
|
||||
}
|
||||
var expandedSet = [];
|
||||
for (var l = 0; l < longest; l++) {
|
||||
var set = [];
|
||||
for (var i = 0; i < iterablesLength; i++) {
|
||||
if (iterables[i][l] === "")
|
||||
set.push(NaN);
|
||||
else
|
||||
set.push(iterables[i][l]);
|
||||
}
|
||||
expandedSet.push(set);
|
||||
}
|
||||
return expandedSet;
|
||||
};
|
||||
this.$izip = function (widths, tabs) {
|
||||
var size = widths.length >= tabs.length ? tabs.length : widths.length;
|
||||
var expandedSet = [];
|
||||
for (var i = 0; i < size; i++) {
|
||||
var set = [widths[i], tabs[i]];
|
||||
expandedSet.push(set);
|
||||
}
|
||||
return expandedSet;
|
||||
};
|
||||
}).call(ElasticTabstopsLite.prototype);
|
||||
exports.ElasticTabstopsLite = ElasticTabstopsLite;
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
useElasticTabstops: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
if (!this.elasticTabstops)
|
||||
this.elasticTabstops = new ElasticTabstopsLite(this);
|
||||
this.commands.on("afterExec", this.elasticTabstops.onAfterExec);
|
||||
this.commands.on("exec", this.elasticTabstops.onExec);
|
||||
this.on("change", this.elasticTabstops.onChange);
|
||||
}
|
||||
else if (this.elasticTabstops) {
|
||||
this.commands.removeListener("afterExec", this.elasticTabstops.onAfterExec);
|
||||
this.commands.removeListener("exec", this.elasticTabstops.onExec);
|
||||
this.removeListener("change", this.elasticTabstops.onChange);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/elastic_tabstops_lite"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
1257
src/main/resources/static/assets/js/vendor/template/build/src/ext-emmet.js
vendored
Normal file
1257
src/main/resources/static/assets/js/vendor/template/build/src/ext-emmet.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
src/main/resources/static/assets/js/vendor/template/build/src/ext-error_marker.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/ext-error_marker.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/ext/error_marker"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
117
src/main/resources/static/assets/js/vendor/template/build/src/ext-hardwrap.js
vendored
Normal file
117
src/main/resources/static/assets/js/vendor/template/build/src/ext-hardwrap.js
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
define("ace/ext/hardwrap",["require","exports","module","ace/range","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var Range = require("../range").Range;
|
||||
function hardWrap(editor, options) {
|
||||
var max = options.column || editor.getOption("printMarginColumn");
|
||||
var allowMerge = options.allowMerge != false;
|
||||
var row = Math.min(options.startRow, options.endRow);
|
||||
var endRow = Math.max(options.startRow, options.endRow);
|
||||
var session = editor.session;
|
||||
while (row <= endRow) {
|
||||
var line = session.getLine(row);
|
||||
if (line.length > max) {
|
||||
var space = findSpace(line, max, 5);
|
||||
if (space) {
|
||||
var indentation = /^\s*/.exec(line)[0];
|
||||
session.replace(new Range(row, space.start, row, space.end), "\n" + indentation);
|
||||
}
|
||||
endRow++;
|
||||
}
|
||||
else if (allowMerge && /\S/.test(line) && row != endRow) {
|
||||
var nextLine = session.getLine(row + 1);
|
||||
if (nextLine && /\S/.test(nextLine)) {
|
||||
var trimmedLine = line.replace(/\s+$/, "");
|
||||
var trimmedNextLine = nextLine.replace(/^\s+/, "");
|
||||
var mergedLine = trimmedLine + " " + trimmedNextLine;
|
||||
var space = findSpace(mergedLine, max, 5);
|
||||
if (space && space.start > trimmedLine.length || mergedLine.length < max) {
|
||||
var replaceRange = new Range(row, trimmedLine.length, row + 1, nextLine.length - trimmedNextLine.length);
|
||||
session.replace(replaceRange, " ");
|
||||
row--;
|
||||
endRow--;
|
||||
}
|
||||
else if (trimmedLine.length < line.length) {
|
||||
session.remove(new Range(row, trimmedLine.length, row, line.length));
|
||||
}
|
||||
}
|
||||
}
|
||||
row++;
|
||||
}
|
||||
function findSpace(line, max, min) {
|
||||
if (line.length < max)
|
||||
return;
|
||||
var before = line.slice(0, max);
|
||||
var after = line.slice(max);
|
||||
var spaceAfter = /^(?:(\s+)|(\S+)(\s+))/.exec(after);
|
||||
var spaceBefore = /(?:(\s+)|(\s+)(\S+))$/.exec(before);
|
||||
var start = 0;
|
||||
var end = 0;
|
||||
if (spaceBefore && !spaceBefore[2]) {
|
||||
start = max - spaceBefore[1].length;
|
||||
end = max;
|
||||
}
|
||||
if (spaceAfter && !spaceAfter[2]) {
|
||||
if (!start)
|
||||
start = max;
|
||||
end = max + spaceAfter[1].length;
|
||||
}
|
||||
if (start) {
|
||||
return {
|
||||
start: start,
|
||||
end: end
|
||||
};
|
||||
}
|
||||
if (spaceBefore && spaceBefore[2] && spaceBefore.index > min) {
|
||||
return {
|
||||
start: spaceBefore.index,
|
||||
end: spaceBefore.index + spaceBefore[2].length
|
||||
};
|
||||
}
|
||||
if (spaceAfter && spaceAfter[2]) {
|
||||
start = max + spaceAfter[2].length;
|
||||
return {
|
||||
start: start,
|
||||
end: start + spaceAfter[3].length
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
function wrapAfterInput(e) {
|
||||
if (e.command.name == "insertstring" && /\S/.test(e.args)) {
|
||||
var editor = e.editor;
|
||||
var cursor = editor.selection.cursor;
|
||||
if (cursor.column <= editor.renderer.$printMarginColumn)
|
||||
return;
|
||||
var lastDelta = editor.session.$undoManager.$lastDelta;
|
||||
hardWrap(editor, {
|
||||
startRow: cursor.row, endRow: cursor.row,
|
||||
allowMerge: false
|
||||
});
|
||||
if (lastDelta != editor.session.$undoManager.$lastDelta)
|
||||
editor.session.markUndoGroup();
|
||||
}
|
||||
}
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
hardWrap: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
this.commands.on("afterExec", wrapAfterInput);
|
||||
}
|
||||
else {
|
||||
this.commands.off("afterExec", wrapAfterInput);
|
||||
}
|
||||
},
|
||||
value: false
|
||||
}
|
||||
});
|
||||
exports.hardWrap = hardWrap;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/hardwrap"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
134
src/main/resources/static/assets/js/vendor/template/build/src/ext-keybinding_menu.js
vendored
Normal file
134
src/main/resources/static/assets/js/vendor/template/build/src/ext-keybinding_menu.js
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
define("ace/ext/menu_tools/settings_menu.css",["require","exports","module"], function(require, exports, module){module.exports = "#ace_settingsmenu, #kbshortcutmenu {\n background-color: #F7F7F7;\n color: black;\n box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\n padding: 1em 0.5em 2em 1em;\n overflow: auto;\n position: absolute;\n margin: 0;\n bottom: 0;\n right: 0;\n top: 0;\n z-index: 9991;\n cursor: default;\n}\n\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\n box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\n background-color: rgba(255, 255, 255, 0.6);\n color: black;\n}\n\n.ace_optionsMenuEntry:hover {\n background-color: rgba(100, 100, 100, 0.1);\n transition: all 0.3s\n}\n\n.ace_closeButton {\n background: rgba(245, 146, 146, 0.5);\n border: 1px solid #F48A8A;\n border-radius: 50%;\n padding: 7px;\n position: absolute;\n right: -8px;\n top: -8px;\n z-index: 100000;\n}\n.ace_closeButton{\n background: rgba(245, 146, 146, 0.9);\n}\n.ace_optionsMenuKey {\n color: darkslateblue;\n font-weight: bold;\n}\n.ace_optionsMenuCommand {\n color: darkcyan;\n font-weight: normal;\n}\n.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\n vertical-align: middle;\n}\n\n.ace_optionsMenuEntry button[ace_selected_button=true] {\n background: #e7e7e7;\n box-shadow: 1px 0px 2px 0px #adadad inset;\n border-color: #adadad;\n}\n.ace_optionsMenuEntry button {\n background: white;\n border: 1px solid lightgray;\n margin: 0px;\n}\n.ace_optionsMenuEntry button:hover{\n background: #f0f0f0;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom","ace/ext/menu_tools/settings_menu.css"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
'use strict';
|
||||
var dom = require("../../lib/dom");
|
||||
var cssText = require("./settings_menu.css");
|
||||
dom.importCssString(cssText, "settings_menu.css", false);
|
||||
module.exports.overlayPage = function overlayPage(editor, contentElement, callback) {
|
||||
var closer = document.createElement('div');
|
||||
var ignoreFocusOut = false;
|
||||
function documentEscListener(e) {
|
||||
if (e.keyCode === 27) {
|
||||
close();
|
||||
}
|
||||
}
|
||||
function close() {
|
||||
if (!closer)
|
||||
return;
|
||||
document.removeEventListener('keydown', documentEscListener);
|
||||
closer.parentNode.removeChild(closer);
|
||||
if (editor) {
|
||||
editor.focus();
|
||||
}
|
||||
closer = null;
|
||||
callback && callback();
|
||||
}
|
||||
function setIgnoreFocusOut(ignore) {
|
||||
ignoreFocusOut = ignore;
|
||||
if (ignore) {
|
||||
closer.style.pointerEvents = "none";
|
||||
contentElement.style.pointerEvents = "auto";
|
||||
}
|
||||
}
|
||||
closer.style.cssText = 'margin: 0; padding: 0; ' +
|
||||
'position: fixed; top:0; bottom:0; left:0; right:0;' +
|
||||
'z-index: 9990; ' +
|
||||
(editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');
|
||||
closer.addEventListener('click', function (e) {
|
||||
if (!ignoreFocusOut) {
|
||||
close();
|
||||
}
|
||||
});
|
||||
document.addEventListener('keydown', documentEscListener);
|
||||
contentElement.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
closer.appendChild(contentElement);
|
||||
document.body.appendChild(closer);
|
||||
if (editor) {
|
||||
editor.blur();
|
||||
}
|
||||
return {
|
||||
close: close,
|
||||
setIgnoreFocusOut: setIgnoreFocusOut
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/get_editor_keyboard_shortcuts",["require","exports","module","ace/lib/keys"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
"use strict";
|
||||
var keys = require("../../lib/keys");
|
||||
module.exports.getEditorKeybordShortcuts = function (editor) {
|
||||
var KEY_MODS = keys.KEY_MODS;
|
||||
var keybindings = [];
|
||||
var commandMap = {};
|
||||
editor.keyBinding.$handlers.forEach(function (handler) {
|
||||
var ckb = handler.commandKeyBinding;
|
||||
for (var i in ckb) {
|
||||
var key = i.replace(/(^|-)\w/g, function (x) { return x.toUpperCase(); });
|
||||
var commands = ckb[i];
|
||||
if (!Array.isArray(commands))
|
||||
commands = [commands];
|
||||
commands.forEach(function (command) {
|
||||
if (typeof command != "string")
|
||||
command = command.name;
|
||||
if (commandMap[command]) {
|
||||
commandMap[command].key += "|" + key;
|
||||
}
|
||||
else {
|
||||
commandMap[command] = { key: key, command: command };
|
||||
keybindings.push(commandMap[command]);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return keybindings;
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/keybinding_menu",["require","exports","module","ace/editor","ace/ext/menu_tools/overlay_page","ace/ext/menu_tools/get_editor_keyboard_shortcuts"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
"use strict";
|
||||
var Editor = require("../editor").Editor;
|
||||
function showKeyboardShortcuts(editor) {
|
||||
if (!document.getElementById('kbshortcutmenu')) {
|
||||
var overlayPage = require('./menu_tools/overlay_page').overlayPage;
|
||||
var getEditorKeybordShortcuts = require('./menu_tools/get_editor_keyboard_shortcuts').getEditorKeybordShortcuts;
|
||||
var kb = getEditorKeybordShortcuts(editor);
|
||||
var el = document.createElement('div');
|
||||
var commands = kb.reduce(function (previous, current) {
|
||||
return previous + '<div class="ace_optionsMenuEntry"><span class="ace_optionsMenuCommand">'
|
||||
+ current.command + '</span> : '
|
||||
+ '<span class="ace_optionsMenuKey">' + current.key + '</span></div>';
|
||||
}, '');
|
||||
el.id = 'kbshortcutmenu';
|
||||
el.innerHTML = '<h1>Keyboard Shortcuts</h1>' + commands + '</div>';
|
||||
overlayPage(editor, el);
|
||||
}
|
||||
}
|
||||
module.exports.init = function (editor) {
|
||||
Editor.prototype.showKeyboardShortcuts = function () {
|
||||
showKeyboardShortcuts(this);
|
||||
};
|
||||
editor.commands.addCommands([{
|
||||
name: "showKeyboardShortcuts",
|
||||
bindKey: { win: "Ctrl-Alt-h", mac: "Command-Alt-h" },
|
||||
exec: function (editor, line) {
|
||||
editor.showKeyboardShortcuts();
|
||||
}
|
||||
}]);
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/keybinding_menu"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
1964
src/main/resources/static/assets/js/vendor/template/build/src/ext-language_tools.js
vendored
Normal file
1964
src/main/resources/static/assets/js/vendor/template/build/src/ext-language_tools.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
57
src/main/resources/static/assets/js/vendor/template/build/src/ext-linking.js
vendored
Normal file
57
src/main/resources/static/assets/js/vendor/template/build/src/ext-linking.js
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
define("ace/ext/linking",["require","exports","module","ace/editor","ace/config"], function(require, exports, module){var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
enableLinking: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
this.on("click", onClick);
|
||||
this.on("mousemove", onMouseMove);
|
||||
}
|
||||
else {
|
||||
this.off("click", onClick);
|
||||
this.off("mousemove", onMouseMove);
|
||||
}
|
||||
},
|
||||
value: false
|
||||
}
|
||||
});
|
||||
exports.previousLinkingHover = false;
|
||||
function onMouseMove(e) {
|
||||
var editor = e.editor;
|
||||
var ctrl = e.getAccelKey();
|
||||
if (ctrl) {
|
||||
var editor = e.editor;
|
||||
var docPos = e.getDocumentPosition();
|
||||
var session = editor.session;
|
||||
var token = session.getTokenAt(docPos.row, docPos.column);
|
||||
if (exports.previousLinkingHover && exports.previousLinkingHover != token) {
|
||||
editor._emit("linkHoverOut");
|
||||
}
|
||||
editor._emit("linkHover", { position: docPos, token: token });
|
||||
exports.previousLinkingHover = token;
|
||||
}
|
||||
else if (exports.previousLinkingHover) {
|
||||
editor._emit("linkHoverOut");
|
||||
exports.previousLinkingHover = false;
|
||||
}
|
||||
}
|
||||
function onClick(e) {
|
||||
var ctrl = e.getAccelKey();
|
||||
var button = e.getButton();
|
||||
if (button == 0 && ctrl) {
|
||||
var editor = e.editor;
|
||||
var docPos = e.getDocumentPosition();
|
||||
var session = editor.session;
|
||||
var token = session.getTokenAt(docPos.row, docPos.column);
|
||||
editor._emit("linkClick", { position: docPos, token: token });
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/linking"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
247
src/main/resources/static/assets/js/vendor/template/build/src/ext-modelist.js
vendored
Normal file
247
src/main/resources/static/assets/js/vendor/template/build/src/ext-modelist.js
vendored
Normal file
@ -0,0 +1,247 @@
|
||||
define("ace/ext/modelist",["require","exports","module"], function(require, exports, module){"use strict";
|
||||
var modes = [];
|
||||
function getModeForPath(path) {
|
||||
var mode = modesByName.text;
|
||||
var fileName = path.split(/[\/\\]/).pop();
|
||||
for (var i = 0; i < modes.length; i++) {
|
||||
if (modes[i].supportsFile(fileName)) {
|
||||
mode = modes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
var Mode = function (name, caption, extensions) {
|
||||
this.name = name;
|
||||
this.caption = caption;
|
||||
this.mode = "ace/mode/" + name;
|
||||
this.extensions = extensions;
|
||||
var re;
|
||||
if (/\^/.test(extensions)) {
|
||||
re = extensions.replace(/\|(\^)?/g, function (a, b) {
|
||||
return "$|" + (b ? "^" : "^.*\\.");
|
||||
}) + "$";
|
||||
}
|
||||
else {
|
||||
re = "^.*\\.(" + extensions + ")$";
|
||||
}
|
||||
this.extRe = new RegExp(re, "gi");
|
||||
};
|
||||
Mode.prototype.supportsFile = function (filename) {
|
||||
return filename.match(this.extRe);
|
||||
};
|
||||
var supportedModes = {
|
||||
ABAP: ["abap"],
|
||||
ABC: ["abc"],
|
||||
ActionScript: ["as"],
|
||||
ADA: ["ada|adb"],
|
||||
Alda: ["alda"],
|
||||
Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
|
||||
Apex: ["apex|cls|trigger|tgr"],
|
||||
AQL: ["aql"],
|
||||
AsciiDoc: ["asciidoc|adoc"],
|
||||
ASL: ["dsl|asl|asl.json"],
|
||||
Assembly_x86: ["asm|a"],
|
||||
AutoHotKey: ["ahk"],
|
||||
BatchFile: ["bat|cmd"],
|
||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
|
||||
C9Search: ["c9search_results"],
|
||||
Cirru: ["cirru|cr"],
|
||||
Clojure: ["clj|cljs"],
|
||||
Cobol: ["CBL|COB"],
|
||||
coffee: ["coffee|cf|cson|^Cakefile"],
|
||||
ColdFusion: ["cfm"],
|
||||
Crystal: ["cr"],
|
||||
CSharp: ["cs"],
|
||||
Csound_Document: ["csd"],
|
||||
Csound_Orchestra: ["orc"],
|
||||
Csound_Score: ["sco"],
|
||||
CSS: ["css"],
|
||||
Curly: ["curly"],
|
||||
D: ["d|di"],
|
||||
Dart: ["dart"],
|
||||
Diff: ["diff|patch"],
|
||||
Dockerfile: ["^Dockerfile"],
|
||||
Dot: ["dot"],
|
||||
Drools: ["drl"],
|
||||
Edifact: ["edi"],
|
||||
Eiffel: ["e|ge"],
|
||||
EJS: ["ejs"],
|
||||
Elixir: ["ex|exs"],
|
||||
Elm: ["elm"],
|
||||
Erlang: ["erl|hrl"],
|
||||
Forth: ["frt|fs|ldr|fth|4th"],
|
||||
Fortran: ["f|f90"],
|
||||
FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
|
||||
FSL: ["fsl"],
|
||||
FTL: ["ftl"],
|
||||
Gcode: ["gcode"],
|
||||
Gherkin: ["feature"],
|
||||
Gitignore: ["^.gitignore"],
|
||||
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|vue|we|wpy"],
|
||||
HTML_Elixir: ["eex|html.eex"],
|
||||
HTML_Ruby: ["erb|rhtml|html.erb"],
|
||||
INI: ["ini|conf|cfg|prefs"],
|
||||
Io: ["io"],
|
||||
Ion: ["ion"],
|
||||
Jack: ["jack"],
|
||||
Jade: ["jade|pug"],
|
||||
Java: ["java"],
|
||||
JavaScript: ["js|jsm|jsx|cjs|mjs"],
|
||||
JSON: ["json"],
|
||||
JSON5: ["json5"],
|
||||
JSONiq: ["jq"],
|
||||
JSP: ["jsp"],
|
||||
JSSM: ["jssm|jssm_state"],
|
||||
JSX: ["jsx"],
|
||||
Julia: ["jl"],
|
||||
Kotlin: ["kt|kts"],
|
||||
LaTeX: ["tex|latex|ltx|bib"],
|
||||
Latte: ["latte"],
|
||||
LESS: ["less"],
|
||||
Liquid: ["liquid"],
|
||||
Lisp: ["lisp"],
|
||||
LiveScript: ["ls"],
|
||||
Log: ["log"],
|
||||
LogiQL: ["logic|lql"],
|
||||
LSL: ["lsl"],
|
||||
Lua: ["lua"],
|
||||
LuaPage: ["lp"],
|
||||
Lucene: ["lucene"],
|
||||
Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
|
||||
Markdown: ["md|markdown"],
|
||||
Mask: ["mask"],
|
||||
MATLAB: ["matlab"],
|
||||
Maze: ["mz"],
|
||||
MediaWiki: ["wiki|mediawiki"],
|
||||
MEL: ["mel"],
|
||||
MIPS: ["s|asm"],
|
||||
MIXAL: ["mixal"],
|
||||
MUSHCode: ["mc|mush"],
|
||||
MySQL: ["mysql"],
|
||||
Nginx: ["nginx|conf"],
|
||||
Nim: ["nim"],
|
||||
Nix: ["nix"],
|
||||
NSIS: ["nsi|nsh"],
|
||||
Nunjucks: ["nunjucks|nunjs|nj|njk"],
|
||||
ObjectiveC: ["m|mm"],
|
||||
OCaml: ["ml|mli"],
|
||||
PartiQL: ["partiql|pql"],
|
||||
Pascal: ["pas|p"],
|
||||
Perl: ["pl|pm"],
|
||||
pgSQL: ["pgsql"],
|
||||
PHP_Laravel_blade: ["blade.php"],
|
||||
PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
|
||||
Pig: ["pig"],
|
||||
Powershell: ["ps1"],
|
||||
Praat: ["praat|praatscript|psc|proc"],
|
||||
Prisma: ["prisma"],
|
||||
Prolog: ["plg|prolog"],
|
||||
Properties: ["properties"],
|
||||
Protobuf: ["proto"],
|
||||
Puppet: ["epp|pp"],
|
||||
Python: ["py"],
|
||||
QML: ["qml"],
|
||||
R: ["r"],
|
||||
Raku: ["raku|rakumod|rakutest|p6|pl6|pm6"],
|
||||
Razor: ["cshtml|asp"],
|
||||
RDoc: ["Rd"],
|
||||
Red: ["red|reds"],
|
||||
RHTML: ["Rhtml"],
|
||||
Robot: ["robot|resource"],
|
||||
RST: ["rst"],
|
||||
Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
|
||||
Rust: ["rs"],
|
||||
SaC: ["sac"],
|
||||
SASS: ["sass"],
|
||||
SCAD: ["scad"],
|
||||
Scala: ["scala|sbt"],
|
||||
Scheme: ["scm|sm|rkt|oak|scheme"],
|
||||
Scrypt: ["scrypt"],
|
||||
SCSS: ["scss"],
|
||||
SH: ["sh|bash|^.bashrc"],
|
||||
SJS: ["sjs"],
|
||||
Slim: ["slim|skim"],
|
||||
Smarty: ["smarty|tpl"],
|
||||
Smithy: ["smithy"],
|
||||
snippets: ["snippets"],
|
||||
Soy_Template: ["soy"],
|
||||
Space: ["space"],
|
||||
SQL: ["sql"],
|
||||
SQLServer: ["sqlserver"],
|
||||
Stylus: ["styl|stylus"],
|
||||
SVG: ["svg"],
|
||||
Swift: ["swift"],
|
||||
Tcl: ["tcl"],
|
||||
Terraform: ["tf", "tfvars", "terragrunt"],
|
||||
Tex: ["tex"],
|
||||
Text: ["txt"],
|
||||
Textile: ["textile"],
|
||||
Toml: ["toml"],
|
||||
TSX: ["tsx"],
|
||||
Twig: ["twig|swig"],
|
||||
Typescript: ["ts|typescript|str"],
|
||||
Vala: ["vala"],
|
||||
VBScript: ["vbs|vb"],
|
||||
Velocity: ["vm"],
|
||||
Verilog: ["v|vh|sv|svh"],
|
||||
VHDL: ["vhd|vhdl"],
|
||||
Visualforce: ["vfp|component|page"],
|
||||
Wollok: ["wlk|wpgm|wtest"],
|
||||
XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
|
||||
XQuery: ["xq"],
|
||||
YAML: ["yaml|yml"],
|
||||
Zeek: ["zeek|bro"],
|
||||
Django: ["html"]
|
||||
};
|
||||
var nameOverrides = {
|
||||
ObjectiveC: "Objective-C",
|
||||
CSharp: "C#",
|
||||
golang: "Go",
|
||||
C_Cpp: "C and C++",
|
||||
Csound_Document: "Csound Document",
|
||||
Csound_Orchestra: "Csound",
|
||||
Csound_Score: "Csound Score",
|
||||
coffee: "CoffeeScript",
|
||||
HTML_Ruby: "HTML (Ruby)",
|
||||
HTML_Elixir: "HTML (Elixir)",
|
||||
FTL: "FreeMarker",
|
||||
PHP_Laravel_blade: "PHP (Blade Template)",
|
||||
Perl6: "Perl 6",
|
||||
AutoHotKey: "AutoHotkey / AutoIt"
|
||||
};
|
||||
var modesByName = {};
|
||||
for (var name in supportedModes) {
|
||||
var data = supportedModes[name];
|
||||
var displayName = (nameOverrides[name] || name).replace(/_/g, " ");
|
||||
var filename = name.toLowerCase();
|
||||
var mode = new Mode(filename, displayName, data[0]);
|
||||
modesByName[filename] = mode;
|
||||
modes.push(mode);
|
||||
}
|
||||
module.exports = {
|
||||
getModeForPath: getModeForPath,
|
||||
modes: modes,
|
||||
modesByName: modesByName
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/modelist"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
732
src/main/resources/static/assets/js/vendor/template/build/src/ext-options.js
vendored
Normal file
732
src/main/resources/static/assets/js/vendor/template/build/src/ext-options.js
vendored
Normal file
@ -0,0 +1,732 @@
|
||||
define("ace/ext/menu_tools/settings_menu.css",["require","exports","module"], function(require, exports, module){module.exports = "#ace_settingsmenu, #kbshortcutmenu {\n background-color: #F7F7F7;\n color: black;\n box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\n padding: 1em 0.5em 2em 1em;\n overflow: auto;\n position: absolute;\n margin: 0;\n bottom: 0;\n right: 0;\n top: 0;\n z-index: 9991;\n cursor: default;\n}\n\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\n box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\n background-color: rgba(255, 255, 255, 0.6);\n color: black;\n}\n\n.ace_optionsMenuEntry:hover {\n background-color: rgba(100, 100, 100, 0.1);\n transition: all 0.3s\n}\n\n.ace_closeButton {\n background: rgba(245, 146, 146, 0.5);\n border: 1px solid #F48A8A;\n border-radius: 50%;\n padding: 7px;\n position: absolute;\n right: -8px;\n top: -8px;\n z-index: 100000;\n}\n.ace_closeButton{\n background: rgba(245, 146, 146, 0.9);\n}\n.ace_optionsMenuKey {\n color: darkslateblue;\n font-weight: bold;\n}\n.ace_optionsMenuCommand {\n color: darkcyan;\n font-weight: normal;\n}\n.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\n vertical-align: middle;\n}\n\n.ace_optionsMenuEntry button[ace_selected_button=true] {\n background: #e7e7e7;\n box-shadow: 1px 0px 2px 0px #adadad inset;\n border-color: #adadad;\n}\n.ace_optionsMenuEntry button {\n background: white;\n border: 1px solid lightgray;\n margin: 0px;\n}\n.ace_optionsMenuEntry button:hover{\n background: #f0f0f0;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom","ace/ext/menu_tools/settings_menu.css"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
'use strict';
|
||||
var dom = require("../../lib/dom");
|
||||
var cssText = require("./settings_menu.css");
|
||||
dom.importCssString(cssText, "settings_menu.css", false);
|
||||
module.exports.overlayPage = function overlayPage(editor, contentElement, callback) {
|
||||
var closer = document.createElement('div');
|
||||
var ignoreFocusOut = false;
|
||||
function documentEscListener(e) {
|
||||
if (e.keyCode === 27) {
|
||||
close();
|
||||
}
|
||||
}
|
||||
function close() {
|
||||
if (!closer)
|
||||
return;
|
||||
document.removeEventListener('keydown', documentEscListener);
|
||||
closer.parentNode.removeChild(closer);
|
||||
if (editor) {
|
||||
editor.focus();
|
||||
}
|
||||
closer = null;
|
||||
callback && callback();
|
||||
}
|
||||
function setIgnoreFocusOut(ignore) {
|
||||
ignoreFocusOut = ignore;
|
||||
if (ignore) {
|
||||
closer.style.pointerEvents = "none";
|
||||
contentElement.style.pointerEvents = "auto";
|
||||
}
|
||||
}
|
||||
closer.style.cssText = 'margin: 0; padding: 0; ' +
|
||||
'position: fixed; top:0; bottom:0; left:0; right:0;' +
|
||||
'z-index: 9990; ' +
|
||||
(editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');
|
||||
closer.addEventListener('click', function (e) {
|
||||
if (!ignoreFocusOut) {
|
||||
close();
|
||||
}
|
||||
});
|
||||
document.addEventListener('keydown', documentEscListener);
|
||||
contentElement.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
closer.appendChild(contentElement);
|
||||
document.body.appendChild(closer);
|
||||
if (editor) {
|
||||
editor.blur();
|
||||
}
|
||||
return {
|
||||
close: close,
|
||||
setIgnoreFocusOut: setIgnoreFocusOut
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/modelist",["require","exports","module"], function(require, exports, module){"use strict";
|
||||
var modes = [];
|
||||
function getModeForPath(path) {
|
||||
var mode = modesByName.text;
|
||||
var fileName = path.split(/[\/\\]/).pop();
|
||||
for (var i = 0; i < modes.length; i++) {
|
||||
if (modes[i].supportsFile(fileName)) {
|
||||
mode = modes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
var Mode = function (name, caption, extensions) {
|
||||
this.name = name;
|
||||
this.caption = caption;
|
||||
this.mode = "ace/mode/" + name;
|
||||
this.extensions = extensions;
|
||||
var re;
|
||||
if (/\^/.test(extensions)) {
|
||||
re = extensions.replace(/\|(\^)?/g, function (a, b) {
|
||||
return "$|" + (b ? "^" : "^.*\\.");
|
||||
}) + "$";
|
||||
}
|
||||
else {
|
||||
re = "^.*\\.(" + extensions + ")$";
|
||||
}
|
||||
this.extRe = new RegExp(re, "gi");
|
||||
};
|
||||
Mode.prototype.supportsFile = function (filename) {
|
||||
return filename.match(this.extRe);
|
||||
};
|
||||
var supportedModes = {
|
||||
ABAP: ["abap"],
|
||||
ABC: ["abc"],
|
||||
ActionScript: ["as"],
|
||||
ADA: ["ada|adb"],
|
||||
Alda: ["alda"],
|
||||
Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
|
||||
Apex: ["apex|cls|trigger|tgr"],
|
||||
AQL: ["aql"],
|
||||
AsciiDoc: ["asciidoc|adoc"],
|
||||
ASL: ["dsl|asl|asl.json"],
|
||||
Assembly_x86: ["asm|a"],
|
||||
AutoHotKey: ["ahk"],
|
||||
BatchFile: ["bat|cmd"],
|
||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
|
||||
C9Search: ["c9search_results"],
|
||||
Cirru: ["cirru|cr"],
|
||||
Clojure: ["clj|cljs"],
|
||||
Cobol: ["CBL|COB"],
|
||||
coffee: ["coffee|cf|cson|^Cakefile"],
|
||||
ColdFusion: ["cfm"],
|
||||
Crystal: ["cr"],
|
||||
CSharp: ["cs"],
|
||||
Csound_Document: ["csd"],
|
||||
Csound_Orchestra: ["orc"],
|
||||
Csound_Score: ["sco"],
|
||||
CSS: ["css"],
|
||||
Curly: ["curly"],
|
||||
D: ["d|di"],
|
||||
Dart: ["dart"],
|
||||
Diff: ["diff|patch"],
|
||||
Dockerfile: ["^Dockerfile"],
|
||||
Dot: ["dot"],
|
||||
Drools: ["drl"],
|
||||
Edifact: ["edi"],
|
||||
Eiffel: ["e|ge"],
|
||||
EJS: ["ejs"],
|
||||
Elixir: ["ex|exs"],
|
||||
Elm: ["elm"],
|
||||
Erlang: ["erl|hrl"],
|
||||
Forth: ["frt|fs|ldr|fth|4th"],
|
||||
Fortran: ["f|f90"],
|
||||
FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
|
||||
FSL: ["fsl"],
|
||||
FTL: ["ftl"],
|
||||
Gcode: ["gcode"],
|
||||
Gherkin: ["feature"],
|
||||
Gitignore: ["^.gitignore"],
|
||||
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|vue|we|wpy"],
|
||||
HTML_Elixir: ["eex|html.eex"],
|
||||
HTML_Ruby: ["erb|rhtml|html.erb"],
|
||||
INI: ["ini|conf|cfg|prefs"],
|
||||
Io: ["io"],
|
||||
Ion: ["ion"],
|
||||
Jack: ["jack"],
|
||||
Jade: ["jade|pug"],
|
||||
Java: ["java"],
|
||||
JavaScript: ["js|jsm|jsx|cjs|mjs"],
|
||||
JSON: ["json"],
|
||||
JSON5: ["json5"],
|
||||
JSONiq: ["jq"],
|
||||
JSP: ["jsp"],
|
||||
JSSM: ["jssm|jssm_state"],
|
||||
JSX: ["jsx"],
|
||||
Julia: ["jl"],
|
||||
Kotlin: ["kt|kts"],
|
||||
LaTeX: ["tex|latex|ltx|bib"],
|
||||
Latte: ["latte"],
|
||||
LESS: ["less"],
|
||||
Liquid: ["liquid"],
|
||||
Lisp: ["lisp"],
|
||||
LiveScript: ["ls"],
|
||||
Log: ["log"],
|
||||
LogiQL: ["logic|lql"],
|
||||
LSL: ["lsl"],
|
||||
Lua: ["lua"],
|
||||
LuaPage: ["lp"],
|
||||
Lucene: ["lucene"],
|
||||
Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
|
||||
Markdown: ["md|markdown"],
|
||||
Mask: ["mask"],
|
||||
MATLAB: ["matlab"],
|
||||
Maze: ["mz"],
|
||||
MediaWiki: ["wiki|mediawiki"],
|
||||
MEL: ["mel"],
|
||||
MIPS: ["s|asm"],
|
||||
MIXAL: ["mixal"],
|
||||
MUSHCode: ["mc|mush"],
|
||||
MySQL: ["mysql"],
|
||||
Nginx: ["nginx|conf"],
|
||||
Nim: ["nim"],
|
||||
Nix: ["nix"],
|
||||
NSIS: ["nsi|nsh"],
|
||||
Nunjucks: ["nunjucks|nunjs|nj|njk"],
|
||||
ObjectiveC: ["m|mm"],
|
||||
OCaml: ["ml|mli"],
|
||||
PartiQL: ["partiql|pql"],
|
||||
Pascal: ["pas|p"],
|
||||
Perl: ["pl|pm"],
|
||||
pgSQL: ["pgsql"],
|
||||
PHP_Laravel_blade: ["blade.php"],
|
||||
PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
|
||||
Pig: ["pig"],
|
||||
Powershell: ["ps1"],
|
||||
Praat: ["praat|praatscript|psc|proc"],
|
||||
Prisma: ["prisma"],
|
||||
Prolog: ["plg|prolog"],
|
||||
Properties: ["properties"],
|
||||
Protobuf: ["proto"],
|
||||
Puppet: ["epp|pp"],
|
||||
Python: ["py"],
|
||||
QML: ["qml"],
|
||||
R: ["r"],
|
||||
Raku: ["raku|rakumod|rakutest|p6|pl6|pm6"],
|
||||
Razor: ["cshtml|asp"],
|
||||
RDoc: ["Rd"],
|
||||
Red: ["red|reds"],
|
||||
RHTML: ["Rhtml"],
|
||||
Robot: ["robot|resource"],
|
||||
RST: ["rst"],
|
||||
Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
|
||||
Rust: ["rs"],
|
||||
SaC: ["sac"],
|
||||
SASS: ["sass"],
|
||||
SCAD: ["scad"],
|
||||
Scala: ["scala|sbt"],
|
||||
Scheme: ["scm|sm|rkt|oak|scheme"],
|
||||
Scrypt: ["scrypt"],
|
||||
SCSS: ["scss"],
|
||||
SH: ["sh|bash|^.bashrc"],
|
||||
SJS: ["sjs"],
|
||||
Slim: ["slim|skim"],
|
||||
Smarty: ["smarty|tpl"],
|
||||
Smithy: ["smithy"],
|
||||
snippets: ["snippets"],
|
||||
Soy_Template: ["soy"],
|
||||
Space: ["space"],
|
||||
SQL: ["sql"],
|
||||
SQLServer: ["sqlserver"],
|
||||
Stylus: ["styl|stylus"],
|
||||
SVG: ["svg"],
|
||||
Swift: ["swift"],
|
||||
Tcl: ["tcl"],
|
||||
Terraform: ["tf", "tfvars", "terragrunt"],
|
||||
Tex: ["tex"],
|
||||
Text: ["txt"],
|
||||
Textile: ["textile"],
|
||||
Toml: ["toml"],
|
||||
TSX: ["tsx"],
|
||||
Twig: ["twig|swig"],
|
||||
Typescript: ["ts|typescript|str"],
|
||||
Vala: ["vala"],
|
||||
VBScript: ["vbs|vb"],
|
||||
Velocity: ["vm"],
|
||||
Verilog: ["v|vh|sv|svh"],
|
||||
VHDL: ["vhd|vhdl"],
|
||||
Visualforce: ["vfp|component|page"],
|
||||
Wollok: ["wlk|wpgm|wtest"],
|
||||
XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
|
||||
XQuery: ["xq"],
|
||||
YAML: ["yaml|yml"],
|
||||
Zeek: ["zeek|bro"],
|
||||
Django: ["html"]
|
||||
};
|
||||
var nameOverrides = {
|
||||
ObjectiveC: "Objective-C",
|
||||
CSharp: "C#",
|
||||
golang: "Go",
|
||||
C_Cpp: "C and C++",
|
||||
Csound_Document: "Csound Document",
|
||||
Csound_Orchestra: "Csound",
|
||||
Csound_Score: "Csound Score",
|
||||
coffee: "CoffeeScript",
|
||||
HTML_Ruby: "HTML (Ruby)",
|
||||
HTML_Elixir: "HTML (Elixir)",
|
||||
FTL: "FreeMarker",
|
||||
PHP_Laravel_blade: "PHP (Blade Template)",
|
||||
Perl6: "Perl 6",
|
||||
AutoHotKey: "AutoHotkey / AutoIt"
|
||||
};
|
||||
var modesByName = {};
|
||||
for (var name in supportedModes) {
|
||||
var data = supportedModes[name];
|
||||
var displayName = (nameOverrides[name] || name).replace(/_/g, " ");
|
||||
var filename = name.toLowerCase();
|
||||
var mode = new Mode(filename, displayName, data[0]);
|
||||
modesByName[filename] = mode;
|
||||
modes.push(mode);
|
||||
}
|
||||
module.exports = {
|
||||
getModeForPath: getModeForPath,
|
||||
modes: modes,
|
||||
modesByName: modesByName
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/themelist",["require","exports","module"], function(require, exports, module){/**
|
||||
* Generates a list of themes available when ace was built.
|
||||
* @fileOverview Generates a list of themes available when ace was built.
|
||||
* @author <a href="mailto:matthewkastor@gmail.com">
|
||||
* Matthew Christopher Kastor-Inare III </a><br />
|
||||
* ☭ Hial Atropa!! ☭
|
||||
*/
|
||||
"use strict";
|
||||
var themeData = [
|
||||
["Chrome"],
|
||||
["Clouds"],
|
||||
["Crimson Editor"],
|
||||
["Dawn"],
|
||||
["Dreamweaver"],
|
||||
["Eclipse"],
|
||||
["GitHub"],
|
||||
["IPlastic"],
|
||||
["Solarized Light"],
|
||||
["TextMate"],
|
||||
["Tomorrow"],
|
||||
["XCode"],
|
||||
["Kuroir"],
|
||||
["KatzenMilch"],
|
||||
["SQL Server", "sqlserver", "light"],
|
||||
["Ambiance", "ambiance", "dark"],
|
||||
["Chaos", "chaos", "dark"],
|
||||
["Clouds Midnight", "clouds_midnight", "dark"],
|
||||
["Dracula", "", "dark"],
|
||||
["Cobalt", "cobalt", "dark"],
|
||||
["Gruvbox", "gruvbox", "dark"],
|
||||
["Green on Black", "gob", "dark"],
|
||||
["idle Fingers", "idle_fingers", "dark"],
|
||||
["krTheme", "kr_theme", "dark"],
|
||||
["Merbivore", "merbivore", "dark"],
|
||||
["Merbivore Soft", "merbivore_soft", "dark"],
|
||||
["Mono Industrial", "mono_industrial", "dark"],
|
||||
["Monokai", "monokai", "dark"],
|
||||
["Nord Dark", "nord_dark", "dark"],
|
||||
["One Dark", "one_dark", "dark"],
|
||||
["Pastel on dark", "pastel_on_dark", "dark"],
|
||||
["Solarized Dark", "solarized_dark", "dark"],
|
||||
["Terminal", "terminal", "dark"],
|
||||
["Tomorrow Night", "tomorrow_night", "dark"],
|
||||
["Tomorrow Night Blue", "tomorrow_night_blue", "dark"],
|
||||
["Tomorrow Night Bright", "tomorrow_night_bright", "dark"],
|
||||
["Tomorrow Night 80s", "tomorrow_night_eighties", "dark"],
|
||||
["Twilight", "twilight", "dark"],
|
||||
["Vibrant Ink", "vibrant_ink", "dark"]
|
||||
];
|
||||
exports.themesByName = {};
|
||||
exports.themes = themeData.map(function (data) {
|
||||
var name = data[1] || data[0].replace(/ /g, "_").toLowerCase();
|
||||
var theme = {
|
||||
caption: data[0],
|
||||
theme: "ace/theme/" + name,
|
||||
isDark: data[2] == "dark",
|
||||
name: name
|
||||
};
|
||||
exports.themesByName[name] = theme;
|
||||
return theme;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/options",["require","exports","module","ace/ext/menu_tools/overlay_page","ace/lib/dom","ace/lib/oop","ace/config","ace/lib/event_emitter","ace/ext/modelist","ace/ext/themelist"], function(require, exports, module){"use strict";
|
||||
require("./menu_tools/overlay_page");
|
||||
var dom = require("../lib/dom");
|
||||
var oop = require("../lib/oop");
|
||||
var config = require("../config");
|
||||
var EventEmitter = require("../lib/event_emitter").EventEmitter;
|
||||
var buildDom = dom.buildDom;
|
||||
var modelist = require("./modelist");
|
||||
var themelist = require("./themelist");
|
||||
var themes = { Bright: [], Dark: [] };
|
||||
themelist.themes.forEach(function (x) {
|
||||
themes[x.isDark ? "Dark" : "Bright"].push({ caption: x.caption, value: x.theme });
|
||||
});
|
||||
var modes = modelist.modes.map(function (x) {
|
||||
return { caption: x.caption, value: x.mode };
|
||||
});
|
||||
var optionGroups = {
|
||||
Main: {
|
||||
Mode: {
|
||||
path: "mode",
|
||||
type: "select",
|
||||
items: modes
|
||||
},
|
||||
Theme: {
|
||||
path: "theme",
|
||||
type: "select",
|
||||
items: themes
|
||||
},
|
||||
"Keybinding": {
|
||||
type: "buttonBar",
|
||||
path: "keyboardHandler",
|
||||
items: [
|
||||
{ caption: "Ace", value: null },
|
||||
{ caption: "Vim", value: "ace/keyboard/vim" },
|
||||
{ caption: "Emacs", value: "ace/keyboard/emacs" },
|
||||
{ caption: "Sublime", value: "ace/keyboard/sublime" },
|
||||
{ caption: "VSCode", value: "ace/keyboard/vscode" }
|
||||
]
|
||||
},
|
||||
"Font Size": {
|
||||
path: "fontSize",
|
||||
type: "number",
|
||||
defaultValue: 12,
|
||||
defaults: [
|
||||
{ caption: "12px", value: 12 },
|
||||
{ caption: "24px", value: 24 }
|
||||
]
|
||||
},
|
||||
"Soft Wrap": {
|
||||
type: "buttonBar",
|
||||
path: "wrap",
|
||||
items: [
|
||||
{ caption: "Off", value: "off" },
|
||||
{ caption: "View", value: "free" },
|
||||
{ caption: "margin", value: "printMargin" },
|
||||
{ caption: "40", value: "40" }
|
||||
]
|
||||
},
|
||||
"Cursor Style": {
|
||||
path: "cursorStyle",
|
||||
items: [
|
||||
{ caption: "Ace", value: "ace" },
|
||||
{ caption: "Slim", value: "slim" },
|
||||
{ caption: "Smooth", value: "smooth" },
|
||||
{ caption: "Smooth And Slim", value: "smooth slim" },
|
||||
{ caption: "Wide", value: "wide" }
|
||||
]
|
||||
},
|
||||
"Folding": {
|
||||
path: "foldStyle",
|
||||
items: [
|
||||
{ caption: "Manual", value: "manual" },
|
||||
{ caption: "Mark begin", value: "markbegin" },
|
||||
{ caption: "Mark begin and end", value: "markbeginend" }
|
||||
]
|
||||
},
|
||||
"Soft Tabs": [{
|
||||
path: "useSoftTabs"
|
||||
}, {
|
||||
ariaLabel: "Tab Size",
|
||||
path: "tabSize",
|
||||
type: "number",
|
||||
values: [2, 3, 4, 8, 16]
|
||||
}],
|
||||
"Overscroll": {
|
||||
type: "buttonBar",
|
||||
path: "scrollPastEnd",
|
||||
items: [
|
||||
{ caption: "None", value: 0 },
|
||||
{ caption: "Half", value: 0.5 },
|
||||
{ caption: "Full", value: 1 }
|
||||
]
|
||||
}
|
||||
},
|
||||
More: {
|
||||
"Atomic soft tabs": {
|
||||
path: "navigateWithinSoftTabs"
|
||||
},
|
||||
"Enable Behaviours": {
|
||||
path: "behavioursEnabled"
|
||||
},
|
||||
"Wrap with quotes": {
|
||||
path: "wrapBehavioursEnabled"
|
||||
},
|
||||
"Enable Auto Indent": {
|
||||
path: "enableAutoIndent"
|
||||
},
|
||||
"Full Line Selection": {
|
||||
type: "checkbox",
|
||||
values: "text|line",
|
||||
path: "selectionStyle"
|
||||
},
|
||||
"Highlight Active Line": {
|
||||
path: "highlightActiveLine"
|
||||
},
|
||||
"Show Invisibles": {
|
||||
path: "showInvisibles"
|
||||
},
|
||||
"Show Indent Guides": {
|
||||
path: "displayIndentGuides"
|
||||
},
|
||||
"Highlight Indent Guides": {
|
||||
path: "highlightIndentGuides"
|
||||
},
|
||||
"Persistent HScrollbar": {
|
||||
path: "hScrollBarAlwaysVisible"
|
||||
},
|
||||
"Persistent VScrollbar": {
|
||||
path: "vScrollBarAlwaysVisible"
|
||||
},
|
||||
"Animate scrolling": {
|
||||
path: "animatedScroll"
|
||||
},
|
||||
"Show Gutter": {
|
||||
path: "showGutter"
|
||||
},
|
||||
"Show Line Numbers": {
|
||||
path: "showLineNumbers"
|
||||
},
|
||||
"Relative Line Numbers": {
|
||||
path: "relativeLineNumbers"
|
||||
},
|
||||
"Fixed Gutter Width": {
|
||||
path: "fixedWidthGutter"
|
||||
},
|
||||
"Show Print Margin": [{
|
||||
path: "showPrintMargin"
|
||||
}, {
|
||||
ariaLabel: "Print Margin",
|
||||
type: "number",
|
||||
path: "printMarginColumn"
|
||||
}],
|
||||
"Indented Soft Wrap": {
|
||||
path: "indentedSoftWrap"
|
||||
},
|
||||
"Highlight selected word": {
|
||||
path: "highlightSelectedWord"
|
||||
},
|
||||
"Fade Fold Widgets": {
|
||||
path: "fadeFoldWidgets"
|
||||
},
|
||||
"Use textarea for IME": {
|
||||
path: "useTextareaForIME"
|
||||
},
|
||||
"Merge Undo Deltas": {
|
||||
path: "mergeUndoDeltas",
|
||||
items: [
|
||||
{ caption: "Always", value: "always" },
|
||||
{ caption: "Never", value: "false" },
|
||||
{ caption: "Timed", value: "true" }
|
||||
]
|
||||
},
|
||||
"Elastic Tabstops": {
|
||||
path: "useElasticTabstops"
|
||||
},
|
||||
"Incremental Search": {
|
||||
path: "useIncrementalSearch"
|
||||
},
|
||||
"Read-only": {
|
||||
path: "readOnly"
|
||||
},
|
||||
"Copy without selection": {
|
||||
path: "copyWithEmptySelection"
|
||||
},
|
||||
"Live Autocompletion": {
|
||||
path: "enableLiveAutocompletion"
|
||||
},
|
||||
"Custom scrollbar": {
|
||||
path: "customScrollbar"
|
||||
}
|
||||
}
|
||||
};
|
||||
var OptionPanel = function (editor, element) {
|
||||
this.editor = editor;
|
||||
this.container = element || document.createElement("div");
|
||||
this.groups = [];
|
||||
this.options = {};
|
||||
};
|
||||
(function () {
|
||||
oop.implement(this, EventEmitter);
|
||||
this.add = function (config) {
|
||||
if (config.Main)
|
||||
oop.mixin(optionGroups.Main, config.Main);
|
||||
if (config.More)
|
||||
oop.mixin(optionGroups.More, config.More);
|
||||
};
|
||||
this.render = function () {
|
||||
this.container.innerHTML = "";
|
||||
buildDom(["table", { role: "presentation", id: "controls" },
|
||||
this.renderOptionGroup(optionGroups.Main),
|
||||
["tr", null, ["td", { colspan: 2 },
|
||||
["table", { role: "presentation", id: "more-controls" },
|
||||
this.renderOptionGroup(optionGroups.More)
|
||||
]
|
||||
]],
|
||||
["tr", null, ["td", { colspan: 2 }, "version " + config.version]]
|
||||
], this.container);
|
||||
};
|
||||
this.renderOptionGroup = function (group) {
|
||||
return Object.keys(group).map(function (key, i) {
|
||||
var item = group[key];
|
||||
if (!item.position)
|
||||
item.position = i / 10000;
|
||||
if (!item.label)
|
||||
item.label = key;
|
||||
return item;
|
||||
}).sort(function (a, b) {
|
||||
return a.position - b.position;
|
||||
}).map(function (item) {
|
||||
return this.renderOption(item.label, item);
|
||||
}, this);
|
||||
};
|
||||
this.renderOptionControl = function (key, option) {
|
||||
var self = this;
|
||||
if (Array.isArray(option)) {
|
||||
return option.map(function (x) {
|
||||
return self.renderOptionControl(key, x);
|
||||
});
|
||||
}
|
||||
var control;
|
||||
var value = self.getOption(option);
|
||||
if (option.values && option.type != "checkbox") {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
option.items = option.values.map(function (v) {
|
||||
return { value: v, name: v };
|
||||
});
|
||||
}
|
||||
if (option.type == "buttonBar") {
|
||||
control = ["div", { role: "group", "aria-labelledby": option.path + "-label" }, option.items.map(function (item) {
|
||||
return ["button", {
|
||||
value: item.value,
|
||||
ace_selected_button: value == item.value,
|
||||
'aria-pressed': value == item.value,
|
||||
onclick: function () {
|
||||
self.setOption(option, item.value);
|
||||
var nodes = this.parentNode.querySelectorAll("[ace_selected_button]");
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].removeAttribute("ace_selected_button");
|
||||
nodes[i].setAttribute("aria-pressed", false);
|
||||
}
|
||||
this.setAttribute("ace_selected_button", true);
|
||||
this.setAttribute("aria-pressed", true);
|
||||
}
|
||||
}, item.desc || item.caption || item.name];
|
||||
})];
|
||||
}
|
||||
else if (option.type == "number") {
|
||||
control = ["input", { type: "number", value: value || option.defaultValue, style: "width:3em", oninput: function () {
|
||||
self.setOption(option, parseInt(this.value));
|
||||
} }];
|
||||
if (option.ariaLabel) {
|
||||
control[1]["aria-label"] = option.ariaLabel;
|
||||
}
|
||||
else {
|
||||
control[1].id = key;
|
||||
}
|
||||
if (option.defaults) {
|
||||
control = [control, option.defaults.map(function (item) {
|
||||
return ["button", { onclick: function () {
|
||||
var input = this.parentNode.firstChild;
|
||||
input.value = item.value;
|
||||
input.oninput();
|
||||
} }, item.caption];
|
||||
})];
|
||||
}
|
||||
}
|
||||
else if (option.items) {
|
||||
var buildItems = function (items) {
|
||||
return items.map(function (item) {
|
||||
return ["option", { value: item.value || item.name }, item.desc || item.caption || item.name];
|
||||
});
|
||||
};
|
||||
var items = Array.isArray(option.items)
|
||||
? buildItems(option.items)
|
||||
: Object.keys(option.items).map(function (key) {
|
||||
return ["optgroup", { "label": key }, buildItems(option.items[key])];
|
||||
});
|
||||
control = ["select", { id: key, value: value, onchange: function () {
|
||||
self.setOption(option, this.value);
|
||||
} }, items];
|
||||
}
|
||||
else {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
if (option.values)
|
||||
value = value == option.values[1];
|
||||
control = ["input", { type: "checkbox", id: key, checked: value || null, onchange: function () {
|
||||
var value = this.checked;
|
||||
if (option.values)
|
||||
value = option.values[value ? 1 : 0];
|
||||
self.setOption(option, value);
|
||||
} }];
|
||||
if (option.type == "checkedNumber") {
|
||||
control = [control, []];
|
||||
}
|
||||
}
|
||||
return control;
|
||||
};
|
||||
this.renderOption = function (key, option) {
|
||||
if (option.path && !option.onchange && !this.editor.$options[option.path])
|
||||
return;
|
||||
var path = Array.isArray(option) ? option[0].path : option.path;
|
||||
this.options[path] = option;
|
||||
var safeKey = "-" + path;
|
||||
var safeId = path + "-label";
|
||||
var control = this.renderOptionControl(safeKey, option);
|
||||
return ["tr", { class: "ace_optionsMenuEntry" }, ["td",
|
||||
["label", { for: safeKey, id: safeId }, key]
|
||||
], ["td", control]];
|
||||
};
|
||||
this.setOption = function (option, value) {
|
||||
if (typeof option == "string")
|
||||
option = this.options[option];
|
||||
if (value == "false")
|
||||
value = false;
|
||||
if (value == "true")
|
||||
value = true;
|
||||
if (value == "null")
|
||||
value = null;
|
||||
if (value == "undefined")
|
||||
value = undefined;
|
||||
if (typeof value == "string" && parseFloat(value).toString() == value)
|
||||
value = parseFloat(value);
|
||||
if (option.onchange)
|
||||
option.onchange(value);
|
||||
else if (option.path)
|
||||
this.editor.setOption(option.path, value);
|
||||
this._signal("setOption", { name: option.path, value: value });
|
||||
};
|
||||
this.getOption = function (option) {
|
||||
if (option.getValue)
|
||||
return option.getValue();
|
||||
return this.editor.getOption(option.path);
|
||||
};
|
||||
}).call(OptionPanel.prototype);
|
||||
exports.OptionPanel = OptionPanel;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/options"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
2517
src/main/resources/static/assets/js/vendor/template/build/src/ext-prompt.js
vendored
Normal file
2517
src/main/resources/static/assets/js/vendor/template/build/src/ext-prompt.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
121
src/main/resources/static/assets/js/vendor/template/build/src/ext-rtl.js
vendored
Normal file
121
src/main/resources/static/assets/js/vendor/template/build/src/ext-rtl.js
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
define("ace/ext/rtl",["require","exports","module","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var commands = [{
|
||||
name: "leftToRight",
|
||||
bindKey: { win: "Ctrl-Alt-Shift-L", mac: "Command-Alt-Shift-L" },
|
||||
exec: function (editor) {
|
||||
editor.session.$bidiHandler.setRtlDirection(editor, false);
|
||||
},
|
||||
readOnly: true
|
||||
}, {
|
||||
name: "rightToLeft",
|
||||
bindKey: { win: "Ctrl-Alt-Shift-R", mac: "Command-Alt-Shift-R" },
|
||||
exec: function (editor) {
|
||||
editor.session.$bidiHandler.setRtlDirection(editor, true);
|
||||
},
|
||||
readOnly: true
|
||||
}];
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
rtlText: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
this.on("change", onChange);
|
||||
this.on("changeSelection", onChangeSelection);
|
||||
this.renderer.on("afterRender", updateLineDirection);
|
||||
this.commands.on("exec", onCommandEmitted);
|
||||
this.commands.addCommands(commands);
|
||||
}
|
||||
else {
|
||||
this.off("change", onChange);
|
||||
this.off("changeSelection", onChangeSelection);
|
||||
this.renderer.off("afterRender", updateLineDirection);
|
||||
this.commands.off("exec", onCommandEmitted);
|
||||
this.commands.removeCommands(commands);
|
||||
clearTextLayer(this.renderer);
|
||||
}
|
||||
this.renderer.updateFull();
|
||||
}
|
||||
},
|
||||
rtl: {
|
||||
set: function (val) {
|
||||
this.session.$bidiHandler.$isRtl = val;
|
||||
if (val) {
|
||||
this.setOption("rtlText", false);
|
||||
this.renderer.on("afterRender", updateLineDirection);
|
||||
this.session.$bidiHandler.seenBidi = true;
|
||||
}
|
||||
else {
|
||||
this.renderer.off("afterRender", updateLineDirection);
|
||||
clearTextLayer(this.renderer);
|
||||
}
|
||||
this.renderer.updateFull();
|
||||
}
|
||||
}
|
||||
});
|
||||
function onChangeSelection(e, editor) {
|
||||
var lead = editor.getSelection().lead;
|
||||
if (editor.session.$bidiHandler.isRtlLine(lead.row)) {
|
||||
if (lead.column === 0) {
|
||||
if (editor.session.$bidiHandler.isMoveLeftOperation && lead.row > 0) {
|
||||
editor.getSelection().moveCursorTo(lead.row - 1, editor.session.getLine(lead.row - 1).length);
|
||||
}
|
||||
else {
|
||||
if (editor.getSelection().isEmpty())
|
||||
lead.column += 1;
|
||||
else
|
||||
lead.setPosition(lead.row, lead.column + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function onCommandEmitted(commadEvent) {
|
||||
commadEvent.editor.session.$bidiHandler.isMoveLeftOperation = /gotoleft|selectleft|backspace|removewordleft/.test(commadEvent.command.name);
|
||||
}
|
||||
function onChange(delta, editor) {
|
||||
var session = editor.session;
|
||||
session.$bidiHandler.currentRow = null;
|
||||
if (session.$bidiHandler.isRtlLine(delta.start.row) && delta.action === 'insert' && delta.lines.length > 1) {
|
||||
for (var row = delta.start.row; row < delta.end.row; row++) {
|
||||
if (session.getLine(row + 1).charAt(0) !== session.$bidiHandler.RLE)
|
||||
session.doc.$lines[row + 1] = session.$bidiHandler.RLE + session.getLine(row + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
function updateLineDirection(e, renderer) {
|
||||
var session = renderer.session;
|
||||
var $bidiHandler = session.$bidiHandler;
|
||||
var cells = renderer.$textLayer.$lines.cells;
|
||||
var width = renderer.layerConfig.width - renderer.layerConfig.padding + "px";
|
||||
cells.forEach(function (cell) {
|
||||
var style = cell.element.style;
|
||||
if ($bidiHandler && $bidiHandler.isRtlLine(cell.row)) {
|
||||
style.direction = "rtl";
|
||||
style.textAlign = "right";
|
||||
style.width = width;
|
||||
}
|
||||
else {
|
||||
style.direction = "";
|
||||
style.textAlign = "";
|
||||
style.width = "";
|
||||
}
|
||||
});
|
||||
}
|
||||
function clearTextLayer(renderer) {
|
||||
var lines = renderer.$textLayer.$lines;
|
||||
lines.cells.forEach(clear);
|
||||
lines.cellCache.forEach(clear);
|
||||
function clear(cell) {
|
||||
var style = cell.element.style;
|
||||
style.direction = style.textAlign = style.width = "";
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/rtl"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
339
src/main/resources/static/assets/js/vendor/template/build/src/ext-searchbox.js
vendored
Normal file
339
src/main/resources/static/assets/js/vendor/template/build/src/ext-searchbox.js
vendored
Normal file
@ -0,0 +1,339 @@
|
||||
define("ace/ext/searchbox.css",["require","exports","module"], function(require, exports, module){module.exports = "\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: \"\";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox.css","ace/keyboard/hash_handler","ace/lib/keys"], function(require, exports, module){"use strict";
|
||||
var dom = require("../lib/dom");
|
||||
var lang = require("../lib/lang");
|
||||
var event = require("../lib/event");
|
||||
var searchboxCss = require("./searchbox.css");
|
||||
var HashHandler = require("../keyboard/hash_handler").HashHandler;
|
||||
var keyUtil = require("../lib/keys");
|
||||
var MAX_COUNT = 999;
|
||||
dom.importCssString(searchboxCss, "ace_searchbox", false);
|
||||
var SearchBox = function (editor, range, showReplaceForm) {
|
||||
var div = dom.createElement("div");
|
||||
dom.buildDom(["div", { class: "ace_search right" },
|
||||
["span", { action: "hide", class: "ace_searchbtn_close" }],
|
||||
["div", { class: "ace_search_form" },
|
||||
["input", { class: "ace_search_field", placeholder: "Search for", spellcheck: "false" }],
|
||||
["span", { action: "findPrev", class: "ace_searchbtn prev" }, "\u200b"],
|
||||
["span", { action: "findNext", class: "ace_searchbtn next" }, "\u200b"],
|
||||
["span", { action: "findAll", class: "ace_searchbtn", title: "Alt-Enter" }, "All"]
|
||||
],
|
||||
["div", { class: "ace_replace_form" },
|
||||
["input", { class: "ace_search_field", placeholder: "Replace with", spellcheck: "false" }],
|
||||
["span", { action: "replaceAndFindNext", class: "ace_searchbtn" }, "Replace"],
|
||||
["span", { action: "replaceAll", class: "ace_searchbtn" }, "All"]
|
||||
],
|
||||
["div", { class: "ace_search_options" },
|
||||
["span", { action: "toggleReplace", class: "ace_button", title: "Toggle Replace mode",
|
||||
style: "float:left;margin-top:-2px;padding:0 5px;" }, "+"],
|
||||
["span", { class: "ace_search_counter" }],
|
||||
["span", { action: "toggleRegexpMode", class: "ace_button", title: "RegExp Search" }, ".*"],
|
||||
["span", { action: "toggleCaseSensitive", class: "ace_button", title: "CaseSensitive Search" }, "Aa"],
|
||||
["span", { action: "toggleWholeWords", class: "ace_button", title: "Whole Word Search" }, "\\b"],
|
||||
["span", { action: "searchInSelection", class: "ace_button", title: "Search In Selection" }, "S"]
|
||||
]
|
||||
], div);
|
||||
this.element = div.firstChild;
|
||||
this.setSession = this.setSession.bind(this);
|
||||
this.$init();
|
||||
this.setEditor(editor);
|
||||
dom.importCssString(searchboxCss, "ace_searchbox", editor.container);
|
||||
};
|
||||
(function () {
|
||||
this.setEditor = function (editor) {
|
||||
editor.searchBox = this;
|
||||
editor.renderer.scroller.appendChild(this.element);
|
||||
this.editor = editor;
|
||||
};
|
||||
this.setSession = function (e) {
|
||||
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.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 () {
|
||||
var sb = this.element;
|
||||
this.$initElements(sb);
|
||||
var _this = this;
|
||||
event.addListener(sb, "mousedown", function (e) {
|
||||
setTimeout(function () {
|
||||
_this.activeInput.focus();
|
||||
}, 0);
|
||||
event.stopPropagation(e);
|
||||
});
|
||||
event.addListener(sb, "click", function (e) {
|
||||
var t = e.target || e.srcElement;
|
||||
var action = t.getAttribute("action");
|
||||
if (action && _this[action])
|
||||
_this[action]();
|
||||
else if (_this.$searchBarKb.commands[action])
|
||||
_this.$searchBarKb.commands[action].exec(_this);
|
||||
event.stopPropagation(e);
|
||||
});
|
||||
event.addCommandKeyListener(sb, function (e, hashId, keyCode) {
|
||||
var keyString = keyUtil.keyCodeToString(keyCode);
|
||||
var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);
|
||||
if (command && command.exec) {
|
||||
command.exec(_this);
|
||||
event.stopEvent(e);
|
||||
}
|
||||
});
|
||||
this.$onChange = lang.delayedCall(function () {
|
||||
_this.find(false, false);
|
||||
});
|
||||
event.addListener(this.searchInput, "input", function () {
|
||||
_this.$onChange.schedule(20);
|
||||
});
|
||||
event.addListener(this.searchInput, "focus", function () {
|
||||
_this.activeInput = _this.searchInput;
|
||||
_this.searchInput.value && _this.highlight();
|
||||
});
|
||||
event.addListener(this.replaceInput, "focus", function () {
|
||||
_this.activeInput = _this.replaceInput;
|
||||
_this.searchInput.value && _this.highlight();
|
||||
});
|
||||
};
|
||||
this.$closeSearchBarKb = new HashHandler([{
|
||||
bindKey: "Esc",
|
||||
name: "closeSearchBar",
|
||||
exec: function (editor) {
|
||||
editor.searchBox.hide();
|
||||
}
|
||||
}]);
|
||||
this.$searchBarKb = new HashHandler();
|
||||
this.$searchBarKb.bindKeys({
|
||||
"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) {
|
||||
if (sb.editor.getReadOnly())
|
||||
return;
|
||||
sb.replaceOption.checked = true;
|
||||
sb.$syncOptions();
|
||||
sb.replaceInput.focus();
|
||||
},
|
||||
"Ctrl-G|Command-G": function (sb) {
|
||||
sb.findNext();
|
||||
},
|
||||
"Ctrl-Shift-G|Command-Shift-G": function (sb) {
|
||||
sb.findPrev();
|
||||
},
|
||||
"esc": function (sb) {
|
||||
setTimeout(function () { sb.hide(); });
|
||||
},
|
||||
"Return": function (sb) {
|
||||
if (sb.activeInput == sb.replaceInput)
|
||||
sb.replace();
|
||||
sb.findNext();
|
||||
},
|
||||
"Shift-Return": function (sb) {
|
||||
if (sb.activeInput == sb.replaceInput)
|
||||
sb.replace();
|
||||
sb.findPrev();
|
||||
},
|
||||
"Alt-Return": function (sb) {
|
||||
if (sb.activeInput == sb.replaceInput)
|
||||
sb.replaceAll();
|
||||
sb.findAll();
|
||||
},
|
||||
"Tab": function (sb) {
|
||||
(sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();
|
||||
}
|
||||
});
|
||||
this.$searchBarKb.addCommands([{
|
||||
name: "toggleRegexpMode",
|
||||
bindKey: { win: "Alt-R|Alt-/", mac: "Ctrl-Alt-R|Ctrl-Alt-/" },
|
||||
exec: function (sb) {
|
||||
sb.regExpOption.checked = !sb.regExpOption.checked;
|
||||
sb.$syncOptions();
|
||||
}
|
||||
}, {
|
||||
name: "toggleCaseSensitive",
|
||||
bindKey: { win: "Alt-C|Alt-I", mac: "Ctrl-Alt-R|Ctrl-Alt-I" },
|
||||
exec: function (sb) {
|
||||
sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;
|
||||
sb.$syncOptions();
|
||||
}
|
||||
}, {
|
||||
name: "toggleWholeWords",
|
||||
bindKey: { win: "Alt-B|Alt-W", mac: "Ctrl-Alt-B|Ctrl-Alt-W" },
|
||||
exec: function (sb) {
|
||||
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 (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);
|
||||
var readOnly = this.editor.getReadOnly();
|
||||
this.replaceOption.style.display = readOnly ? "none" : "";
|
||||
this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? "" : "none";
|
||||
this.find(false, false, preventScroll);
|
||||
};
|
||||
this.highlight = function (re) {
|
||||
this.editor.session.highlight(re || this.editor.$search.$options.re);
|
||||
this.editor.renderer.updateBackMarkers();
|
||||
};
|
||||
this.find = function (skipCurrent, backwards, preventScroll) {
|
||||
var range = this.editor.find(this.searchInput.value, {
|
||||
skipCurrent: skipCurrent,
|
||||
backwards: backwards,
|
||||
wrap: true,
|
||||
regExp: this.regExpOption.checked,
|
||||
caseSensitive: this.caseSensitiveOption.checked,
|
||||
wholeWord: this.wholeWordOption.checked,
|
||||
preventScroll: preventScroll,
|
||||
range: this.searchRange
|
||||
});
|
||||
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);
|
||||
};
|
||||
this.findPrev = function () {
|
||||
this.find(true, true);
|
||||
};
|
||||
this.findAll = function () {
|
||||
var range = this.editor.findAll(this.searchInput.value, {
|
||||
regExp: this.regExpOption.checked,
|
||||
caseSensitive: this.caseSensitiveOption.checked,
|
||||
wholeWord: this.wholeWordOption.checked
|
||||
});
|
||||
var noMatch = !range && this.searchInput.value;
|
||||
dom.setCssClass(this.searchBox, "ace_nomatch", noMatch);
|
||||
this.editor._emit("findSearchBox", { match: !noMatch });
|
||||
this.highlight();
|
||||
this.hide();
|
||||
};
|
||||
this.replace = function () {
|
||||
if (!this.editor.getReadOnly())
|
||||
this.editor.replace(this.replaceInput.value);
|
||||
};
|
||||
this.replaceAndFindNext = function () {
|
||||
if (!this.editor.getReadOnly()) {
|
||||
this.editor.replace(this.replaceInput.value);
|
||||
this.findNext();
|
||||
}
|
||||
};
|
||||
this.replaceAll = function () {
|
||||
if (!this.editor.getReadOnly())
|
||||
this.editor.replaceAll(this.replaceInput.value);
|
||||
};
|
||||
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.replaceOption.checked = isReplace;
|
||||
if (value)
|
||||
this.searchInput.value = value;
|
||||
this.searchInput.focus();
|
||||
this.searchInput.select();
|
||||
this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);
|
||||
this.$syncOptions(true);
|
||||
};
|
||||
this.isFocused = function () {
|
||||
var el = document.activeElement;
|
||||
return el == this.searchInput || el == this.replaceInput;
|
||||
};
|
||||
}).call(SearchBox.prototype);
|
||||
exports.SearchBox = SearchBox;
|
||||
exports.Search = function (editor, isReplace) {
|
||||
var sb = editor.searchBox || new SearchBox(editor);
|
||||
sb.show(editor.session.getTextRange(), isReplace);
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/searchbox"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
754
src/main/resources/static/assets/js/vendor/template/build/src/ext-settings_menu.js
vendored
Normal file
754
src/main/resources/static/assets/js/vendor/template/build/src/ext-settings_menu.js
vendored
Normal file
@ -0,0 +1,754 @@
|
||||
define("ace/ext/menu_tools/settings_menu.css",["require","exports","module"], function(require, exports, module){module.exports = "#ace_settingsmenu, #kbshortcutmenu {\n background-color: #F7F7F7;\n color: black;\n box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\n padding: 1em 0.5em 2em 1em;\n overflow: auto;\n position: absolute;\n margin: 0;\n bottom: 0;\n right: 0;\n top: 0;\n z-index: 9991;\n cursor: default;\n}\n\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\n box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\n background-color: rgba(255, 255, 255, 0.6);\n color: black;\n}\n\n.ace_optionsMenuEntry:hover {\n background-color: rgba(100, 100, 100, 0.1);\n transition: all 0.3s\n}\n\n.ace_closeButton {\n background: rgba(245, 146, 146, 0.5);\n border: 1px solid #F48A8A;\n border-radius: 50%;\n padding: 7px;\n position: absolute;\n right: -8px;\n top: -8px;\n z-index: 100000;\n}\n.ace_closeButton{\n background: rgba(245, 146, 146, 0.9);\n}\n.ace_optionsMenuKey {\n color: darkslateblue;\n font-weight: bold;\n}\n.ace_optionsMenuCommand {\n color: darkcyan;\n font-weight: normal;\n}\n.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\n vertical-align: middle;\n}\n\n.ace_optionsMenuEntry button[ace_selected_button=true] {\n background: #e7e7e7;\n box-shadow: 1px 0px 2px 0px #adadad inset;\n border-color: #adadad;\n}\n.ace_optionsMenuEntry button {\n background: white;\n border: 1px solid lightgray;\n margin: 0px;\n}\n.ace_optionsMenuEntry button:hover{\n background: #f0f0f0;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom","ace/ext/menu_tools/settings_menu.css"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
'use strict';
|
||||
var dom = require("../../lib/dom");
|
||||
var cssText = require("./settings_menu.css");
|
||||
dom.importCssString(cssText, "settings_menu.css", false);
|
||||
module.exports.overlayPage = function overlayPage(editor, contentElement, callback) {
|
||||
var closer = document.createElement('div');
|
||||
var ignoreFocusOut = false;
|
||||
function documentEscListener(e) {
|
||||
if (e.keyCode === 27) {
|
||||
close();
|
||||
}
|
||||
}
|
||||
function close() {
|
||||
if (!closer)
|
||||
return;
|
||||
document.removeEventListener('keydown', documentEscListener);
|
||||
closer.parentNode.removeChild(closer);
|
||||
if (editor) {
|
||||
editor.focus();
|
||||
}
|
||||
closer = null;
|
||||
callback && callback();
|
||||
}
|
||||
function setIgnoreFocusOut(ignore) {
|
||||
ignoreFocusOut = ignore;
|
||||
if (ignore) {
|
||||
closer.style.pointerEvents = "none";
|
||||
contentElement.style.pointerEvents = "auto";
|
||||
}
|
||||
}
|
||||
closer.style.cssText = 'margin: 0; padding: 0; ' +
|
||||
'position: fixed; top:0; bottom:0; left:0; right:0;' +
|
||||
'z-index: 9990; ' +
|
||||
(editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');
|
||||
closer.addEventListener('click', function (e) {
|
||||
if (!ignoreFocusOut) {
|
||||
close();
|
||||
}
|
||||
});
|
||||
document.addEventListener('keydown', documentEscListener);
|
||||
contentElement.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
closer.appendChild(contentElement);
|
||||
document.body.appendChild(closer);
|
||||
if (editor) {
|
||||
editor.blur();
|
||||
}
|
||||
return {
|
||||
close: close,
|
||||
setIgnoreFocusOut: setIgnoreFocusOut
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/modelist",["require","exports","module"], function(require, exports, module){"use strict";
|
||||
var modes = [];
|
||||
function getModeForPath(path) {
|
||||
var mode = modesByName.text;
|
||||
var fileName = path.split(/[\/\\]/).pop();
|
||||
for (var i = 0; i < modes.length; i++) {
|
||||
if (modes[i].supportsFile(fileName)) {
|
||||
mode = modes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
var Mode = function (name, caption, extensions) {
|
||||
this.name = name;
|
||||
this.caption = caption;
|
||||
this.mode = "ace/mode/" + name;
|
||||
this.extensions = extensions;
|
||||
var re;
|
||||
if (/\^/.test(extensions)) {
|
||||
re = extensions.replace(/\|(\^)?/g, function (a, b) {
|
||||
return "$|" + (b ? "^" : "^.*\\.");
|
||||
}) + "$";
|
||||
}
|
||||
else {
|
||||
re = "^.*\\.(" + extensions + ")$";
|
||||
}
|
||||
this.extRe = new RegExp(re, "gi");
|
||||
};
|
||||
Mode.prototype.supportsFile = function (filename) {
|
||||
return filename.match(this.extRe);
|
||||
};
|
||||
var supportedModes = {
|
||||
ABAP: ["abap"],
|
||||
ABC: ["abc"],
|
||||
ActionScript: ["as"],
|
||||
ADA: ["ada|adb"],
|
||||
Alda: ["alda"],
|
||||
Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
|
||||
Apex: ["apex|cls|trigger|tgr"],
|
||||
AQL: ["aql"],
|
||||
AsciiDoc: ["asciidoc|adoc"],
|
||||
ASL: ["dsl|asl|asl.json"],
|
||||
Assembly_x86: ["asm|a"],
|
||||
AutoHotKey: ["ahk"],
|
||||
BatchFile: ["bat|cmd"],
|
||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
|
||||
C9Search: ["c9search_results"],
|
||||
Cirru: ["cirru|cr"],
|
||||
Clojure: ["clj|cljs"],
|
||||
Cobol: ["CBL|COB"],
|
||||
coffee: ["coffee|cf|cson|^Cakefile"],
|
||||
ColdFusion: ["cfm"],
|
||||
Crystal: ["cr"],
|
||||
CSharp: ["cs"],
|
||||
Csound_Document: ["csd"],
|
||||
Csound_Orchestra: ["orc"],
|
||||
Csound_Score: ["sco"],
|
||||
CSS: ["css"],
|
||||
Curly: ["curly"],
|
||||
D: ["d|di"],
|
||||
Dart: ["dart"],
|
||||
Diff: ["diff|patch"],
|
||||
Dockerfile: ["^Dockerfile"],
|
||||
Dot: ["dot"],
|
||||
Drools: ["drl"],
|
||||
Edifact: ["edi"],
|
||||
Eiffel: ["e|ge"],
|
||||
EJS: ["ejs"],
|
||||
Elixir: ["ex|exs"],
|
||||
Elm: ["elm"],
|
||||
Erlang: ["erl|hrl"],
|
||||
Forth: ["frt|fs|ldr|fth|4th"],
|
||||
Fortran: ["f|f90"],
|
||||
FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
|
||||
FSL: ["fsl"],
|
||||
FTL: ["ftl"],
|
||||
Gcode: ["gcode"],
|
||||
Gherkin: ["feature"],
|
||||
Gitignore: ["^.gitignore"],
|
||||
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|vue|we|wpy"],
|
||||
HTML_Elixir: ["eex|html.eex"],
|
||||
HTML_Ruby: ["erb|rhtml|html.erb"],
|
||||
INI: ["ini|conf|cfg|prefs"],
|
||||
Io: ["io"],
|
||||
Ion: ["ion"],
|
||||
Jack: ["jack"],
|
||||
Jade: ["jade|pug"],
|
||||
Java: ["java"],
|
||||
JavaScript: ["js|jsm|jsx|cjs|mjs"],
|
||||
JSON: ["json"],
|
||||
JSON5: ["json5"],
|
||||
JSONiq: ["jq"],
|
||||
JSP: ["jsp"],
|
||||
JSSM: ["jssm|jssm_state"],
|
||||
JSX: ["jsx"],
|
||||
Julia: ["jl"],
|
||||
Kotlin: ["kt|kts"],
|
||||
LaTeX: ["tex|latex|ltx|bib"],
|
||||
Latte: ["latte"],
|
||||
LESS: ["less"],
|
||||
Liquid: ["liquid"],
|
||||
Lisp: ["lisp"],
|
||||
LiveScript: ["ls"],
|
||||
Log: ["log"],
|
||||
LogiQL: ["logic|lql"],
|
||||
LSL: ["lsl"],
|
||||
Lua: ["lua"],
|
||||
LuaPage: ["lp"],
|
||||
Lucene: ["lucene"],
|
||||
Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
|
||||
Markdown: ["md|markdown"],
|
||||
Mask: ["mask"],
|
||||
MATLAB: ["matlab"],
|
||||
Maze: ["mz"],
|
||||
MediaWiki: ["wiki|mediawiki"],
|
||||
MEL: ["mel"],
|
||||
MIPS: ["s|asm"],
|
||||
MIXAL: ["mixal"],
|
||||
MUSHCode: ["mc|mush"],
|
||||
MySQL: ["mysql"],
|
||||
Nginx: ["nginx|conf"],
|
||||
Nim: ["nim"],
|
||||
Nix: ["nix"],
|
||||
NSIS: ["nsi|nsh"],
|
||||
Nunjucks: ["nunjucks|nunjs|nj|njk"],
|
||||
ObjectiveC: ["m|mm"],
|
||||
OCaml: ["ml|mli"],
|
||||
PartiQL: ["partiql|pql"],
|
||||
Pascal: ["pas|p"],
|
||||
Perl: ["pl|pm"],
|
||||
pgSQL: ["pgsql"],
|
||||
PHP_Laravel_blade: ["blade.php"],
|
||||
PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
|
||||
Pig: ["pig"],
|
||||
Powershell: ["ps1"],
|
||||
Praat: ["praat|praatscript|psc|proc"],
|
||||
Prisma: ["prisma"],
|
||||
Prolog: ["plg|prolog"],
|
||||
Properties: ["properties"],
|
||||
Protobuf: ["proto"],
|
||||
Puppet: ["epp|pp"],
|
||||
Python: ["py"],
|
||||
QML: ["qml"],
|
||||
R: ["r"],
|
||||
Raku: ["raku|rakumod|rakutest|p6|pl6|pm6"],
|
||||
Razor: ["cshtml|asp"],
|
||||
RDoc: ["Rd"],
|
||||
Red: ["red|reds"],
|
||||
RHTML: ["Rhtml"],
|
||||
Robot: ["robot|resource"],
|
||||
RST: ["rst"],
|
||||
Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
|
||||
Rust: ["rs"],
|
||||
SaC: ["sac"],
|
||||
SASS: ["sass"],
|
||||
SCAD: ["scad"],
|
||||
Scala: ["scala|sbt"],
|
||||
Scheme: ["scm|sm|rkt|oak|scheme"],
|
||||
Scrypt: ["scrypt"],
|
||||
SCSS: ["scss"],
|
||||
SH: ["sh|bash|^.bashrc"],
|
||||
SJS: ["sjs"],
|
||||
Slim: ["slim|skim"],
|
||||
Smarty: ["smarty|tpl"],
|
||||
Smithy: ["smithy"],
|
||||
snippets: ["snippets"],
|
||||
Soy_Template: ["soy"],
|
||||
Space: ["space"],
|
||||
SQL: ["sql"],
|
||||
SQLServer: ["sqlserver"],
|
||||
Stylus: ["styl|stylus"],
|
||||
SVG: ["svg"],
|
||||
Swift: ["swift"],
|
||||
Tcl: ["tcl"],
|
||||
Terraform: ["tf", "tfvars", "terragrunt"],
|
||||
Tex: ["tex"],
|
||||
Text: ["txt"],
|
||||
Textile: ["textile"],
|
||||
Toml: ["toml"],
|
||||
TSX: ["tsx"],
|
||||
Twig: ["twig|swig"],
|
||||
Typescript: ["ts|typescript|str"],
|
||||
Vala: ["vala"],
|
||||
VBScript: ["vbs|vb"],
|
||||
Velocity: ["vm"],
|
||||
Verilog: ["v|vh|sv|svh"],
|
||||
VHDL: ["vhd|vhdl"],
|
||||
Visualforce: ["vfp|component|page"],
|
||||
Wollok: ["wlk|wpgm|wtest"],
|
||||
XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
|
||||
XQuery: ["xq"],
|
||||
YAML: ["yaml|yml"],
|
||||
Zeek: ["zeek|bro"],
|
||||
Django: ["html"]
|
||||
};
|
||||
var nameOverrides = {
|
||||
ObjectiveC: "Objective-C",
|
||||
CSharp: "C#",
|
||||
golang: "Go",
|
||||
C_Cpp: "C and C++",
|
||||
Csound_Document: "Csound Document",
|
||||
Csound_Orchestra: "Csound",
|
||||
Csound_Score: "Csound Score",
|
||||
coffee: "CoffeeScript",
|
||||
HTML_Ruby: "HTML (Ruby)",
|
||||
HTML_Elixir: "HTML (Elixir)",
|
||||
FTL: "FreeMarker",
|
||||
PHP_Laravel_blade: "PHP (Blade Template)",
|
||||
Perl6: "Perl 6",
|
||||
AutoHotKey: "AutoHotkey / AutoIt"
|
||||
};
|
||||
var modesByName = {};
|
||||
for (var name in supportedModes) {
|
||||
var data = supportedModes[name];
|
||||
var displayName = (nameOverrides[name] || name).replace(/_/g, " ");
|
||||
var filename = name.toLowerCase();
|
||||
var mode = new Mode(filename, displayName, data[0]);
|
||||
modesByName[filename] = mode;
|
||||
modes.push(mode);
|
||||
}
|
||||
module.exports = {
|
||||
getModeForPath: getModeForPath,
|
||||
modes: modes,
|
||||
modesByName: modesByName
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/themelist",["require","exports","module"], function(require, exports, module){/**
|
||||
* Generates a list of themes available when ace was built.
|
||||
* @fileOverview Generates a list of themes available when ace was built.
|
||||
* @author <a href="mailto:matthewkastor@gmail.com">
|
||||
* Matthew Christopher Kastor-Inare III </a><br />
|
||||
* ☭ Hial Atropa!! ☭
|
||||
*/
|
||||
"use strict";
|
||||
var themeData = [
|
||||
["Chrome"],
|
||||
["Clouds"],
|
||||
["Crimson Editor"],
|
||||
["Dawn"],
|
||||
["Dreamweaver"],
|
||||
["Eclipse"],
|
||||
["GitHub"],
|
||||
["IPlastic"],
|
||||
["Solarized Light"],
|
||||
["TextMate"],
|
||||
["Tomorrow"],
|
||||
["XCode"],
|
||||
["Kuroir"],
|
||||
["KatzenMilch"],
|
||||
["SQL Server", "sqlserver", "light"],
|
||||
["Ambiance", "ambiance", "dark"],
|
||||
["Chaos", "chaos", "dark"],
|
||||
["Clouds Midnight", "clouds_midnight", "dark"],
|
||||
["Dracula", "", "dark"],
|
||||
["Cobalt", "cobalt", "dark"],
|
||||
["Gruvbox", "gruvbox", "dark"],
|
||||
["Green on Black", "gob", "dark"],
|
||||
["idle Fingers", "idle_fingers", "dark"],
|
||||
["krTheme", "kr_theme", "dark"],
|
||||
["Merbivore", "merbivore", "dark"],
|
||||
["Merbivore Soft", "merbivore_soft", "dark"],
|
||||
["Mono Industrial", "mono_industrial", "dark"],
|
||||
["Monokai", "monokai", "dark"],
|
||||
["Nord Dark", "nord_dark", "dark"],
|
||||
["One Dark", "one_dark", "dark"],
|
||||
["Pastel on dark", "pastel_on_dark", "dark"],
|
||||
["Solarized Dark", "solarized_dark", "dark"],
|
||||
["Terminal", "terminal", "dark"],
|
||||
["Tomorrow Night", "tomorrow_night", "dark"],
|
||||
["Tomorrow Night Blue", "tomorrow_night_blue", "dark"],
|
||||
["Tomorrow Night Bright", "tomorrow_night_bright", "dark"],
|
||||
["Tomorrow Night 80s", "tomorrow_night_eighties", "dark"],
|
||||
["Twilight", "twilight", "dark"],
|
||||
["Vibrant Ink", "vibrant_ink", "dark"]
|
||||
];
|
||||
exports.themesByName = {};
|
||||
exports.themes = themeData.map(function (data) {
|
||||
var name = data[1] || data[0].replace(/ /g, "_").toLowerCase();
|
||||
var theme = {
|
||||
caption: data[0],
|
||||
theme: "ace/theme/" + name,
|
||||
isDark: data[2] == "dark",
|
||||
name: name
|
||||
};
|
||||
exports.themesByName[name] = theme;
|
||||
return theme;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/options",["require","exports","module","ace/ext/menu_tools/overlay_page","ace/lib/dom","ace/lib/oop","ace/config","ace/lib/event_emitter","ace/ext/modelist","ace/ext/themelist"], function(require, exports, module){"use strict";
|
||||
require("./menu_tools/overlay_page");
|
||||
var dom = require("../lib/dom");
|
||||
var oop = require("../lib/oop");
|
||||
var config = require("../config");
|
||||
var EventEmitter = require("../lib/event_emitter").EventEmitter;
|
||||
var buildDom = dom.buildDom;
|
||||
var modelist = require("./modelist");
|
||||
var themelist = require("./themelist");
|
||||
var themes = { Bright: [], Dark: [] };
|
||||
themelist.themes.forEach(function (x) {
|
||||
themes[x.isDark ? "Dark" : "Bright"].push({ caption: x.caption, value: x.theme });
|
||||
});
|
||||
var modes = modelist.modes.map(function (x) {
|
||||
return { caption: x.caption, value: x.mode };
|
||||
});
|
||||
var optionGroups = {
|
||||
Main: {
|
||||
Mode: {
|
||||
path: "mode",
|
||||
type: "select",
|
||||
items: modes
|
||||
},
|
||||
Theme: {
|
||||
path: "theme",
|
||||
type: "select",
|
||||
items: themes
|
||||
},
|
||||
"Keybinding": {
|
||||
type: "buttonBar",
|
||||
path: "keyboardHandler",
|
||||
items: [
|
||||
{ caption: "Ace", value: null },
|
||||
{ caption: "Vim", value: "ace/keyboard/vim" },
|
||||
{ caption: "Emacs", value: "ace/keyboard/emacs" },
|
||||
{ caption: "Sublime", value: "ace/keyboard/sublime" },
|
||||
{ caption: "VSCode", value: "ace/keyboard/vscode" }
|
||||
]
|
||||
},
|
||||
"Font Size": {
|
||||
path: "fontSize",
|
||||
type: "number",
|
||||
defaultValue: 12,
|
||||
defaults: [
|
||||
{ caption: "12px", value: 12 },
|
||||
{ caption: "24px", value: 24 }
|
||||
]
|
||||
},
|
||||
"Soft Wrap": {
|
||||
type: "buttonBar",
|
||||
path: "wrap",
|
||||
items: [
|
||||
{ caption: "Off", value: "off" },
|
||||
{ caption: "View", value: "free" },
|
||||
{ caption: "margin", value: "printMargin" },
|
||||
{ caption: "40", value: "40" }
|
||||
]
|
||||
},
|
||||
"Cursor Style": {
|
||||
path: "cursorStyle",
|
||||
items: [
|
||||
{ caption: "Ace", value: "ace" },
|
||||
{ caption: "Slim", value: "slim" },
|
||||
{ caption: "Smooth", value: "smooth" },
|
||||
{ caption: "Smooth And Slim", value: "smooth slim" },
|
||||
{ caption: "Wide", value: "wide" }
|
||||
]
|
||||
},
|
||||
"Folding": {
|
||||
path: "foldStyle",
|
||||
items: [
|
||||
{ caption: "Manual", value: "manual" },
|
||||
{ caption: "Mark begin", value: "markbegin" },
|
||||
{ caption: "Mark begin and end", value: "markbeginend" }
|
||||
]
|
||||
},
|
||||
"Soft Tabs": [{
|
||||
path: "useSoftTabs"
|
||||
}, {
|
||||
ariaLabel: "Tab Size",
|
||||
path: "tabSize",
|
||||
type: "number",
|
||||
values: [2, 3, 4, 8, 16]
|
||||
}],
|
||||
"Overscroll": {
|
||||
type: "buttonBar",
|
||||
path: "scrollPastEnd",
|
||||
items: [
|
||||
{ caption: "None", value: 0 },
|
||||
{ caption: "Half", value: 0.5 },
|
||||
{ caption: "Full", value: 1 }
|
||||
]
|
||||
}
|
||||
},
|
||||
More: {
|
||||
"Atomic soft tabs": {
|
||||
path: "navigateWithinSoftTabs"
|
||||
},
|
||||
"Enable Behaviours": {
|
||||
path: "behavioursEnabled"
|
||||
},
|
||||
"Wrap with quotes": {
|
||||
path: "wrapBehavioursEnabled"
|
||||
},
|
||||
"Enable Auto Indent": {
|
||||
path: "enableAutoIndent"
|
||||
},
|
||||
"Full Line Selection": {
|
||||
type: "checkbox",
|
||||
values: "text|line",
|
||||
path: "selectionStyle"
|
||||
},
|
||||
"Highlight Active Line": {
|
||||
path: "highlightActiveLine"
|
||||
},
|
||||
"Show Invisibles": {
|
||||
path: "showInvisibles"
|
||||
},
|
||||
"Show Indent Guides": {
|
||||
path: "displayIndentGuides"
|
||||
},
|
||||
"Highlight Indent Guides": {
|
||||
path: "highlightIndentGuides"
|
||||
},
|
||||
"Persistent HScrollbar": {
|
||||
path: "hScrollBarAlwaysVisible"
|
||||
},
|
||||
"Persistent VScrollbar": {
|
||||
path: "vScrollBarAlwaysVisible"
|
||||
},
|
||||
"Animate scrolling": {
|
||||
path: "animatedScroll"
|
||||
},
|
||||
"Show Gutter": {
|
||||
path: "showGutter"
|
||||
},
|
||||
"Show Line Numbers": {
|
||||
path: "showLineNumbers"
|
||||
},
|
||||
"Relative Line Numbers": {
|
||||
path: "relativeLineNumbers"
|
||||
},
|
||||
"Fixed Gutter Width": {
|
||||
path: "fixedWidthGutter"
|
||||
},
|
||||
"Show Print Margin": [{
|
||||
path: "showPrintMargin"
|
||||
}, {
|
||||
ariaLabel: "Print Margin",
|
||||
type: "number",
|
||||
path: "printMarginColumn"
|
||||
}],
|
||||
"Indented Soft Wrap": {
|
||||
path: "indentedSoftWrap"
|
||||
},
|
||||
"Highlight selected word": {
|
||||
path: "highlightSelectedWord"
|
||||
},
|
||||
"Fade Fold Widgets": {
|
||||
path: "fadeFoldWidgets"
|
||||
},
|
||||
"Use textarea for IME": {
|
||||
path: "useTextareaForIME"
|
||||
},
|
||||
"Merge Undo Deltas": {
|
||||
path: "mergeUndoDeltas",
|
||||
items: [
|
||||
{ caption: "Always", value: "always" },
|
||||
{ caption: "Never", value: "false" },
|
||||
{ caption: "Timed", value: "true" }
|
||||
]
|
||||
},
|
||||
"Elastic Tabstops": {
|
||||
path: "useElasticTabstops"
|
||||
},
|
||||
"Incremental Search": {
|
||||
path: "useIncrementalSearch"
|
||||
},
|
||||
"Read-only": {
|
||||
path: "readOnly"
|
||||
},
|
||||
"Copy without selection": {
|
||||
path: "copyWithEmptySelection"
|
||||
},
|
||||
"Live Autocompletion": {
|
||||
path: "enableLiveAutocompletion"
|
||||
},
|
||||
"Custom scrollbar": {
|
||||
path: "customScrollbar"
|
||||
}
|
||||
}
|
||||
};
|
||||
var OptionPanel = function (editor, element) {
|
||||
this.editor = editor;
|
||||
this.container = element || document.createElement("div");
|
||||
this.groups = [];
|
||||
this.options = {};
|
||||
};
|
||||
(function () {
|
||||
oop.implement(this, EventEmitter);
|
||||
this.add = function (config) {
|
||||
if (config.Main)
|
||||
oop.mixin(optionGroups.Main, config.Main);
|
||||
if (config.More)
|
||||
oop.mixin(optionGroups.More, config.More);
|
||||
};
|
||||
this.render = function () {
|
||||
this.container.innerHTML = "";
|
||||
buildDom(["table", { role: "presentation", id: "controls" },
|
||||
this.renderOptionGroup(optionGroups.Main),
|
||||
["tr", null, ["td", { colspan: 2 },
|
||||
["table", { role: "presentation", id: "more-controls" },
|
||||
this.renderOptionGroup(optionGroups.More)
|
||||
]
|
||||
]],
|
||||
["tr", null, ["td", { colspan: 2 }, "version " + config.version]]
|
||||
], this.container);
|
||||
};
|
||||
this.renderOptionGroup = function (group) {
|
||||
return Object.keys(group).map(function (key, i) {
|
||||
var item = group[key];
|
||||
if (!item.position)
|
||||
item.position = i / 10000;
|
||||
if (!item.label)
|
||||
item.label = key;
|
||||
return item;
|
||||
}).sort(function (a, b) {
|
||||
return a.position - b.position;
|
||||
}).map(function (item) {
|
||||
return this.renderOption(item.label, item);
|
||||
}, this);
|
||||
};
|
||||
this.renderOptionControl = function (key, option) {
|
||||
var self = this;
|
||||
if (Array.isArray(option)) {
|
||||
return option.map(function (x) {
|
||||
return self.renderOptionControl(key, x);
|
||||
});
|
||||
}
|
||||
var control;
|
||||
var value = self.getOption(option);
|
||||
if (option.values && option.type != "checkbox") {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
option.items = option.values.map(function (v) {
|
||||
return { value: v, name: v };
|
||||
});
|
||||
}
|
||||
if (option.type == "buttonBar") {
|
||||
control = ["div", { role: "group", "aria-labelledby": option.path + "-label" }, option.items.map(function (item) {
|
||||
return ["button", {
|
||||
value: item.value,
|
||||
ace_selected_button: value == item.value,
|
||||
'aria-pressed': value == item.value,
|
||||
onclick: function () {
|
||||
self.setOption(option, item.value);
|
||||
var nodes = this.parentNode.querySelectorAll("[ace_selected_button]");
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].removeAttribute("ace_selected_button");
|
||||
nodes[i].setAttribute("aria-pressed", false);
|
||||
}
|
||||
this.setAttribute("ace_selected_button", true);
|
||||
this.setAttribute("aria-pressed", true);
|
||||
}
|
||||
}, item.desc || item.caption || item.name];
|
||||
})];
|
||||
}
|
||||
else if (option.type == "number") {
|
||||
control = ["input", { type: "number", value: value || option.defaultValue, style: "width:3em", oninput: function () {
|
||||
self.setOption(option, parseInt(this.value));
|
||||
} }];
|
||||
if (option.ariaLabel) {
|
||||
control[1]["aria-label"] = option.ariaLabel;
|
||||
}
|
||||
else {
|
||||
control[1].id = key;
|
||||
}
|
||||
if (option.defaults) {
|
||||
control = [control, option.defaults.map(function (item) {
|
||||
return ["button", { onclick: function () {
|
||||
var input = this.parentNode.firstChild;
|
||||
input.value = item.value;
|
||||
input.oninput();
|
||||
} }, item.caption];
|
||||
})];
|
||||
}
|
||||
}
|
||||
else if (option.items) {
|
||||
var buildItems = function (items) {
|
||||
return items.map(function (item) {
|
||||
return ["option", { value: item.value || item.name }, item.desc || item.caption || item.name];
|
||||
});
|
||||
};
|
||||
var items = Array.isArray(option.items)
|
||||
? buildItems(option.items)
|
||||
: Object.keys(option.items).map(function (key) {
|
||||
return ["optgroup", { "label": key }, buildItems(option.items[key])];
|
||||
});
|
||||
control = ["select", { id: key, value: value, onchange: function () {
|
||||
self.setOption(option, this.value);
|
||||
} }, items];
|
||||
}
|
||||
else {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
if (option.values)
|
||||
value = value == option.values[1];
|
||||
control = ["input", { type: "checkbox", id: key, checked: value || null, onchange: function () {
|
||||
var value = this.checked;
|
||||
if (option.values)
|
||||
value = option.values[value ? 1 : 0];
|
||||
self.setOption(option, value);
|
||||
} }];
|
||||
if (option.type == "checkedNumber") {
|
||||
control = [control, []];
|
||||
}
|
||||
}
|
||||
return control;
|
||||
};
|
||||
this.renderOption = function (key, option) {
|
||||
if (option.path && !option.onchange && !this.editor.$options[option.path])
|
||||
return;
|
||||
var path = Array.isArray(option) ? option[0].path : option.path;
|
||||
this.options[path] = option;
|
||||
var safeKey = "-" + path;
|
||||
var safeId = path + "-label";
|
||||
var control = this.renderOptionControl(safeKey, option);
|
||||
return ["tr", { class: "ace_optionsMenuEntry" }, ["td",
|
||||
["label", { for: safeKey, id: safeId }, key]
|
||||
], ["td", control]];
|
||||
};
|
||||
this.setOption = function (option, value) {
|
||||
if (typeof option == "string")
|
||||
option = this.options[option];
|
||||
if (value == "false")
|
||||
value = false;
|
||||
if (value == "true")
|
||||
value = true;
|
||||
if (value == "null")
|
||||
value = null;
|
||||
if (value == "undefined")
|
||||
value = undefined;
|
||||
if (typeof value == "string" && parseFloat(value).toString() == value)
|
||||
value = parseFloat(value);
|
||||
if (option.onchange)
|
||||
option.onchange(value);
|
||||
else if (option.path)
|
||||
this.editor.setOption(option.path, value);
|
||||
this._signal("setOption", { name: option.path, value: value });
|
||||
};
|
||||
this.getOption = function (option) {
|
||||
if (option.getValue)
|
||||
return option.getValue();
|
||||
return this.editor.getOption(option.path);
|
||||
};
|
||||
}).call(OptionPanel.prototype);
|
||||
exports.OptionPanel = OptionPanel;
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/settings_menu",["require","exports","module","ace/ext/options","ace/ext/menu_tools/overlay_page","ace/editor"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
"use strict";
|
||||
var OptionPanel = require("./options").OptionPanel;
|
||||
var overlayPage = require('./menu_tools/overlay_page').overlayPage;
|
||||
function showSettingsMenu(editor) {
|
||||
if (!document.getElementById('ace_settingsmenu')) {
|
||||
var options = new OptionPanel(editor);
|
||||
options.render();
|
||||
options.container.id = "ace_settingsmenu";
|
||||
overlayPage(editor, options.container);
|
||||
options.container.querySelector("select,input,button,checkbox").focus();
|
||||
}
|
||||
}
|
||||
module.exports.init = function () {
|
||||
var Editor = require("../editor").Editor;
|
||||
Editor.prototype.showSettingsMenu = function () {
|
||||
showSettingsMenu(this);
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/settings_menu"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
68
src/main/resources/static/assets/js/vendor/template/build/src/ext-spellcheck.js
vendored
Normal file
68
src/main/resources/static/assets/js/vendor/template/build/src/ext-spellcheck.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
define("ace/ext/spellcheck",["require","exports","module","ace/lib/event","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var event = require("../lib/event");
|
||||
exports.contextMenuHandler = function (e) {
|
||||
var host = e.target;
|
||||
var text = host.textInput.getElement();
|
||||
if (!host.selection.isEmpty())
|
||||
return;
|
||||
var c = host.getCursorPosition();
|
||||
var r = host.session.getWordRange(c.row, c.column);
|
||||
var w = host.session.getTextRange(r);
|
||||
host.session.tokenRe.lastIndex = 0;
|
||||
if (!host.session.tokenRe.test(w))
|
||||
return;
|
||||
var PLACEHOLDER = "\x01\x01";
|
||||
var value = w + " " + PLACEHOLDER;
|
||||
text.value = value;
|
||||
text.setSelectionRange(w.length, w.length + 1);
|
||||
text.setSelectionRange(0, 0);
|
||||
text.setSelectionRange(0, w.length);
|
||||
var afterKeydown = false;
|
||||
event.addListener(text, "keydown", function onKeydown() {
|
||||
event.removeListener(text, "keydown", onKeydown);
|
||||
afterKeydown = true;
|
||||
});
|
||||
host.textInput.setInputHandler(function (newVal) {
|
||||
if (newVal == value)
|
||||
return '';
|
||||
if (newVal.lastIndexOf(value, 0) === 0)
|
||||
return newVal.slice(value.length);
|
||||
if (newVal.substr(text.selectionEnd) == value)
|
||||
return newVal.slice(0, -value.length);
|
||||
if (newVal.slice(-2) == PLACEHOLDER) {
|
||||
var val = newVal.slice(0, -2);
|
||||
if (val.slice(-1) == " ") {
|
||||
if (afterKeydown)
|
||||
return val.substring(0, text.selectionEnd);
|
||||
val = val.slice(0, -1);
|
||||
host.session.replace(r, val);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
return newVal;
|
||||
});
|
||||
};
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
spellcheck: {
|
||||
set: function (val) {
|
||||
var text = this.textInput.getElement();
|
||||
text.spellcheck = !!val;
|
||||
if (!val)
|
||||
this.removeListener("nativecontextmenu", exports.contextMenuHandler);
|
||||
else
|
||||
this.on("nativecontextmenu", exports.contextMenuHandler);
|
||||
},
|
||||
value: true
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/spellcheck"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
186
src/main/resources/static/assets/js/vendor/template/build/src/ext-split.js
vendored
Normal file
186
src/main/resources/static/assets/js/vendor/template/build/src/ext-split.js
vendored
Normal file
@ -0,0 +1,186 @@
|
||||
define("ace/split",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/editor","ace/virtual_renderer","ace/edit_session"], function(require, exports, module){"use strict";
|
||||
var oop = require("./lib/oop");
|
||||
var lang = require("./lib/lang");
|
||||
var EventEmitter = require("./lib/event_emitter").EventEmitter;
|
||||
var Editor = require("./editor").Editor;
|
||||
var Renderer = require("./virtual_renderer").VirtualRenderer;
|
||||
var EditSession = require("./edit_session").EditSession;
|
||||
var Split = function (container, theme, splits) {
|
||||
this.BELOW = 1;
|
||||
this.BESIDE = 0;
|
||||
this.$container = container;
|
||||
this.$theme = theme;
|
||||
this.$splits = 0;
|
||||
this.$editorCSS = "";
|
||||
this.$editors = [];
|
||||
this.$orientation = this.BESIDE;
|
||||
this.setSplits(splits || 1);
|
||||
this.$cEditor = this.$editors[0];
|
||||
this.on("focus", function (editor) {
|
||||
this.$cEditor = editor;
|
||||
}.bind(this));
|
||||
};
|
||||
(function () {
|
||||
oop.implement(this, EventEmitter);
|
||||
this.$createEditor = function () {
|
||||
var el = document.createElement("div");
|
||||
el.className = this.$editorCSS;
|
||||
el.style.cssText = "position: absolute; top:0px; bottom:0px";
|
||||
this.$container.appendChild(el);
|
||||
var editor = new Editor(new Renderer(el, this.$theme));
|
||||
editor.on("focus", function () {
|
||||
this._emit("focus", editor);
|
||||
}.bind(this));
|
||||
this.$editors.push(editor);
|
||||
editor.setFontSize(this.$fontSize);
|
||||
return editor;
|
||||
};
|
||||
this.setSplits = function (splits) {
|
||||
var editor;
|
||||
if (splits < 1) {
|
||||
throw "The number of splits have to be > 0!";
|
||||
}
|
||||
if (splits == this.$splits) {
|
||||
return;
|
||||
}
|
||||
else if (splits > this.$splits) {
|
||||
while (this.$splits < this.$editors.length && this.$splits < splits) {
|
||||
editor = this.$editors[this.$splits];
|
||||
this.$container.appendChild(editor.container);
|
||||
editor.setFontSize(this.$fontSize);
|
||||
this.$splits++;
|
||||
}
|
||||
while (this.$splits < splits) {
|
||||
this.$createEditor();
|
||||
this.$splits++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
while (this.$splits > splits) {
|
||||
editor = this.$editors[this.$splits - 1];
|
||||
this.$container.removeChild(editor.container);
|
||||
this.$splits--;
|
||||
}
|
||||
}
|
||||
this.resize();
|
||||
};
|
||||
this.getSplits = function () {
|
||||
return this.$splits;
|
||||
};
|
||||
this.getEditor = function (idx) {
|
||||
return this.$editors[idx];
|
||||
};
|
||||
this.getCurrentEditor = function () {
|
||||
return this.$cEditor;
|
||||
};
|
||||
this.focus = function () {
|
||||
this.$cEditor.focus();
|
||||
};
|
||||
this.blur = function () {
|
||||
this.$cEditor.blur();
|
||||
};
|
||||
this.setTheme = function (theme) {
|
||||
this.$editors.forEach(function (editor) {
|
||||
editor.setTheme(theme);
|
||||
});
|
||||
};
|
||||
this.setKeyboardHandler = function (keybinding) {
|
||||
this.$editors.forEach(function (editor) {
|
||||
editor.setKeyboardHandler(keybinding);
|
||||
});
|
||||
};
|
||||
this.forEach = function (callback, scope) {
|
||||
this.$editors.forEach(callback, scope);
|
||||
};
|
||||
this.$fontSize = "";
|
||||
this.setFontSize = function (size) {
|
||||
this.$fontSize = size;
|
||||
this.forEach(function (editor) {
|
||||
editor.setFontSize(size);
|
||||
});
|
||||
};
|
||||
this.$cloneSession = function (session) {
|
||||
var s = new EditSession(session.getDocument(), session.getMode());
|
||||
var undoManager = session.getUndoManager();
|
||||
s.setUndoManager(undoManager);
|
||||
s.setTabSize(session.getTabSize());
|
||||
s.setUseSoftTabs(session.getUseSoftTabs());
|
||||
s.setOverwrite(session.getOverwrite());
|
||||
s.setBreakpoints(session.getBreakpoints());
|
||||
s.setUseWrapMode(session.getUseWrapMode());
|
||||
s.setUseWorker(session.getUseWorker());
|
||||
s.setWrapLimitRange(session.$wrapLimitRange.min, session.$wrapLimitRange.max);
|
||||
s.$foldData = session.$cloneFoldData();
|
||||
return s;
|
||||
};
|
||||
this.setSession = function (session, idx) {
|
||||
var editor;
|
||||
if (idx == null) {
|
||||
editor = this.$cEditor;
|
||||
}
|
||||
else {
|
||||
editor = this.$editors[idx];
|
||||
}
|
||||
var isUsed = this.$editors.some(function (editor) {
|
||||
return editor.session === session;
|
||||
});
|
||||
if (isUsed) {
|
||||
session = this.$cloneSession(session);
|
||||
}
|
||||
editor.setSession(session);
|
||||
return session;
|
||||
};
|
||||
this.getOrientation = function () {
|
||||
return this.$orientation;
|
||||
};
|
||||
this.setOrientation = function (orientation) {
|
||||
if (this.$orientation == orientation) {
|
||||
return;
|
||||
}
|
||||
this.$orientation = orientation;
|
||||
this.resize();
|
||||
};
|
||||
this.resize = function () {
|
||||
var width = this.$container.clientWidth;
|
||||
var height = this.$container.clientHeight;
|
||||
var editor;
|
||||
if (this.$orientation == this.BESIDE) {
|
||||
var editorWidth = width / this.$splits;
|
||||
for (var i = 0; i < this.$splits; i++) {
|
||||
editor = this.$editors[i];
|
||||
editor.container.style.width = editorWidth + "px";
|
||||
editor.container.style.top = "0px";
|
||||
editor.container.style.left = i * editorWidth + "px";
|
||||
editor.container.style.height = height + "px";
|
||||
editor.resize();
|
||||
}
|
||||
}
|
||||
else {
|
||||
var editorHeight = height / this.$splits;
|
||||
for (var i = 0; i < this.$splits; i++) {
|
||||
editor = this.$editors[i];
|
||||
editor.container.style.width = width + "px";
|
||||
editor.container.style.top = i * editorHeight + "px";
|
||||
editor.container.style.left = "0px";
|
||||
editor.container.style.height = editorHeight + "px";
|
||||
editor.resize();
|
||||
}
|
||||
}
|
||||
};
|
||||
}).call(Split.prototype);
|
||||
exports.Split = Split;
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/split",["require","exports","module","ace/split"], function(require, exports, module){"use strict";
|
||||
module.exports = require("../split");
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/split"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
182
src/main/resources/static/assets/js/vendor/template/build/src/ext-static_highlight.js
vendored
Normal file
182
src/main/resources/static/assets/js/vendor/template/build/src/ext-static_highlight.js
vendored
Normal file
@ -0,0 +1,182 @@
|
||||
define("ace/ext/static.css",["require","exports","module"], function(require, exports, module){module.exports = ".ace_static_highlight {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;\n font-size: 12px;\n white-space: pre-wrap\n}\n\n.ace_static_highlight .ace_gutter {\n width: 2em;\n text-align: right;\n padding: 0 3px 0 0;\n margin-right: 3px;\n contain: none;\n}\n\n.ace_static_highlight.ace_show_gutter .ace_line {\n padding-left: 2.6em;\n}\n\n.ace_static_highlight .ace_line { position: relative; }\n\n.ace_static_highlight .ace_gutter-cell {\n -moz-user-select: -moz-none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n top: 0;\n bottom: 0;\n left: 0;\n position: absolute;\n}\n\n\n.ace_static_highlight .ace_gutter-cell:before {\n content: counter(ace_line, decimal);\n counter-increment: ace_line;\n}\n.ace_static_highlight {\n counter-reset: ace_line;\n}\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/static_highlight",["require","exports","module","ace/edit_session","ace/layer/text","ace/ext/static.css","ace/config","ace/lib/dom","ace/lib/lang"], function(require, exports, module){"use strict";
|
||||
var EditSession = require("../edit_session").EditSession;
|
||||
var TextLayer = require("../layer/text").Text;
|
||||
var baseStyles = require("./static.css");
|
||||
var config = require("../config");
|
||||
var dom = require("../lib/dom");
|
||||
var escapeHTML = require("../lib/lang").escapeHTML;
|
||||
function Element(type) {
|
||||
this.type = type;
|
||||
this.style = {};
|
||||
this.textContent = "";
|
||||
}
|
||||
Element.prototype.cloneNode = function () {
|
||||
return this;
|
||||
};
|
||||
Element.prototype.appendChild = function (child) {
|
||||
this.textContent += child.toString();
|
||||
};
|
||||
Element.prototype.toString = function () {
|
||||
var stringBuilder = [];
|
||||
if (this.type != "fragment") {
|
||||
stringBuilder.push("<", this.type);
|
||||
if (this.className)
|
||||
stringBuilder.push(" class='", this.className, "'");
|
||||
var styleStr = [];
|
||||
for (var key in this.style) {
|
||||
styleStr.push(key, ":", this.style[key]);
|
||||
}
|
||||
if (styleStr.length)
|
||||
stringBuilder.push(" style='", styleStr.join(""), "'");
|
||||
stringBuilder.push(">");
|
||||
}
|
||||
if (this.textContent) {
|
||||
stringBuilder.push(this.textContent);
|
||||
}
|
||||
if (this.type != "fragment") {
|
||||
stringBuilder.push("</", this.type, ">");
|
||||
}
|
||||
return stringBuilder.join("");
|
||||
};
|
||||
var simpleDom = {
|
||||
createTextNode: function (textContent, element) {
|
||||
return escapeHTML(textContent);
|
||||
},
|
||||
createElement: function (type) {
|
||||
return new Element(type);
|
||||
},
|
||||
createFragment: function () {
|
||||
return new Element("fragment");
|
||||
}
|
||||
};
|
||||
var SimpleTextLayer = function () {
|
||||
this.config = {};
|
||||
this.dom = simpleDom;
|
||||
};
|
||||
SimpleTextLayer.prototype = TextLayer.prototype;
|
||||
var highlight = function (el, opts, callback) {
|
||||
var m = el.className.match(/lang-(\w+)/);
|
||||
var mode = opts.mode || m && ("ace/mode/" + m[1]);
|
||||
if (!mode)
|
||||
return false;
|
||||
var theme = opts.theme || "ace/theme/textmate";
|
||||
var data = "";
|
||||
var nodes = [];
|
||||
if (el.firstElementChild) {
|
||||
var textLen = 0;
|
||||
for (var i = 0; i < el.childNodes.length; i++) {
|
||||
var ch = el.childNodes[i];
|
||||
if (ch.nodeType == 3) {
|
||||
textLen += ch.data.length;
|
||||
data += ch.data;
|
||||
}
|
||||
else {
|
||||
nodes.push(textLen, ch);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
data = el.textContent;
|
||||
if (opts.trim)
|
||||
data = data.trim();
|
||||
}
|
||||
highlight.render(data, mode, theme, opts.firstLineNumber, !opts.showGutter, function (highlighted) {
|
||||
dom.importCssString(highlighted.css, "ace_highlight");
|
||||
el.innerHTML = highlighted.html;
|
||||
var container = el.firstChild.firstChild;
|
||||
for (var i = 0; i < nodes.length; i += 2) {
|
||||
var pos = highlighted.session.doc.indexToPosition(nodes[i]);
|
||||
var node = nodes[i + 1];
|
||||
var lineEl = container.children[pos.row];
|
||||
lineEl && lineEl.appendChild(node);
|
||||
}
|
||||
callback && callback();
|
||||
});
|
||||
};
|
||||
highlight.render = function (input, mode, theme, lineStart, disableGutter, callback) {
|
||||
var waiting = 1;
|
||||
var modeCache = EditSession.prototype.$modes;
|
||||
if (typeof theme == "string") {
|
||||
waiting++;
|
||||
config.loadModule(['theme', theme], function (m) {
|
||||
theme = m;
|
||||
--waiting || done();
|
||||
});
|
||||
}
|
||||
var modeOptions;
|
||||
if (mode && typeof mode === "object" && !mode.getTokenizer) {
|
||||
modeOptions = mode;
|
||||
mode = modeOptions.path;
|
||||
}
|
||||
if (typeof mode == "string") {
|
||||
waiting++;
|
||||
config.loadModule(['mode', mode], function (m) {
|
||||
if (!modeCache[mode] || modeOptions)
|
||||
modeCache[mode] = new m.Mode(modeOptions);
|
||||
mode = modeCache[mode];
|
||||
--waiting || done();
|
||||
});
|
||||
}
|
||||
function done() {
|
||||
var result = highlight.renderSync(input, mode, theme, lineStart, disableGutter);
|
||||
return callback ? callback(result) : result;
|
||||
}
|
||||
return --waiting || done();
|
||||
};
|
||||
highlight.renderSync = function (input, mode, theme, lineStart, disableGutter) {
|
||||
lineStart = parseInt(lineStart || 1, 10);
|
||||
var session = new EditSession("");
|
||||
session.setUseWorker(false);
|
||||
session.setMode(mode);
|
||||
var textLayer = new SimpleTextLayer();
|
||||
textLayer.setSession(session);
|
||||
Object.keys(textLayer.$tabStrings).forEach(function (k) {
|
||||
if (typeof textLayer.$tabStrings[k] == "string") {
|
||||
var el = simpleDom.createFragment();
|
||||
el.textContent = textLayer.$tabStrings[k];
|
||||
textLayer.$tabStrings[k] = el;
|
||||
}
|
||||
});
|
||||
session.setValue(input);
|
||||
var length = session.getLength();
|
||||
var outerEl = simpleDom.createElement("div");
|
||||
outerEl.className = theme.cssClass;
|
||||
var innerEl = simpleDom.createElement("div");
|
||||
innerEl.className = "ace_static_highlight" + (disableGutter ? "" : " ace_show_gutter");
|
||||
innerEl.style["counter-reset"] = "ace_line " + (lineStart - 1);
|
||||
for (var ix = 0; ix < length; ix++) {
|
||||
var lineEl = simpleDom.createElement("div");
|
||||
lineEl.className = "ace_line";
|
||||
if (!disableGutter) {
|
||||
var gutterEl = simpleDom.createElement("span");
|
||||
gutterEl.className = "ace_gutter ace_gutter-cell";
|
||||
gutterEl.textContent = "";
|
||||
lineEl.appendChild(gutterEl);
|
||||
}
|
||||
textLayer.$renderLine(lineEl, ix, false);
|
||||
lineEl.textContent += "\n";
|
||||
innerEl.appendChild(lineEl);
|
||||
}
|
||||
outerEl.appendChild(innerEl);
|
||||
return {
|
||||
css: baseStyles + theme.cssText,
|
||||
html: outerEl.toString(),
|
||||
session: session
|
||||
};
|
||||
};
|
||||
module.exports = highlight;
|
||||
module.exports.highlight = highlight;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/static_highlight"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
48
src/main/resources/static/assets/js/vendor/template/build/src/ext-statusbar.js
vendored
Normal file
48
src/main/resources/static/assets/js/vendor/template/build/src/ext-statusbar.js
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"], function(require, exports, module){"use strict";
|
||||
var dom = require("../lib/dom");
|
||||
var lang = require("../lib/lang");
|
||||
var StatusBar = function (editor, parentNode) {
|
||||
this.element = dom.createElement("div");
|
||||
this.element.className = "ace_status-indicator";
|
||||
this.element.style.cssText = "display: inline-block;";
|
||||
parentNode.appendChild(this.element);
|
||||
var statusUpdate = lang.delayedCall(function () {
|
||||
this.updateStatus(editor);
|
||||
}.bind(this)).schedule.bind(null, 100);
|
||||
editor.on("changeStatus", statusUpdate);
|
||||
editor.on("changeSelection", statusUpdate);
|
||||
editor.on("keyboardActivity", statusUpdate);
|
||||
};
|
||||
(function () {
|
||||
this.updateStatus = function (editor) {
|
||||
var status = [];
|
||||
function add(str, separator) {
|
||||
str && status.push(str, separator || "|");
|
||||
}
|
||||
add(editor.keyBinding.getStatusText(editor));
|
||||
if (editor.commands.recording)
|
||||
add("REC");
|
||||
var sel = editor.selection;
|
||||
var c = sel.lead;
|
||||
if (!sel.isEmpty()) {
|
||||
var r = editor.getSelectionRange();
|
||||
add("(" + (r.end.row - r.start.row) + ":" + (r.end.column - r.start.column) + ")", " ");
|
||||
}
|
||||
add(c.row + ":" + c.column, " ");
|
||||
if (sel.rangeCount)
|
||||
add("[" + sel.rangeCount + "]", " ");
|
||||
status.pop();
|
||||
this.element.textContent = status.join("");
|
||||
};
|
||||
}).call(StatusBar.prototype);
|
||||
exports.StatusBar = StatusBar;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/statusbar"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
389
src/main/resources/static/assets/js/vendor/template/build/src/ext-textarea.js
vendored
Normal file
389
src/main/resources/static/assets/js/vendor/template/build/src/ext-textarea.js
vendored
Normal file
@ -0,0 +1,389 @@
|
||||
define("ace/ext/textarea",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/net","ace/ace"], function(require, exports, module){"use strict";
|
||||
var event = require("../lib/event");
|
||||
var UA = require("../lib/useragent");
|
||||
var net = require("../lib/net");
|
||||
var ace = require("../ace");
|
||||
module.exports = exports = ace;
|
||||
var getCSSProperty = function (element, container, property) {
|
||||
var ret = element.style[property];
|
||||
if (!ret) {
|
||||
if (window.getComputedStyle) {
|
||||
ret = window.getComputedStyle(element, '').getPropertyValue(property);
|
||||
}
|
||||
else {
|
||||
ret = element.currentStyle[property];
|
||||
}
|
||||
}
|
||||
if (!ret || ret == 'auto' || ret == 'intrinsic') {
|
||||
ret = container.style[property];
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
function applyStyles(elm, styles) {
|
||||
for (var style in styles) {
|
||||
elm.style[style] = styles[style];
|
||||
}
|
||||
}
|
||||
function setupContainer(element, getValue) {
|
||||
if (element.type != 'textarea') {
|
||||
throw new Error("Textarea required!");
|
||||
}
|
||||
var parentNode = element.parentNode;
|
||||
var container = document.createElement('div');
|
||||
var resizeEvent = function () {
|
||||
var style = 'position:relative;';
|
||||
[
|
||||
'margin-top', 'margin-left', 'margin-right', 'margin-bottom'
|
||||
].forEach(function (item) {
|
||||
style += item + ':' +
|
||||
getCSSProperty(element, container, item) + ';';
|
||||
});
|
||||
var width = getCSSProperty(element, container, 'width') || (element.clientWidth + "px");
|
||||
var height = getCSSProperty(element, container, 'height') || (element.clientHeight + "px");
|
||||
style += 'height:' + height + ';width:' + width + ';';
|
||||
style += 'display:inline-block;';
|
||||
container.setAttribute('style', style);
|
||||
};
|
||||
event.addListener(window, 'resize', resizeEvent);
|
||||
resizeEvent();
|
||||
parentNode.insertBefore(container, element.nextSibling);
|
||||
while (parentNode !== document) {
|
||||
if (parentNode.tagName.toUpperCase() === 'FORM') {
|
||||
var oldSumit = parentNode.onsubmit;
|
||||
parentNode.onsubmit = function (evt) {
|
||||
element.value = getValue();
|
||||
if (oldSumit) {
|
||||
oldSumit.call(this, evt);
|
||||
}
|
||||
};
|
||||
break;
|
||||
}
|
||||
parentNode = parentNode.parentNode;
|
||||
}
|
||||
return container;
|
||||
}
|
||||
exports.transformTextarea = function (element, options) {
|
||||
var isFocused = element.autofocus || document.activeElement == element;
|
||||
var session;
|
||||
var container = setupContainer(element, function () {
|
||||
return session.getValue();
|
||||
});
|
||||
element.style.display = 'none';
|
||||
container.style.background = 'white';
|
||||
var editorDiv = document.createElement("div");
|
||||
applyStyles(editorDiv, {
|
||||
top: "0px",
|
||||
left: "0px",
|
||||
right: "0px",
|
||||
bottom: "0px",
|
||||
border: "1px solid gray",
|
||||
position: "absolute"
|
||||
});
|
||||
container.appendChild(editorDiv);
|
||||
var settingOpener = document.createElement("div");
|
||||
applyStyles(settingOpener, {
|
||||
position: "absolute",
|
||||
right: "0px",
|
||||
bottom: "0px",
|
||||
cursor: "nw-resize",
|
||||
border: "solid 9px",
|
||||
borderColor: "lightblue gray gray #ceade6",
|
||||
zIndex: 101
|
||||
});
|
||||
var settingDiv = document.createElement("div");
|
||||
var settingDivStyles = {
|
||||
top: "0px",
|
||||
left: "20%",
|
||||
right: "0px",
|
||||
bottom: "0px",
|
||||
position: "absolute",
|
||||
padding: "5px",
|
||||
zIndex: 100,
|
||||
color: "white",
|
||||
display: "none",
|
||||
overflow: "auto",
|
||||
fontSize: "14px",
|
||||
boxShadow: "-5px 2px 3px gray"
|
||||
};
|
||||
if (!UA.isOldIE) {
|
||||
settingDivStyles.backgroundColor = "rgba(0, 0, 0, 0.6)";
|
||||
}
|
||||
else {
|
||||
settingDivStyles.backgroundColor = "#333";
|
||||
}
|
||||
applyStyles(settingDiv, settingDivStyles);
|
||||
container.appendChild(settingDiv);
|
||||
options = options || exports.defaultOptions;
|
||||
var editor = ace.edit(editorDiv);
|
||||
session = editor.getSession();
|
||||
session.setValue(element.value || element.innerHTML);
|
||||
if (isFocused)
|
||||
editor.focus();
|
||||
container.appendChild(settingOpener);
|
||||
setupApi(editor, editorDiv, settingDiv, ace, options);
|
||||
setupSettingPanel(settingDiv, settingOpener, editor);
|
||||
var state = "";
|
||||
event.addListener(settingOpener, "mousemove", function (e) {
|
||||
var rect = this.getBoundingClientRect();
|
||||
var x = e.clientX - rect.left, y = e.clientY - rect.top;
|
||||
if (x + y < (rect.width + rect.height) / 2) {
|
||||
this.style.cursor = "pointer";
|
||||
state = "toggle";
|
||||
}
|
||||
else {
|
||||
state = "resize";
|
||||
this.style.cursor = "nw-resize";
|
||||
}
|
||||
});
|
||||
event.addListener(settingOpener, "mousedown", function (e) {
|
||||
e.preventDefault();
|
||||
if (state == "toggle") {
|
||||
editor.setDisplaySettings();
|
||||
return;
|
||||
}
|
||||
container.style.zIndex = 100000;
|
||||
var rect = container.getBoundingClientRect();
|
||||
var startX = rect.width + rect.left - e.clientX;
|
||||
var startY = rect.height + rect.top - e.clientY;
|
||||
event.capture(settingOpener, function (e) {
|
||||
container.style.width = e.clientX - rect.left + startX + "px";
|
||||
container.style.height = e.clientY - rect.top + startY + "px";
|
||||
editor.resize();
|
||||
}, function () { });
|
||||
});
|
||||
return editor;
|
||||
};
|
||||
function load(url, module, callback) {
|
||||
net.loadScript(url, function () {
|
||||
require([module], callback);
|
||||
});
|
||||
}
|
||||
function setupApi(editor, editorDiv, settingDiv, ace, options) {
|
||||
var session = editor.getSession();
|
||||
var renderer = editor.renderer;
|
||||
function toBool(value) {
|
||||
return value === "true" || value == true;
|
||||
}
|
||||
editor.setDisplaySettings = function (display) {
|
||||
if (display == null)
|
||||
display = settingDiv.style.display == "none";
|
||||
if (display) {
|
||||
settingDiv.style.display = "block";
|
||||
settingDiv.hideButton.focus();
|
||||
editor.on("focus", function onFocus() {
|
||||
editor.removeListener("focus", onFocus);
|
||||
settingDiv.style.display = "none";
|
||||
});
|
||||
}
|
||||
else {
|
||||
editor.focus();
|
||||
}
|
||||
};
|
||||
editor.$setOption = editor.setOption;
|
||||
editor.$getOption = editor.getOption;
|
||||
editor.setOption = function (key, value) {
|
||||
switch (key) {
|
||||
case "mode":
|
||||
editor.$setOption("mode", "ace/mode/" + value);
|
||||
break;
|
||||
case "theme":
|
||||
editor.$setOption("theme", "ace/theme/" + value);
|
||||
break;
|
||||
case "keybindings":
|
||||
switch (value) {
|
||||
case "vim":
|
||||
editor.setKeyboardHandler("ace/keyboard/vim");
|
||||
break;
|
||||
case "emacs":
|
||||
editor.setKeyboardHandler("ace/keyboard/emacs");
|
||||
break;
|
||||
default:
|
||||
editor.setKeyboardHandler(null);
|
||||
}
|
||||
break;
|
||||
case "wrap":
|
||||
case "fontSize":
|
||||
editor.$setOption(key, value);
|
||||
break;
|
||||
default:
|
||||
editor.$setOption(key, toBool(value));
|
||||
}
|
||||
};
|
||||
editor.getOption = function (key) {
|
||||
switch (key) {
|
||||
case "mode":
|
||||
return editor.$getOption("mode").substr("ace/mode/".length);
|
||||
break;
|
||||
case "theme":
|
||||
return editor.$getOption("theme").substr("ace/theme/".length);
|
||||
break;
|
||||
case "keybindings":
|
||||
var value = editor.getKeyboardHandler();
|
||||
switch (value && value.$id) {
|
||||
case "ace/keyboard/vim":
|
||||
return "vim";
|
||||
case "ace/keyboard/emacs":
|
||||
return "emacs";
|
||||
default:
|
||||
return "ace";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return editor.$getOption(key);
|
||||
}
|
||||
};
|
||||
editor.setOptions(options);
|
||||
return editor;
|
||||
}
|
||||
function setupSettingPanel(settingDiv, settingOpener, editor) {
|
||||
var BOOL = null;
|
||||
var desc = {
|
||||
mode: "Mode:",
|
||||
wrap: "Soft Wrap:",
|
||||
theme: "Theme:",
|
||||
fontSize: "Font Size:",
|
||||
showGutter: "Display Gutter:",
|
||||
keybindings: "Keyboard",
|
||||
showPrintMargin: "Show Print Margin:",
|
||||
useSoftTabs: "Use Soft Tabs:",
|
||||
showInvisibles: "Show Invisibles"
|
||||
};
|
||||
var optionValues = {
|
||||
mode: {
|
||||
text: "Plain",
|
||||
javascript: "JavaScript",
|
||||
xml: "XML",
|
||||
html: "HTML",
|
||||
css: "CSS",
|
||||
scss: "SCSS",
|
||||
python: "Python",
|
||||
php: "PHP",
|
||||
java: "Java",
|
||||
ruby: "Ruby",
|
||||
c_cpp: "C/C++",
|
||||
coffee: "CoffeeScript",
|
||||
json: "json",
|
||||
perl: "Perl",
|
||||
clojure: "Clojure",
|
||||
ocaml: "OCaml",
|
||||
csharp: "C#",
|
||||
haxe: "haXe",
|
||||
svg: "SVG",
|
||||
textile: "Textile",
|
||||
groovy: "Groovy",
|
||||
liquid: "Liquid",
|
||||
Scala: "Scala"
|
||||
},
|
||||
theme: {
|
||||
clouds: "Clouds",
|
||||
clouds_midnight: "Clouds Midnight",
|
||||
cobalt: "Cobalt",
|
||||
crimson_editor: "Crimson Editor",
|
||||
dawn: "Dawn",
|
||||
gob: "Green on Black",
|
||||
eclipse: "Eclipse",
|
||||
idle_fingers: "Idle Fingers",
|
||||
kr_theme: "Kr Theme",
|
||||
merbivore: "Merbivore",
|
||||
merbivore_soft: "Merbivore Soft",
|
||||
mono_industrial: "Mono Industrial",
|
||||
monokai: "Monokai",
|
||||
pastel_on_dark: "Pastel On Dark",
|
||||
solarized_dark: "Solarized Dark",
|
||||
solarized_light: "Solarized Light",
|
||||
textmate: "Textmate",
|
||||
twilight: "Twilight",
|
||||
vibrant_ink: "Vibrant Ink"
|
||||
},
|
||||
showGutter: BOOL,
|
||||
fontSize: {
|
||||
"10px": "10px",
|
||||
"11px": "11px",
|
||||
"12px": "12px",
|
||||
"14px": "14px",
|
||||
"16px": "16px"
|
||||
},
|
||||
wrap: {
|
||||
off: "Off",
|
||||
40: "40",
|
||||
80: "80",
|
||||
free: "Free"
|
||||
},
|
||||
keybindings: {
|
||||
ace: "ace",
|
||||
vim: "vim",
|
||||
emacs: "emacs"
|
||||
},
|
||||
showPrintMargin: BOOL,
|
||||
useSoftTabs: BOOL,
|
||||
showInvisibles: BOOL
|
||||
};
|
||||
var table = [];
|
||||
table.push("<table><tr><th>Setting</th><th>Value</th></tr>");
|
||||
function renderOption(builder, option, obj, cValue) {
|
||||
if (!obj) {
|
||||
builder.push("<input type='checkbox' title='", option, "' ", cValue + "" == "true" ? "checked='true'" : "", "'></input>");
|
||||
return;
|
||||
}
|
||||
builder.push("<select title='" + option + "'>");
|
||||
for (var value in obj) {
|
||||
builder.push("<option value='" + value + "' ");
|
||||
if (cValue == value) {
|
||||
builder.push(" selected ");
|
||||
}
|
||||
builder.push(">", obj[value], "</option>");
|
||||
}
|
||||
builder.push("</select>");
|
||||
}
|
||||
for (var option in exports.defaultOptions) {
|
||||
table.push("<tr><td>", desc[option], "</td>");
|
||||
table.push("<td>");
|
||||
renderOption(table, option, optionValues[option], editor.getOption(option));
|
||||
table.push("</td></tr>");
|
||||
}
|
||||
table.push("</table>");
|
||||
settingDiv.innerHTML = table.join("");
|
||||
var onChange = function (e) {
|
||||
var select = e.currentTarget;
|
||||
editor.setOption(select.title, select.value);
|
||||
};
|
||||
var onClick = function (e) {
|
||||
var cb = e.currentTarget;
|
||||
editor.setOption(cb.title, cb.checked);
|
||||
};
|
||||
var selects = settingDiv.getElementsByTagName("select");
|
||||
for (var i = 0; i < selects.length; i++)
|
||||
selects[i].onchange = onChange;
|
||||
var cbs = settingDiv.getElementsByTagName("input");
|
||||
for (var i = 0; i < cbs.length; i++)
|
||||
cbs[i].onclick = onClick;
|
||||
var button = document.createElement("input");
|
||||
button.type = "button";
|
||||
button.value = "Hide";
|
||||
event.addListener(button, "click", function () {
|
||||
editor.setDisplaySettings(false);
|
||||
});
|
||||
settingDiv.appendChild(button);
|
||||
settingDiv.hideButton = button;
|
||||
}
|
||||
exports.defaultOptions = {
|
||||
mode: "javascript",
|
||||
theme: "textmate",
|
||||
wrap: "off",
|
||||
fontSize: "12px",
|
||||
showGutter: "false",
|
||||
keybindings: "ace",
|
||||
showPrintMargin: "false",
|
||||
useSoftTabs: "true",
|
||||
showInvisibles: "false"
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/textarea"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
71
src/main/resources/static/assets/js/vendor/template/build/src/ext-themelist.js
vendored
Normal file
71
src/main/resources/static/assets/js/vendor/template/build/src/ext-themelist.js
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
define("ace/ext/themelist",["require","exports","module"], function(require, exports, module){/**
|
||||
* Generates a list of themes available when ace was built.
|
||||
* @fileOverview Generates a list of themes available when ace was built.
|
||||
* @author <a href="mailto:matthewkastor@gmail.com">
|
||||
* Matthew Christopher Kastor-Inare III </a><br />
|
||||
* ☭ Hial Atropa!! ☭
|
||||
*/
|
||||
"use strict";
|
||||
var themeData = [
|
||||
["Chrome"],
|
||||
["Clouds"],
|
||||
["Crimson Editor"],
|
||||
["Dawn"],
|
||||
["Dreamweaver"],
|
||||
["Eclipse"],
|
||||
["GitHub"],
|
||||
["IPlastic"],
|
||||
["Solarized Light"],
|
||||
["TextMate"],
|
||||
["Tomorrow"],
|
||||
["XCode"],
|
||||
["Kuroir"],
|
||||
["KatzenMilch"],
|
||||
["SQL Server", "sqlserver", "light"],
|
||||
["Ambiance", "ambiance", "dark"],
|
||||
["Chaos", "chaos", "dark"],
|
||||
["Clouds Midnight", "clouds_midnight", "dark"],
|
||||
["Dracula", "", "dark"],
|
||||
["Cobalt", "cobalt", "dark"],
|
||||
["Gruvbox", "gruvbox", "dark"],
|
||||
["Green on Black", "gob", "dark"],
|
||||
["idle Fingers", "idle_fingers", "dark"],
|
||||
["krTheme", "kr_theme", "dark"],
|
||||
["Merbivore", "merbivore", "dark"],
|
||||
["Merbivore Soft", "merbivore_soft", "dark"],
|
||||
["Mono Industrial", "mono_industrial", "dark"],
|
||||
["Monokai", "monokai", "dark"],
|
||||
["Nord Dark", "nord_dark", "dark"],
|
||||
["One Dark", "one_dark", "dark"],
|
||||
["Pastel on dark", "pastel_on_dark", "dark"],
|
||||
["Solarized Dark", "solarized_dark", "dark"],
|
||||
["Terminal", "terminal", "dark"],
|
||||
["Tomorrow Night", "tomorrow_night", "dark"],
|
||||
["Tomorrow Night Blue", "tomorrow_night_blue", "dark"],
|
||||
["Tomorrow Night Bright", "tomorrow_night_bright", "dark"],
|
||||
["Tomorrow Night 80s", "tomorrow_night_eighties", "dark"],
|
||||
["Twilight", "twilight", "dark"],
|
||||
["Vibrant Ink", "vibrant_ink", "dark"]
|
||||
];
|
||||
exports.themesByName = {};
|
||||
exports.themes = themeData.map(function (data) {
|
||||
var name = data[1] || data[0].replace(/ /g, "_").toLowerCase();
|
||||
var theme = {
|
||||
caption: data[0],
|
||||
theme: "ace/theme/" + name,
|
||||
isDark: data[2] == "dark",
|
||||
name: name
|
||||
};
|
||||
exports.themesByName[name] = theme;
|
||||
return theme;
|
||||
});
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/themelist"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
193
src/main/resources/static/assets/js/vendor/template/build/src/ext-whitespace.js
vendored
Normal file
193
src/main/resources/static/assets/js/vendor/template/build/src/ext-whitespace.js
vendored
Normal file
@ -0,0 +1,193 @@
|
||||
define("ace/ext/whitespace",["require","exports","module","ace/lib/lang"], function(require, exports, module){"use strict";
|
||||
var lang = require("../lib/lang");
|
||||
exports.$detectIndentation = function (lines, fallback) {
|
||||
var stats = [];
|
||||
var changes = [];
|
||||
var tabIndents = 0;
|
||||
var prevSpaces = 0;
|
||||
var max = Math.min(lines.length, 1000);
|
||||
for (var i = 0; i < max; i++) {
|
||||
var line = lines[i];
|
||||
if (!/^\s*[^*+\-\s]/.test(line))
|
||||
continue;
|
||||
if (line[0] == "\t") {
|
||||
tabIndents++;
|
||||
prevSpaces = -Number.MAX_VALUE;
|
||||
}
|
||||
else {
|
||||
var spaces = line.match(/^ */)[0].length;
|
||||
if (spaces && line[spaces] != "\t") {
|
||||
var diff = spaces - prevSpaces;
|
||||
if (diff > 0 && !(prevSpaces % diff) && !(spaces % diff))
|
||||
changes[diff] = (changes[diff] || 0) + 1;
|
||||
stats[spaces] = (stats[spaces] || 0) + 1;
|
||||
}
|
||||
prevSpaces = spaces;
|
||||
}
|
||||
while (i < max && line[line.length - 1] == "\\")
|
||||
line = lines[i++];
|
||||
}
|
||||
function getScore(indent) {
|
||||
var score = 0;
|
||||
for (var i = indent; i < stats.length; i += indent)
|
||||
score += stats[i] || 0;
|
||||
return score;
|
||||
}
|
||||
var changesTotal = changes.reduce(function (a, b) { return a + b; }, 0);
|
||||
var first = { score: 0, length: 0 };
|
||||
var spaceIndents = 0;
|
||||
for (var i = 1; i < 12; i++) {
|
||||
var score = getScore(i);
|
||||
if (i == 1) {
|
||||
spaceIndents = score;
|
||||
score = stats[1] ? 0.9 : 0.8;
|
||||
if (!stats.length)
|
||||
score = 0;
|
||||
}
|
||||
else
|
||||
score /= spaceIndents;
|
||||
if (changes[i])
|
||||
score += changes[i] / changesTotal;
|
||||
if (score > first.score)
|
||||
first = { score: score, length: i };
|
||||
}
|
||||
if (first.score && first.score > 1.4)
|
||||
var tabLength = first.length;
|
||||
if (tabIndents > spaceIndents + 1) {
|
||||
if (tabLength == 1 || spaceIndents < tabIndents / 4 || first.score < 1.8)
|
||||
tabLength = undefined;
|
||||
return { ch: "\t", length: tabLength };
|
||||
}
|
||||
if (spaceIndents > tabIndents + 1)
|
||||
return { ch: " ", length: tabLength };
|
||||
};
|
||||
exports.detectIndentation = function (session) {
|
||||
var lines = session.getLines(0, 1000);
|
||||
var indent = exports.$detectIndentation(lines) || {};
|
||||
if (indent.ch)
|
||||
session.setUseSoftTabs(indent.ch == " ");
|
||||
if (indent.length)
|
||||
session.setTabSize(indent.length);
|
||||
return indent;
|
||||
};
|
||||
exports.trimTrailingSpace = function (session, options) {
|
||||
var doc = session.getDocument();
|
||||
var lines = doc.getAllLines();
|
||||
var min = options && options.trimEmpty ? -1 : 0;
|
||||
var cursors = [], ci = -1;
|
||||
if (options && options.keepCursorPosition) {
|
||||
if (session.selection.rangeCount) {
|
||||
session.selection.rangeList.ranges.forEach(function (x, i, ranges) {
|
||||
var next = ranges[i + 1];
|
||||
if (next && next.cursor.row == x.cursor.row)
|
||||
return;
|
||||
cursors.push(x.cursor);
|
||||
});
|
||||
}
|
||||
else {
|
||||
cursors.push(session.selection.getCursor());
|
||||
}
|
||||
ci = 0;
|
||||
}
|
||||
var cursorRow = cursors[ci] && cursors[ci].row;
|
||||
for (var i = 0, l = lines.length; i < l; i++) {
|
||||
var line = lines[i];
|
||||
var index = line.search(/\s+$/);
|
||||
if (i == cursorRow) {
|
||||
if (index < cursors[ci].column && index > min)
|
||||
index = cursors[ci].column;
|
||||
ci++;
|
||||
cursorRow = cursors[ci] ? cursors[ci].row : -1;
|
||||
}
|
||||
if (index > min)
|
||||
doc.removeInLine(i, index, line.length);
|
||||
}
|
||||
};
|
||||
exports.convertIndentation = function (session, ch, len) {
|
||||
var oldCh = session.getTabString()[0];
|
||||
var oldLen = session.getTabSize();
|
||||
if (!len)
|
||||
len = oldLen;
|
||||
if (!ch)
|
||||
ch = oldCh;
|
||||
var tab = ch == "\t" ? ch : lang.stringRepeat(ch, len);
|
||||
var doc = session.doc;
|
||||
var lines = doc.getAllLines();
|
||||
var cache = {};
|
||||
var spaceCache = {};
|
||||
for (var i = 0, l = lines.length; i < l; i++) {
|
||||
var line = lines[i];
|
||||
var match = line.match(/^\s*/)[0];
|
||||
if (match) {
|
||||
var w = session.$getStringScreenWidth(match)[0];
|
||||
var tabCount = Math.floor(w / oldLen);
|
||||
var reminder = w % oldLen;
|
||||
var toInsert = cache[tabCount] || (cache[tabCount] = lang.stringRepeat(tab, tabCount));
|
||||
toInsert += spaceCache[reminder] || (spaceCache[reminder] = lang.stringRepeat(" ", reminder));
|
||||
if (toInsert != match) {
|
||||
doc.removeInLine(i, 0, match.length);
|
||||
doc.insertInLine({ row: i, column: 0 }, toInsert);
|
||||
}
|
||||
}
|
||||
}
|
||||
session.setTabSize(len);
|
||||
session.setUseSoftTabs(ch == " ");
|
||||
};
|
||||
exports.$parseStringArg = function (text) {
|
||||
var indent = {};
|
||||
if (/t/.test(text))
|
||||
indent.ch = "\t";
|
||||
else if (/s/.test(text))
|
||||
indent.ch = " ";
|
||||
var m = text.match(/\d+/);
|
||||
if (m)
|
||||
indent.length = parseInt(m[0], 10);
|
||||
return indent;
|
||||
};
|
||||
exports.$parseArg = function (arg) {
|
||||
if (!arg)
|
||||
return {};
|
||||
if (typeof arg == "string")
|
||||
return exports.$parseStringArg(arg);
|
||||
if (typeof arg.text == "string")
|
||||
return exports.$parseStringArg(arg.text);
|
||||
return arg;
|
||||
};
|
||||
exports.commands = [{
|
||||
name: "detectIndentation",
|
||||
description: "Detect indentation from content",
|
||||
exec: function (editor) {
|
||||
exports.detectIndentation(editor.session);
|
||||
}
|
||||
}, {
|
||||
name: "trimTrailingSpace",
|
||||
description: "Trim trailing whitespace",
|
||||
exec: function (editor, args) {
|
||||
exports.trimTrailingSpace(editor.session, args);
|
||||
}
|
||||
}, {
|
||||
name: "convertIndentation",
|
||||
description: "Convert indentation to ...",
|
||||
exec: function (editor, arg) {
|
||||
var indent = exports.$parseArg(arg);
|
||||
exports.convertIndentation(editor.session, indent.ch, indent.length);
|
||||
}
|
||||
}, {
|
||||
name: "setIndentation",
|
||||
description: "Set indentation",
|
||||
exec: function (editor, arg) {
|
||||
var indent = exports.$parseArg(arg);
|
||||
indent.length && editor.session.setTabSize(indent.length);
|
||||
indent.ch && editor.session.setUseSoftTabs(indent.ch == " ");
|
||||
}
|
||||
}];
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/whitespace"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
17
src/main/resources/static/assets/js/vendor/template/build/src/snippets/edifact.js
vendored
Normal file
17
src/main/resources/static/assets/js/vendor/template/build/src/snippets/edifact.js
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
define("ace/snippets/edifact.snippets",["require","exports","module"], function(require, exports, module){module.exports = "## Access Modifiers\nsnippet u\n\tUN\nsnippet un\n\tUNB\nsnippet pr\n\tprivate\n##\n## Annotations\nsnippet before\n\t@Before\n\tstatic void ${1:intercept}(${2:args}) { ${3} }\nsnippet mm\n\t@ManyToMany\n\t${1}\nsnippet mo\n\t@ManyToOne\n\t${1}\nsnippet om\n\t@OneToMany${1:(cascade=CascadeType.ALL)}\n\t${2}\nsnippet oo\n\t@OneToOne\n\t${1}\n##\n## Basic Java packages and import\nsnippet im\n\timport\nsnippet j.b\n\tjava.beans.\nsnippet j.i\n\tjava.io.\nsnippet j.m\n\tjava.math.\nsnippet j.n\n\tjava.net.\nsnippet j.u\n\tjava.util.\n##\n## Class\nsnippet cl\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\nsnippet in\n\tinterface ${1:`Filename(\"\", \"untitled\")`} ${2:extends Parent}${3}\nsnippet tc\n\tpublic class ${1:`Filename()`} extends ${2:TestCase}\n##\n## Class Enhancements\nsnippet ext\n\textends \nsnippet imp\n\timplements\n##\n## Comments\nsnippet /*\n\t/*\n\t * ${1}\n\t */\n##\n## Constants\nsnippet co\n\tstatic public final ${1:String} ${2:var} = ${3};${4}\nsnippet cos\n\tstatic public final String ${1:var} = \"${2}\";${3}\n##\n## Control Statements\nsnippet case\n\tcase ${1}:\n\t\t${2}\nsnippet def\n\tdefault:\n\t\t${2}\nsnippet el\n\telse\nsnippet elif\n\telse if (${1}) ${2}\nsnippet if\n\tif (${1}) ${2}\nsnippet sw\n\tswitch (${1}) {\n\t\t${2}\n\t}\n##\n## Create a Method\nsnippet m\n\t${1:void} ${2:method}(${3}) ${4:throws }${5}\n##\n## Create a Variable\nsnippet v\n\t${1:String} ${2:var}${3: = null}${4};${5}\n##\n## Enhancements to Methods, variables, classes, etc.\nsnippet ab\n\tabstract\nsnippet fi\n\tfinal\nsnippet st\n\tstatic\nsnippet sy\n\tsynchronized\n##\n## Error Methods\nsnippet err\n\tSystem.err.print(\"${1:Message}\");\nsnippet errf\n\tSystem.err.printf(\"${1:Message}\", ${2:exception});\nsnippet errln\n\tSystem.err.println(\"${1:Message}\");\n##\n## Exception Handling\nsnippet as\n\tassert ${1:test} : \"${2:Failure message}\";${3}\nsnippet ca\n\tcatch(${1:Exception} ${2:e}) ${3}\nsnippet thr\n\tthrow\nsnippet ths\n\tthrows\nsnippet try\n\ttry {\n\t\t${3}\n\t} catch(${1:Exception} ${2:e}) {\n\t}\nsnippet tryf\n\ttry {\n\t\t${3}\n\t} catch(${1:Exception} ${2:e}) {\n\t} finally {\n\t}\n##\n## Find Methods\nsnippet findall\n\tList<${1:listName}> ${2:items} = ${1}.findAll();${3}\nsnippet findbyid\n\t${1:var} ${2:item} = ${1}.findById(${3});${4}\n##\n## Javadocs\nsnippet /**\n\t/**\n\t * ${1}\n\t */\nsnippet @au\n\t@author `system(\"grep \\`id -un\\` /etc/passwd | cut -d \\\":\\\" -f5 | cut -d \\\",\\\" -f1\")`\nsnippet @br\n\t@brief ${1:Description}\nsnippet @fi\n\t@file ${1:`Filename()`}.java\nsnippet @pa\n\t@param ${1:param}\nsnippet @re\n\t@return ${1:param}\n##\n## Logger Methods\nsnippet debug\n\tLogger.debug(${1:param});${2}\nsnippet error\n\tLogger.error(${1:param});${2}\nsnippet info\n\tLogger.info(${1:param});${2}\nsnippet warn\n\tLogger.warn(${1:param});${2}\n##\n## Loops\nsnippet enfor\n\tfor (${1} : ${2}) ${3}\nsnippet for\n\tfor (${1}; ${2}; ${3}) ${4}\nsnippet wh\n\twhile (${1}) ${2}\n##\n## Main method\nsnippet main\n\tpublic static void main (String[] args) {\n\t\t${1:/* code */}\n\t}\n##\n## Print Methods\nsnippet print\n\tSystem.out.print(\"${1:Message}\");\nsnippet printf\n\tSystem.out.printf(\"${1:Message}\", ${2:args});\nsnippet println\n\tSystem.out.println(${1});\n##\n## Render Methods\nsnippet ren\n\trender(${1:param});${2}\nsnippet rena\n\trenderArgs.put(\"${1}\", ${2});${3}\nsnippet renb\n\trenderBinary(${1:param});${2}\nsnippet renj\n\trenderJSON(${1:param});${2}\nsnippet renx\n\trenderXml(${1:param});${2}\n##\n## Setter and Getter Methods\nsnippet set\n\t${1:public} void set${3:}(${2:String} ${4:}){\n\t\tthis.$4 = $4;\n\t}\nsnippet get\n\t${1:public} ${2:String} get${3:}(){\n\t\treturn this.${4:};\n\t}\n##\n## Terminate Methods or Loops\nsnippet re\n\treturn\nsnippet br\n\tbreak;\n##\n## Test Methods\nsnippet t\n\tpublic void test${1:Name}() throws Exception {\n\t\t${2}\n\t}\nsnippet test\n\t@Test\n\tpublic void test${1:Name}() throws Exception {\n\t\t${2}\n\t}\n##\n## Utils\nsnippet Sc\n\tScanner\n##\n## Miscellaneous\nsnippet action\n\tpublic static void ${1:index}(${2:args}) { ${3} }\nsnippet rnf\n\tnotFound(${1:param});${2}\nsnippet rnfin\n\tnotFoundIfNull(${1:param});${2}\nsnippet rr\n\tredirect(${1:param});${2}\nsnippet ru\n\tunauthorized(${1:param});${2}\nsnippet unless\n\t(unless=${1:param});${2}\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/snippets/edifact",["require","exports","module","ace/snippets/edifact.snippets"], function(require, exports, module){"use strict";
|
||||
exports.snippetText = require("./edifact.snippets");
|
||||
exports.scope = "edifact";
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/snippets/edifact"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/eiffel.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/eiffel.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/eiffel"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/ejs.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/ejs.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/ejs"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/elixir.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/elixir.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/elixir"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/elm.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/elm.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/elm"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
17
src/main/resources/static/assets/js/vendor/template/build/src/snippets/erlang.js
vendored
Normal file
17
src/main/resources/static/assets/js/vendor/template/build/src/snippets/erlang.js
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
define("ace/snippets/erlang.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# module and export all\nsnippet mod\n\t-module(${1:`Filename('', 'my')`}).\n\t\n\t-compile([export_all]).\n\t\n\tstart() ->\n\t ${2}\n\t\n\tstop() ->\n\t ok.\n# define directive\nsnippet def\n\t-define(${1:macro}, ${2:body}).${3}\n# export directive\nsnippet exp\n\t-export([${1:function}/${2:arity}]).\n# include directive\nsnippet inc\n\t-include(\"${1:file}\").${2}\n# behavior directive\nsnippet beh\n\t-behaviour(${1:behaviour}).${2}\n# if expression\nsnippet if\n\tif\n\t ${1:guard} ->\n\t ${2:body}\n\tend\n# case expression\nsnippet case\n\tcase ${1:expression} of\n\t ${2:pattern} ->\n\t ${3:body};\n\tend\n# anonymous function\nsnippet fun\n\tfun (${1:Parameters}) -> ${2:body} end${3}\n# try...catch\nsnippet try\n\ttry\n\t ${1}\n\tcatch\n\t ${2:_:_} -> ${3:got_some_exception}\n\tend\n# record directive\nsnippet rec\n\t-record(${1:record}, {\n\t ${2:field}=${3:value}}).${4}\n# todo comment\nsnippet todo\n\t%% TODO: ${1}\n## Snippets below (starting with '%') are in EDoc format.\n## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\n# doc comment\nsnippet %d\n\t%% @doc ${1}\n# end of doc comment\nsnippet %e\n\t%% @end\n# specification comment\nsnippet %s\n\t%% @spec ${1}\n# private function marker\nsnippet %p\n\t%% @private\n# OTP application\nsnippet application\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(application).\n\n\t-export([start/2, stop/1]).\n\n\tstart(_Type, _StartArgs) ->\n\t case ${2:root_supervisor}:start_link() of\n\t {ok, Pid} ->\n\t {ok, Pid};\n\t Other ->\n\t\t {error, Other}\n\t end.\n\n\tstop(_State) ->\n\t ok.\t\n# OTP supervisor\nsnippet supervisor\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(supervisor).\n\n\t%% API\n\t-export([start_link/0]).\n\n\t%% Supervisor callbacks\n\t-export([init/1]).\n\n\t-define(SERVER, ?MODULE).\n\n\tstart_link() ->\n\t supervisor:start_link({local, ?SERVER}, ?MODULE, []).\n\n\tinit([]) ->\n\t Server = {${2:my_server}, {$2, start_link, []},\n\t permanent, 2000, worker, [$2]},\n\t Children = [Server],\n\t RestartStrategy = {one_for_one, 0, 1},\n\t {ok, {RestartStrategy, Children}}.\n# OTP gen_server\nsnippet gen_server\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(gen_server).\n\n\t%% API\n\t-export([\n\t start_link/0\n\t ]).\n\n\t%% gen_server callbacks\n\t-export([init/1, handle_call/3, handle_cast/2, handle_info/2,\n\t terminate/2, code_change/3]).\n\n\t-define(SERVER, ?MODULE).\n\n\t-record(state, {}).\n\n\t%%%===================================================================\n\t%%% API\n\t%%%===================================================================\n\n\tstart_link() ->\n\t gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\n\n\t%%%===================================================================\n\t%%% gen_server callbacks\n\t%%%===================================================================\n\n\tinit([]) ->\n\t {ok, #state{}}.\n\n\thandle_call(_Request, _From, State) ->\n\t Reply = ok,\n\t {reply, Reply, State}.\n\n\thandle_cast(_Msg, State) ->\n\t {noreply, State}.\n\n\thandle_info(_Info, State) ->\n\t {noreply, State}.\n\n\tterminate(_Reason, _State) ->\n\t ok.\n\n\tcode_change(_OldVsn, State, _Extra) ->\n\t {ok, State}.\n\n\t%%%===================================================================\n\t%%% Internal functions\n\t%%%===================================================================\n\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/snippets/erlang",["require","exports","module","ace/snippets/erlang.snippets"], function(require, exports, module){"use strict";
|
||||
exports.snippetText = require("./erlang.snippets");
|
||||
exports.scope = "erlang";
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/snippets/erlang"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/forth.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/forth.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/forth"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/fortran.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/fortran.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/fortran"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/fsharp.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/fsharp.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/fsharp"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
17
src/main/resources/static/assets/js/vendor/template/build/src/snippets/fsl.js
vendored
Normal file
17
src/main/resources/static/assets/js/vendor/template/build/src/snippets/fsl.js
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
define("ace/snippets/fsl.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet header\n\tmachine_name : \"\";\n\tmachine_author : \"\";\n\tmachine_license : MIT;\n\tmachine_comment : \"\";\n\tmachine_language : en;\n\tmachine_version : 1.0.0;\n\tfsl_version : 1.0.0;\n\tstart_states : [];\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/snippets/fsl",["require","exports","module","ace/snippets/fsl.snippets"], function(require, exports, module){"use strict";
|
||||
exports.snippetText = require("./fsl.snippets");
|
||||
exports.scope = "fsl";
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/snippets/fsl"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/ftl.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/ftl.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/ftl"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/gcode.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/gcode.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/gcode"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/gherkin.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/build/src/snippets/gherkin.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/gherkin"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
331
src/main/resources/static/assets/js/vendor/template/src/ext-beautify.js
vendored
Normal file
331
src/main/resources/static/assets/js/vendor/template/src/ext-beautify.js
vendored
Normal file
@ -0,0 +1,331 @@
|
||||
define("ace/ext/beautify",["require","exports","module","ace/token_iterator"], function(require, exports, module){// [WIP]
|
||||
"use strict";
|
||||
var TokenIterator = require("../token_iterator").TokenIterator;
|
||||
function is(token, type) {
|
||||
return token.type.lastIndexOf(type + ".xml") > -1;
|
||||
}
|
||||
exports.singletonTags = ["area", "base", "br", "col", "command", "embed", "hr", "html", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"];
|
||||
exports.blockTags = ["article", "aside", "blockquote", "body", "div", "dl", "fieldset", "footer", "form", "head", "header", "html", "nav", "ol", "p", "script", "section", "style", "table", "tbody", "tfoot", "thead", "ul"];
|
||||
exports.formatOptions = {
|
||||
lineBreaksAfterCommasInCurlyBlock: true
|
||||
};
|
||||
exports.beautify = function (session) {
|
||||
var iterator = new TokenIterator(session, 0, 0);
|
||||
var token = iterator.getCurrentToken();
|
||||
var tabString = session.getTabString();
|
||||
var singletonTags = exports.singletonTags;
|
||||
var blockTags = exports.blockTags;
|
||||
var formatOptions = exports.formatOptions || {};
|
||||
var nextToken;
|
||||
var breakBefore = false;
|
||||
var spaceBefore = false;
|
||||
var spaceAfter = false;
|
||||
var code = "";
|
||||
var value = "";
|
||||
var tagName = "";
|
||||
var depth = 0;
|
||||
var lastDepth = 0;
|
||||
var lastIndent = 0;
|
||||
var indent = 0;
|
||||
var unindent = 0;
|
||||
var roundDepth = 0;
|
||||
var curlyDepth = 0;
|
||||
var row;
|
||||
var curRow = 0;
|
||||
var rowsToAdd = 0;
|
||||
var rowTokens = [];
|
||||
var abort = false;
|
||||
var i;
|
||||
var indentNextLine = false;
|
||||
var inTag = false;
|
||||
var inCSS = false;
|
||||
var inBlock = false;
|
||||
var levels = { 0: 0 };
|
||||
var parents = [];
|
||||
var caseBody = false;
|
||||
var trimNext = function () {
|
||||
if (nextToken && nextToken.value && nextToken.type !== 'string.regexp')
|
||||
nextToken.value = nextToken.value.replace(/^\s*/, "");
|
||||
};
|
||||
var trimLine = function () {
|
||||
var end = code.length - 1;
|
||||
while (true) {
|
||||
if (end == 0)
|
||||
break;
|
||||
if (code[end] !== " ")
|
||||
break;
|
||||
end = end - 1;
|
||||
}
|
||||
code = code.slice(0, end + 1);
|
||||
};
|
||||
var trimCode = function () {
|
||||
code = code.trimRight();
|
||||
breakBefore = false;
|
||||
};
|
||||
while (token !== null) {
|
||||
curRow = iterator.getCurrentTokenRow();
|
||||
rowTokens = iterator.$rowTokens;
|
||||
nextToken = iterator.stepForward();
|
||||
if (typeof token !== "undefined") {
|
||||
value = token.value;
|
||||
unindent = 0;
|
||||
inCSS = (tagName === "style" || session.$modeId === "ace/mode/css");
|
||||
if (is(token, "tag-open")) {
|
||||
inTag = true;
|
||||
if (nextToken)
|
||||
inBlock = (blockTags.indexOf(nextToken.value) !== -1);
|
||||
if (value === "</") {
|
||||
if (inBlock && !breakBefore && rowsToAdd < 1)
|
||||
rowsToAdd++;
|
||||
if (inCSS)
|
||||
rowsToAdd = 1;
|
||||
unindent = 1;
|
||||
inBlock = false;
|
||||
}
|
||||
}
|
||||
else if (is(token, "tag-close")) {
|
||||
inTag = false;
|
||||
}
|
||||
else if (is(token, "comment.start")) {
|
||||
inBlock = true;
|
||||
}
|
||||
else if (is(token, "comment.end")) {
|
||||
inBlock = false;
|
||||
}
|
||||
if (!inTag && !rowsToAdd && token.type === "paren.rparen" && token.value.substr(0, 1) === "}") {
|
||||
rowsToAdd++;
|
||||
}
|
||||
if (curRow !== row) {
|
||||
rowsToAdd = curRow;
|
||||
if (row)
|
||||
rowsToAdd -= row;
|
||||
}
|
||||
if (rowsToAdd) {
|
||||
trimCode();
|
||||
for (; rowsToAdd > 0; rowsToAdd--)
|
||||
code += "\n";
|
||||
breakBefore = true;
|
||||
if (!is(token, "comment") && !token.type.match(/^(comment|string)$/))
|
||||
value = value.trimLeft();
|
||||
}
|
||||
if (value) {
|
||||
if (token.type === "keyword" && value.match(/^(if|else|elseif|for|foreach|while|switch)$/)) {
|
||||
parents[depth] = value;
|
||||
trimNext();
|
||||
spaceAfter = true;
|
||||
if (value.match(/^(else|elseif)$/)) {
|
||||
if (code.match(/\}[\s]*$/)) {
|
||||
trimCode();
|
||||
spaceBefore = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token.type === "paren.lparen") {
|
||||
trimNext();
|
||||
if (value.substr(-1) === "{") {
|
||||
spaceAfter = true;
|
||||
indentNextLine = false;
|
||||
if (!inTag)
|
||||
rowsToAdd = 1;
|
||||
}
|
||||
if (value.substr(0, 1) === "{") {
|
||||
spaceBefore = true;
|
||||
if (code.substr(-1) !== '[' && code.trimRight().substr(-1) === '[') {
|
||||
trimCode();
|
||||
spaceBefore = false;
|
||||
}
|
||||
else if (code.trimRight().substr(-1) === ')') {
|
||||
trimCode();
|
||||
}
|
||||
else {
|
||||
trimLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token.type === "paren.rparen") {
|
||||
unindent = 1;
|
||||
if (value.substr(0, 1) === "}") {
|
||||
if (parents[depth - 1] === 'case')
|
||||
unindent++;
|
||||
if (code.trimRight().substr(-1) === '{') {
|
||||
trimCode();
|
||||
}
|
||||
else {
|
||||
spaceBefore = true;
|
||||
if (inCSS)
|
||||
rowsToAdd += 2;
|
||||
}
|
||||
}
|
||||
if (value.substr(0, 1) === "]") {
|
||||
if (code.substr(-1) !== '}' && code.trimRight().substr(-1) === '}') {
|
||||
spaceBefore = false;
|
||||
indent++;
|
||||
trimCode();
|
||||
}
|
||||
}
|
||||
if (value.substr(0, 1) === ")") {
|
||||
if (code.substr(-1) !== '(' && code.trimRight().substr(-1) === '(') {
|
||||
spaceBefore = false;
|
||||
indent++;
|
||||
trimCode();
|
||||
}
|
||||
}
|
||||
trimLine();
|
||||
}
|
||||
else if ((token.type === "keyword.operator" || token.type === "keyword") && value.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)) {
|
||||
trimCode();
|
||||
trimNext();
|
||||
spaceBefore = true;
|
||||
spaceAfter = true;
|
||||
}
|
||||
else if (token.type === "punctuation.operator" && value === ';') {
|
||||
trimCode();
|
||||
trimNext();
|
||||
spaceAfter = true;
|
||||
if (inCSS)
|
||||
rowsToAdd++;
|
||||
}
|
||||
else if (token.type === "punctuation.operator" && value.match(/^(:|,)$/)) {
|
||||
trimCode();
|
||||
trimNext();
|
||||
if (value.match(/^(,)$/) && curlyDepth > 0 && roundDepth === 0 && formatOptions.lineBreaksAfterCommasInCurlyBlock) {
|
||||
rowsToAdd++;
|
||||
}
|
||||
else {
|
||||
spaceAfter = true;
|
||||
breakBefore = false;
|
||||
}
|
||||
}
|
||||
else if (token.type === "support.php_tag" && value === "?>" && !breakBefore) {
|
||||
trimCode();
|
||||
spaceBefore = true;
|
||||
}
|
||||
else if (is(token, "attribute-name") && code.substr(-1).match(/^\s$/)) {
|
||||
spaceBefore = true;
|
||||
}
|
||||
else if (is(token, "attribute-equals")) {
|
||||
trimLine();
|
||||
trimNext();
|
||||
}
|
||||
else if (is(token, "tag-close")) {
|
||||
trimLine();
|
||||
if (value === "/>")
|
||||
spaceBefore = true;
|
||||
}
|
||||
else if (token.type === "keyword" && value.match(/^(case|default)$/)) {
|
||||
if (caseBody)
|
||||
unindent = 1;
|
||||
}
|
||||
if (breakBefore && !(token.type.match(/^(comment)$/) && !value.substr(0, 1).match(/^[/#]$/)) && !(token.type.match(/^(string)$/) && !value.substr(0, 1).match(/^['"@]$/))) {
|
||||
indent = lastIndent;
|
||||
if (depth > lastDepth) {
|
||||
indent++;
|
||||
for (i = depth; i > lastDepth; i--)
|
||||
levels[i] = indent;
|
||||
}
|
||||
else if (depth < lastDepth)
|
||||
indent = levels[depth];
|
||||
lastDepth = depth;
|
||||
lastIndent = indent;
|
||||
if (unindent)
|
||||
indent -= unindent;
|
||||
if (indentNextLine && !roundDepth) {
|
||||
indent++;
|
||||
indentNextLine = false;
|
||||
}
|
||||
for (i = 0; i < indent; i++)
|
||||
code += tabString;
|
||||
}
|
||||
if (token.type === "keyword" && value.match(/^(case|default)$/)) {
|
||||
if (caseBody === false) {
|
||||
parents[depth] = value;
|
||||
depth++;
|
||||
caseBody = true;
|
||||
}
|
||||
}
|
||||
else if (token.type === "keyword" && value.match(/^(break)$/)) {
|
||||
if (parents[depth - 1] && parents[depth - 1].match(/^(case|default)$/)) {
|
||||
depth--;
|
||||
caseBody = false;
|
||||
}
|
||||
}
|
||||
if (token.type === "paren.lparen") {
|
||||
roundDepth += (value.match(/\(/g) || []).length;
|
||||
curlyDepth += (value.match(/\{/g) || []).length;
|
||||
depth += value.length;
|
||||
}
|
||||
if (token.type === "keyword" && value.match(/^(if|else|elseif|for|while)$/)) {
|
||||
indentNextLine = true;
|
||||
roundDepth = 0;
|
||||
}
|
||||
else if (!roundDepth && value.trim() && token.type !== "comment")
|
||||
indentNextLine = false;
|
||||
if (token.type === "paren.rparen") {
|
||||
roundDepth -= (value.match(/\)/g) || []).length;
|
||||
curlyDepth -= (value.match(/\}/g) || []).length;
|
||||
for (i = 0; i < value.length; i++) {
|
||||
depth--;
|
||||
if (value.substr(i, 1) === '}' && parents[depth] === 'case') {
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (token.type == "text")
|
||||
value = value.replace(/\s+$/, " ");
|
||||
if (spaceBefore && !breakBefore) {
|
||||
trimLine();
|
||||
if (code.substr(-1) !== "\n")
|
||||
code += " ";
|
||||
}
|
||||
code += value;
|
||||
if (spaceAfter)
|
||||
code += " ";
|
||||
breakBefore = false;
|
||||
spaceBefore = false;
|
||||
spaceAfter = false;
|
||||
if ((is(token, "tag-close") && (inBlock || blockTags.indexOf(tagName) !== -1)) || (is(token, "doctype") && value === ">")) {
|
||||
if (inBlock && nextToken && nextToken.value === "</")
|
||||
rowsToAdd = -1;
|
||||
else
|
||||
rowsToAdd = 1;
|
||||
}
|
||||
if (nextToken && singletonTags.indexOf(nextToken.value) === -1) {
|
||||
if (is(token, "tag-open") && value === "</") {
|
||||
depth--;
|
||||
}
|
||||
else if (is(token, "tag-open") && value === "<") {
|
||||
depth++;
|
||||
}
|
||||
else if (is(token, "tag-close") && value === "/>") {
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
if (is(token, "tag-name")) {
|
||||
tagName = value;
|
||||
}
|
||||
row = curRow;
|
||||
}
|
||||
}
|
||||
token = nextToken;
|
||||
}
|
||||
code = code.trim();
|
||||
session.doc.setValue(code);
|
||||
};
|
||||
exports.commands = [{
|
||||
name: "beautify",
|
||||
description: "Format selection (Beautify)",
|
||||
exec: function (editor) {
|
||||
exports.beautify(editor.session);
|
||||
},
|
||||
bindKey: "Ctrl-Shift-B"
|
||||
}];
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/beautify"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
203
src/main/resources/static/assets/js/vendor/template/src/ext-code_lens.js
vendored
Normal file
203
src/main/resources/static/assets/js/vendor/template/src/ext-code_lens.js
vendored
Normal file
@ -0,0 +1,203 @@
|
||||
define("ace/ext/code_lens",["require","exports","module","ace/line_widgets","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var LineWidgets = require("../line_widgets").LineWidgets;
|
||||
var event = require("../lib/event");
|
||||
var lang = require("../lib/lang");
|
||||
var dom = require("../lib/dom");
|
||||
function clearLensElements(renderer) {
|
||||
var textLayer = renderer.$textLayer;
|
||||
var lensElements = textLayer.$lenses;
|
||||
if (lensElements)
|
||||
lensElements.forEach(function (el) { el.remove(); });
|
||||
textLayer.$lenses = null;
|
||||
}
|
||||
function renderWidgets(changes, renderer) {
|
||||
var changed = changes & renderer.CHANGE_LINES
|
||||
|| changes & renderer.CHANGE_FULL
|
||||
|| changes & renderer.CHANGE_SCROLL
|
||||
|| changes & renderer.CHANGE_TEXT;
|
||||
if (!changed)
|
||||
return;
|
||||
var session = renderer.session;
|
||||
var lineWidgets = renderer.session.lineWidgets;
|
||||
var textLayer = renderer.$textLayer;
|
||||
var lensElements = textLayer.$lenses;
|
||||
if (!lineWidgets) {
|
||||
if (lensElements)
|
||||
clearLensElements(renderer);
|
||||
return;
|
||||
}
|
||||
var textCells = renderer.$textLayer.$lines.cells;
|
||||
var config = renderer.layerConfig;
|
||||
var padding = renderer.$padding;
|
||||
if (!lensElements)
|
||||
lensElements = textLayer.$lenses = [];
|
||||
var index = 0;
|
||||
for (var i = 0; i < textCells.length; i++) {
|
||||
var row = textCells[i].row;
|
||||
var widget = lineWidgets[row];
|
||||
var lenses = widget && widget.lenses;
|
||||
if (!lenses || !lenses.length)
|
||||
continue;
|
||||
var lensContainer = lensElements[index];
|
||||
if (!lensContainer) {
|
||||
lensContainer = lensElements[index]
|
||||
= dom.buildDom(["div", { class: "ace_codeLens" }], renderer.container);
|
||||
}
|
||||
lensContainer.style.height = config.lineHeight + "px";
|
||||
index++;
|
||||
for (var j = 0; j < lenses.length; j++) {
|
||||
var el = lensContainer.childNodes[2 * j];
|
||||
if (!el) {
|
||||
if (j != 0)
|
||||
lensContainer.appendChild(dom.createTextNode("\xa0|\xa0"));
|
||||
el = dom.buildDom(["a"], lensContainer);
|
||||
}
|
||||
el.textContent = lenses[j].title;
|
||||
el.lensCommand = lenses[j];
|
||||
}
|
||||
while (lensContainer.childNodes.length > 2 * j - 1)
|
||||
lensContainer.lastChild.remove();
|
||||
var top = renderer.$cursorLayer.getPixelPosition({
|
||||
row: row,
|
||||
column: 0
|
||||
}, true).top - config.lineHeight * widget.rowsAbove - config.offset;
|
||||
lensContainer.style.top = top + "px";
|
||||
var left = renderer.gutterWidth;
|
||||
var indent = session.getLine(row).search(/\S|$/);
|
||||
if (indent == -1)
|
||||
indent = 0;
|
||||
left += indent * config.characterWidth;
|
||||
lensContainer.style.paddingLeft = padding + left + "px";
|
||||
}
|
||||
while (index < lensElements.length)
|
||||
lensElements.pop().remove();
|
||||
}
|
||||
function clearCodeLensWidgets(session) {
|
||||
if (!session.lineWidgets)
|
||||
return;
|
||||
var widgetManager = session.widgetManager;
|
||||
session.lineWidgets.forEach(function (widget) {
|
||||
if (widget && widget.lenses)
|
||||
widgetManager.removeLineWidget(widget);
|
||||
});
|
||||
}
|
||||
exports.setLenses = function (session, lenses) {
|
||||
var firstRow = Number.MAX_VALUE;
|
||||
clearCodeLensWidgets(session);
|
||||
lenses && lenses.forEach(function (lens) {
|
||||
var row = lens.start.row;
|
||||
var column = lens.start.column;
|
||||
var widget = session.lineWidgets && session.lineWidgets[row];
|
||||
if (!widget || !widget.lenses) {
|
||||
widget = session.widgetManager.$registerLineWidget({
|
||||
rowCount: 1,
|
||||
rowsAbove: 1,
|
||||
row: row,
|
||||
column: column,
|
||||
lenses: []
|
||||
});
|
||||
}
|
||||
widget.lenses.push(lens.command);
|
||||
if (row < firstRow)
|
||||
firstRow = row;
|
||||
});
|
||||
session._emit("changeFold", { data: { start: { row: firstRow } } });
|
||||
return firstRow;
|
||||
};
|
||||
function attachToEditor(editor) {
|
||||
editor.codeLensProviders = [];
|
||||
editor.renderer.on("afterRender", renderWidgets);
|
||||
if (!editor.$codeLensClickHandler) {
|
||||
editor.$codeLensClickHandler = function (e) {
|
||||
var command = e.target.lensCommand;
|
||||
if (!command)
|
||||
return;
|
||||
editor.execCommand(command.id, command.arguments);
|
||||
editor._emit("codeLensClick", e);
|
||||
};
|
||||
event.addListener(editor.container, "click", editor.$codeLensClickHandler, editor);
|
||||
}
|
||||
editor.$updateLenses = function () {
|
||||
var session = editor.session;
|
||||
if (!session)
|
||||
return;
|
||||
if (!session.widgetManager) {
|
||||
session.widgetManager = new LineWidgets(session);
|
||||
session.widgetManager.attach(editor);
|
||||
}
|
||||
var providersToWaitNum = editor.codeLensProviders.length;
|
||||
var lenses = [];
|
||||
editor.codeLensProviders.forEach(function (provider) {
|
||||
provider.provideCodeLenses(session, function (err, payload) {
|
||||
if (err)
|
||||
return;
|
||||
payload.forEach(function (lens) {
|
||||
lenses.push(lens);
|
||||
});
|
||||
providersToWaitNum--;
|
||||
if (providersToWaitNum == 0) {
|
||||
applyLenses();
|
||||
}
|
||||
});
|
||||
});
|
||||
function applyLenses() {
|
||||
var cursor = session.selection.cursor;
|
||||
var oldRow = session.documentToScreenRow(cursor);
|
||||
var scrollTop = session.getScrollTop();
|
||||
var firstRow = exports.setLenses(session, lenses);
|
||||
var lastDelta = session.$undoManager && session.$undoManager.$lastDelta;
|
||||
if (lastDelta && lastDelta.action == "remove" && lastDelta.lines.length > 1)
|
||||
return;
|
||||
var row = session.documentToScreenRow(cursor);
|
||||
var lineHeight = editor.renderer.layerConfig.lineHeight;
|
||||
var top = session.getScrollTop() + (row - oldRow) * lineHeight;
|
||||
if (firstRow == 0 && scrollTop < lineHeight / 4 && scrollTop > -lineHeight / 4) {
|
||||
top = -lineHeight;
|
||||
}
|
||||
session.setScrollTop(top);
|
||||
}
|
||||
};
|
||||
var updateLenses = lang.delayedCall(editor.$updateLenses);
|
||||
editor.$updateLensesOnInput = function () {
|
||||
updateLenses.delay(250);
|
||||
};
|
||||
editor.on("input", editor.$updateLensesOnInput);
|
||||
}
|
||||
function detachFromEditor(editor) {
|
||||
editor.off("input", editor.$updateLensesOnInput);
|
||||
editor.renderer.off("afterRender", renderWidgets);
|
||||
if (editor.$codeLensClickHandler)
|
||||
editor.container.removeEventListener("click", editor.$codeLensClickHandler);
|
||||
}
|
||||
exports.registerCodeLensProvider = function (editor, codeLensProvider) {
|
||||
editor.setOption("enableCodeLens", true);
|
||||
editor.codeLensProviders.push(codeLensProvider);
|
||||
editor.$updateLensesOnInput();
|
||||
};
|
||||
exports.clear = function (session) {
|
||||
exports.setLenses(session, null);
|
||||
};
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
enableCodeLens: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
attachToEditor(this);
|
||||
}
|
||||
else {
|
||||
detachFromEditor(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
dom.importCssString("\n.ace_codeLens {\n position: absolute;\n color: #aaa;\n font-size: 88%;\n background: inherit;\n width: 100%;\n display: flex;\n align-items: flex-end;\n pointer-events: none;\n}\n.ace_codeLens > a {\n cursor: pointer;\n pointer-events: auto;\n}\n.ace_codeLens > a:hover {\n color: #0000ff;\n text-decoration: underline;\n}\n.ace_dark > .ace_codeLens > a:hover {\n color: #4e94ce;\n}\n", "codelense.css", false);
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/code_lens"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
227
src/main/resources/static/assets/js/vendor/template/src/ext-elastic_tabstops_lite.js
vendored
Normal file
227
src/main/resources/static/assets/js/vendor/template/src/ext-elastic_tabstops_lite.js
vendored
Normal file
@ -0,0 +1,227 @@
|
||||
define("ace/ext/elastic_tabstops_lite",["require","exports","module","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var ElasticTabstopsLite = function (editor) {
|
||||
this.$editor = editor;
|
||||
var self = this;
|
||||
var changedRows = [];
|
||||
var recordChanges = false;
|
||||
this.onAfterExec = function () {
|
||||
recordChanges = false;
|
||||
self.processRows(changedRows);
|
||||
changedRows = [];
|
||||
};
|
||||
this.onExec = function () {
|
||||
recordChanges = true;
|
||||
};
|
||||
this.onChange = function (delta) {
|
||||
if (recordChanges) {
|
||||
if (changedRows.indexOf(delta.start.row) == -1)
|
||||
changedRows.push(delta.start.row);
|
||||
if (delta.end.row != delta.start.row)
|
||||
changedRows.push(delta.end.row);
|
||||
}
|
||||
};
|
||||
};
|
||||
(function () {
|
||||
this.processRows = function (rows) {
|
||||
this.$inChange = true;
|
||||
var checkedRows = [];
|
||||
for (var r = 0, rowCount = rows.length; r < rowCount; r++) {
|
||||
var row = rows[r];
|
||||
if (checkedRows.indexOf(row) > -1)
|
||||
continue;
|
||||
var cellWidthObj = this.$findCellWidthsForBlock(row);
|
||||
var cellWidths = this.$setBlockCellWidthsToMax(cellWidthObj.cellWidths);
|
||||
var rowIndex = cellWidthObj.firstRow;
|
||||
for (var w = 0, l = cellWidths.length; w < l; w++) {
|
||||
var widths = cellWidths[w];
|
||||
checkedRows.push(rowIndex);
|
||||
this.$adjustRow(rowIndex, widths);
|
||||
rowIndex++;
|
||||
}
|
||||
}
|
||||
this.$inChange = false;
|
||||
};
|
||||
this.$findCellWidthsForBlock = function (row) {
|
||||
var cellWidths = [], widths;
|
||||
var rowIter = row;
|
||||
while (rowIter >= 0) {
|
||||
widths = this.$cellWidthsForRow(rowIter);
|
||||
if (widths.length == 0)
|
||||
break;
|
||||
cellWidths.unshift(widths);
|
||||
rowIter--;
|
||||
}
|
||||
var firstRow = rowIter + 1;
|
||||
rowIter = row;
|
||||
var numRows = this.$editor.session.getLength();
|
||||
while (rowIter < numRows - 1) {
|
||||
rowIter++;
|
||||
widths = this.$cellWidthsForRow(rowIter);
|
||||
if (widths.length == 0)
|
||||
break;
|
||||
cellWidths.push(widths);
|
||||
}
|
||||
return { cellWidths: cellWidths, firstRow: firstRow };
|
||||
};
|
||||
this.$cellWidthsForRow = function (row) {
|
||||
var selectionColumns = this.$selectionColumnsForRow(row);
|
||||
var tabs = [-1].concat(this.$tabsForRow(row));
|
||||
var widths = tabs.map(function (el) { return 0; }).slice(1);
|
||||
var line = this.$editor.session.getLine(row);
|
||||
for (var i = 0, len = tabs.length - 1; i < len; i++) {
|
||||
var leftEdge = tabs[i] + 1;
|
||||
var rightEdge = tabs[i + 1];
|
||||
var rightmostSelection = this.$rightmostSelectionInCell(selectionColumns, rightEdge);
|
||||
var cell = line.substring(leftEdge, rightEdge);
|
||||
widths[i] = Math.max(cell.replace(/\s+$/g, '').length, rightmostSelection - leftEdge);
|
||||
}
|
||||
return widths;
|
||||
};
|
||||
this.$selectionColumnsForRow = function (row) {
|
||||
var selections = [], cursor = this.$editor.getCursorPosition();
|
||||
if (this.$editor.session.getSelection().isEmpty()) {
|
||||
if (row == cursor.row)
|
||||
selections.push(cursor.column);
|
||||
}
|
||||
return selections;
|
||||
};
|
||||
this.$setBlockCellWidthsToMax = function (cellWidths) {
|
||||
var startingNewBlock = true, blockStartRow, blockEndRow, maxWidth;
|
||||
var columnInfo = this.$izip_longest(cellWidths);
|
||||
for (var c = 0, l = columnInfo.length; c < l; c++) {
|
||||
var column = columnInfo[c];
|
||||
if (!column.push) {
|
||||
console.error(column);
|
||||
continue;
|
||||
}
|
||||
column.push(NaN);
|
||||
for (var r = 0, s = column.length; r < s; r++) {
|
||||
var width = column[r];
|
||||
if (startingNewBlock) {
|
||||
blockStartRow = r;
|
||||
maxWidth = 0;
|
||||
startingNewBlock = false;
|
||||
}
|
||||
if (isNaN(width)) {
|
||||
blockEndRow = r;
|
||||
for (var j = blockStartRow; j < blockEndRow; j++) {
|
||||
cellWidths[j][c] = maxWidth;
|
||||
}
|
||||
startingNewBlock = true;
|
||||
}
|
||||
maxWidth = Math.max(maxWidth, width);
|
||||
}
|
||||
}
|
||||
return cellWidths;
|
||||
};
|
||||
this.$rightmostSelectionInCell = function (selectionColumns, cellRightEdge) {
|
||||
var rightmost = 0;
|
||||
if (selectionColumns.length) {
|
||||
var lengths = [];
|
||||
for (var s = 0, length = selectionColumns.length; s < length; s++) {
|
||||
if (selectionColumns[s] <= cellRightEdge)
|
||||
lengths.push(s);
|
||||
else
|
||||
lengths.push(0);
|
||||
}
|
||||
rightmost = Math.max.apply(Math, lengths);
|
||||
}
|
||||
return rightmost;
|
||||
};
|
||||
this.$tabsForRow = function (row) {
|
||||
var rowTabs = [], line = this.$editor.session.getLine(row), re = /\t/g, match;
|
||||
while ((match = re.exec(line)) != null) {
|
||||
rowTabs.push(match.index);
|
||||
}
|
||||
return rowTabs;
|
||||
};
|
||||
this.$adjustRow = function (row, widths) {
|
||||
var rowTabs = this.$tabsForRow(row);
|
||||
if (rowTabs.length == 0)
|
||||
return;
|
||||
var bias = 0, location = -1;
|
||||
var expandedSet = this.$izip(widths, rowTabs);
|
||||
for (var i = 0, l = expandedSet.length; i < l; i++) {
|
||||
var w = expandedSet[i][0], it = expandedSet[i][1];
|
||||
location += 1 + w;
|
||||
it += bias;
|
||||
var difference = location - it;
|
||||
if (difference == 0)
|
||||
continue;
|
||||
var partialLine = this.$editor.session.getLine(row).substr(0, it);
|
||||
var strippedPartialLine = partialLine.replace(/\s*$/g, "");
|
||||
var ispaces = partialLine.length - strippedPartialLine.length;
|
||||
if (difference > 0) {
|
||||
this.$editor.session.getDocument().insertInLine({ row: row, column: it + 1 }, Array(difference + 1).join(" ") + "\t");
|
||||
this.$editor.session.getDocument().removeInLine(row, it, it + 1);
|
||||
bias += difference;
|
||||
}
|
||||
if (difference < 0 && ispaces >= -difference) {
|
||||
this.$editor.session.getDocument().removeInLine(row, it + difference, it);
|
||||
bias += difference;
|
||||
}
|
||||
}
|
||||
};
|
||||
this.$izip_longest = function (iterables) {
|
||||
if (!iterables[0])
|
||||
return [];
|
||||
var longest = iterables[0].length;
|
||||
var iterablesLength = iterables.length;
|
||||
for (var i = 1; i < iterablesLength; i++) {
|
||||
var iLength = iterables[i].length;
|
||||
if (iLength > longest)
|
||||
longest = iLength;
|
||||
}
|
||||
var expandedSet = [];
|
||||
for (var l = 0; l < longest; l++) {
|
||||
var set = [];
|
||||
for (var i = 0; i < iterablesLength; i++) {
|
||||
if (iterables[i][l] === "")
|
||||
set.push(NaN);
|
||||
else
|
||||
set.push(iterables[i][l]);
|
||||
}
|
||||
expandedSet.push(set);
|
||||
}
|
||||
return expandedSet;
|
||||
};
|
||||
this.$izip = function (widths, tabs) {
|
||||
var size = widths.length >= tabs.length ? tabs.length : widths.length;
|
||||
var expandedSet = [];
|
||||
for (var i = 0; i < size; i++) {
|
||||
var set = [widths[i], tabs[i]];
|
||||
expandedSet.push(set);
|
||||
}
|
||||
return expandedSet;
|
||||
};
|
||||
}).call(ElasticTabstopsLite.prototype);
|
||||
exports.ElasticTabstopsLite = ElasticTabstopsLite;
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
useElasticTabstops: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
if (!this.elasticTabstops)
|
||||
this.elasticTabstops = new ElasticTabstopsLite(this);
|
||||
this.commands.on("afterExec", this.elasticTabstops.onAfterExec);
|
||||
this.commands.on("exec", this.elasticTabstops.onExec);
|
||||
this.on("change", this.elasticTabstops.onChange);
|
||||
}
|
||||
else if (this.elasticTabstops) {
|
||||
this.commands.removeListener("afterExec", this.elasticTabstops.onAfterExec);
|
||||
this.commands.removeListener("exec", this.elasticTabstops.onExec);
|
||||
this.removeListener("change", this.elasticTabstops.onChange);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/elastic_tabstops_lite"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
1257
src/main/resources/static/assets/js/vendor/template/src/ext-emmet.js
vendored
Normal file
1257
src/main/resources/static/assets/js/vendor/template/src/ext-emmet.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
src/main/resources/static/assets/js/vendor/template/src/ext-error_marker.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/ext-error_marker.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/ext/error_marker"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
117
src/main/resources/static/assets/js/vendor/template/src/ext-hardwrap.js
vendored
Normal file
117
src/main/resources/static/assets/js/vendor/template/src/ext-hardwrap.js
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
define("ace/ext/hardwrap",["require","exports","module","ace/range","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var Range = require("../range").Range;
|
||||
function hardWrap(editor, options) {
|
||||
var max = options.column || editor.getOption("printMarginColumn");
|
||||
var allowMerge = options.allowMerge != false;
|
||||
var row = Math.min(options.startRow, options.endRow);
|
||||
var endRow = Math.max(options.startRow, options.endRow);
|
||||
var session = editor.session;
|
||||
while (row <= endRow) {
|
||||
var line = session.getLine(row);
|
||||
if (line.length > max) {
|
||||
var space = findSpace(line, max, 5);
|
||||
if (space) {
|
||||
var indentation = /^\s*/.exec(line)[0];
|
||||
session.replace(new Range(row, space.start, row, space.end), "\n" + indentation);
|
||||
}
|
||||
endRow++;
|
||||
}
|
||||
else if (allowMerge && /\S/.test(line) && row != endRow) {
|
||||
var nextLine = session.getLine(row + 1);
|
||||
if (nextLine && /\S/.test(nextLine)) {
|
||||
var trimmedLine = line.replace(/\s+$/, "");
|
||||
var trimmedNextLine = nextLine.replace(/^\s+/, "");
|
||||
var mergedLine = trimmedLine + " " + trimmedNextLine;
|
||||
var space = findSpace(mergedLine, max, 5);
|
||||
if (space && space.start > trimmedLine.length || mergedLine.length < max) {
|
||||
var replaceRange = new Range(row, trimmedLine.length, row + 1, nextLine.length - trimmedNextLine.length);
|
||||
session.replace(replaceRange, " ");
|
||||
row--;
|
||||
endRow--;
|
||||
}
|
||||
else if (trimmedLine.length < line.length) {
|
||||
session.remove(new Range(row, trimmedLine.length, row, line.length));
|
||||
}
|
||||
}
|
||||
}
|
||||
row++;
|
||||
}
|
||||
function findSpace(line, max, min) {
|
||||
if (line.length < max)
|
||||
return;
|
||||
var before = line.slice(0, max);
|
||||
var after = line.slice(max);
|
||||
var spaceAfter = /^(?:(\s+)|(\S+)(\s+))/.exec(after);
|
||||
var spaceBefore = /(?:(\s+)|(\s+)(\S+))$/.exec(before);
|
||||
var start = 0;
|
||||
var end = 0;
|
||||
if (spaceBefore && !spaceBefore[2]) {
|
||||
start = max - spaceBefore[1].length;
|
||||
end = max;
|
||||
}
|
||||
if (spaceAfter && !spaceAfter[2]) {
|
||||
if (!start)
|
||||
start = max;
|
||||
end = max + spaceAfter[1].length;
|
||||
}
|
||||
if (start) {
|
||||
return {
|
||||
start: start,
|
||||
end: end
|
||||
};
|
||||
}
|
||||
if (spaceBefore && spaceBefore[2] && spaceBefore.index > min) {
|
||||
return {
|
||||
start: spaceBefore.index,
|
||||
end: spaceBefore.index + spaceBefore[2].length
|
||||
};
|
||||
}
|
||||
if (spaceAfter && spaceAfter[2]) {
|
||||
start = max + spaceAfter[2].length;
|
||||
return {
|
||||
start: start,
|
||||
end: start + spaceAfter[3].length
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
function wrapAfterInput(e) {
|
||||
if (e.command.name == "insertstring" && /\S/.test(e.args)) {
|
||||
var editor = e.editor;
|
||||
var cursor = editor.selection.cursor;
|
||||
if (cursor.column <= editor.renderer.$printMarginColumn)
|
||||
return;
|
||||
var lastDelta = editor.session.$undoManager.$lastDelta;
|
||||
hardWrap(editor, {
|
||||
startRow: cursor.row, endRow: cursor.row,
|
||||
allowMerge: false
|
||||
});
|
||||
if (lastDelta != editor.session.$undoManager.$lastDelta)
|
||||
editor.session.markUndoGroup();
|
||||
}
|
||||
}
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
hardWrap: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
this.commands.on("afterExec", wrapAfterInput);
|
||||
}
|
||||
else {
|
||||
this.commands.off("afterExec", wrapAfterInput);
|
||||
}
|
||||
},
|
||||
value: false
|
||||
}
|
||||
});
|
||||
exports.hardWrap = hardWrap;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/hardwrap"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
134
src/main/resources/static/assets/js/vendor/template/src/ext-keybinding_menu.js
vendored
Normal file
134
src/main/resources/static/assets/js/vendor/template/src/ext-keybinding_menu.js
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
define("ace/ext/menu_tools/settings_menu.css",["require","exports","module"], function(require, exports, module){module.exports = "#ace_settingsmenu, #kbshortcutmenu {\n background-color: #F7F7F7;\n color: black;\n box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\n padding: 1em 0.5em 2em 1em;\n overflow: auto;\n position: absolute;\n margin: 0;\n bottom: 0;\n right: 0;\n top: 0;\n z-index: 9991;\n cursor: default;\n}\n\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\n box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\n background-color: rgba(255, 255, 255, 0.6);\n color: black;\n}\n\n.ace_optionsMenuEntry:hover {\n background-color: rgba(100, 100, 100, 0.1);\n transition: all 0.3s\n}\n\n.ace_closeButton {\n background: rgba(245, 146, 146, 0.5);\n border: 1px solid #F48A8A;\n border-radius: 50%;\n padding: 7px;\n position: absolute;\n right: -8px;\n top: -8px;\n z-index: 100000;\n}\n.ace_closeButton{\n background: rgba(245, 146, 146, 0.9);\n}\n.ace_optionsMenuKey {\n color: darkslateblue;\n font-weight: bold;\n}\n.ace_optionsMenuCommand {\n color: darkcyan;\n font-weight: normal;\n}\n.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\n vertical-align: middle;\n}\n\n.ace_optionsMenuEntry button[ace_selected_button=true] {\n background: #e7e7e7;\n box-shadow: 1px 0px 2px 0px #adadad inset;\n border-color: #adadad;\n}\n.ace_optionsMenuEntry button {\n background: white;\n border: 1px solid lightgray;\n margin: 0px;\n}\n.ace_optionsMenuEntry button:hover{\n background: #f0f0f0;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom","ace/ext/menu_tools/settings_menu.css"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
'use strict';
|
||||
var dom = require("../../lib/dom");
|
||||
var cssText = require("./settings_menu.css");
|
||||
dom.importCssString(cssText, "settings_menu.css", false);
|
||||
module.exports.overlayPage = function overlayPage(editor, contentElement, callback) {
|
||||
var closer = document.createElement('div');
|
||||
var ignoreFocusOut = false;
|
||||
function documentEscListener(e) {
|
||||
if (e.keyCode === 27) {
|
||||
close();
|
||||
}
|
||||
}
|
||||
function close() {
|
||||
if (!closer)
|
||||
return;
|
||||
document.removeEventListener('keydown', documentEscListener);
|
||||
closer.parentNode.removeChild(closer);
|
||||
if (editor) {
|
||||
editor.focus();
|
||||
}
|
||||
closer = null;
|
||||
callback && callback();
|
||||
}
|
||||
function setIgnoreFocusOut(ignore) {
|
||||
ignoreFocusOut = ignore;
|
||||
if (ignore) {
|
||||
closer.style.pointerEvents = "none";
|
||||
contentElement.style.pointerEvents = "auto";
|
||||
}
|
||||
}
|
||||
closer.style.cssText = 'margin: 0; padding: 0; ' +
|
||||
'position: fixed; top:0; bottom:0; left:0; right:0;' +
|
||||
'z-index: 9990; ' +
|
||||
(editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');
|
||||
closer.addEventListener('click', function (e) {
|
||||
if (!ignoreFocusOut) {
|
||||
close();
|
||||
}
|
||||
});
|
||||
document.addEventListener('keydown', documentEscListener);
|
||||
contentElement.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
closer.appendChild(contentElement);
|
||||
document.body.appendChild(closer);
|
||||
if (editor) {
|
||||
editor.blur();
|
||||
}
|
||||
return {
|
||||
close: close,
|
||||
setIgnoreFocusOut: setIgnoreFocusOut
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/get_editor_keyboard_shortcuts",["require","exports","module","ace/lib/keys"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
"use strict";
|
||||
var keys = require("../../lib/keys");
|
||||
module.exports.getEditorKeybordShortcuts = function (editor) {
|
||||
var KEY_MODS = keys.KEY_MODS;
|
||||
var keybindings = [];
|
||||
var commandMap = {};
|
||||
editor.keyBinding.$handlers.forEach(function (handler) {
|
||||
var ckb = handler.commandKeyBinding;
|
||||
for (var i in ckb) {
|
||||
var key = i.replace(/(^|-)\w/g, function (x) { return x.toUpperCase(); });
|
||||
var commands = ckb[i];
|
||||
if (!Array.isArray(commands))
|
||||
commands = [commands];
|
||||
commands.forEach(function (command) {
|
||||
if (typeof command != "string")
|
||||
command = command.name;
|
||||
if (commandMap[command]) {
|
||||
commandMap[command].key += "|" + key;
|
||||
}
|
||||
else {
|
||||
commandMap[command] = { key: key, command: command };
|
||||
keybindings.push(commandMap[command]);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return keybindings;
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/keybinding_menu",["require","exports","module","ace/editor","ace/ext/menu_tools/overlay_page","ace/ext/menu_tools/get_editor_keyboard_shortcuts"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
"use strict";
|
||||
var Editor = require("../editor").Editor;
|
||||
function showKeyboardShortcuts(editor) {
|
||||
if (!document.getElementById('kbshortcutmenu')) {
|
||||
var overlayPage = require('./menu_tools/overlay_page').overlayPage;
|
||||
var getEditorKeybordShortcuts = require('./menu_tools/get_editor_keyboard_shortcuts').getEditorKeybordShortcuts;
|
||||
var kb = getEditorKeybordShortcuts(editor);
|
||||
var el = document.createElement('div');
|
||||
var commands = kb.reduce(function (previous, current) {
|
||||
return previous + '<div class="ace_optionsMenuEntry"><span class="ace_optionsMenuCommand">'
|
||||
+ current.command + '</span> : '
|
||||
+ '<span class="ace_optionsMenuKey">' + current.key + '</span></div>';
|
||||
}, '');
|
||||
el.id = 'kbshortcutmenu';
|
||||
el.innerHTML = '<h1>Keyboard Shortcuts</h1>' + commands + '</div>';
|
||||
overlayPage(editor, el);
|
||||
}
|
||||
}
|
||||
module.exports.init = function (editor) {
|
||||
Editor.prototype.showKeyboardShortcuts = function () {
|
||||
showKeyboardShortcuts(this);
|
||||
};
|
||||
editor.commands.addCommands([{
|
||||
name: "showKeyboardShortcuts",
|
||||
bindKey: { win: "Ctrl-Alt-h", mac: "Command-Alt-h" },
|
||||
exec: function (editor, line) {
|
||||
editor.showKeyboardShortcuts();
|
||||
}
|
||||
}]);
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/keybinding_menu"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
1964
src/main/resources/static/assets/js/vendor/template/src/ext-language_tools.js
vendored
Normal file
1964
src/main/resources/static/assets/js/vendor/template/src/ext-language_tools.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
57
src/main/resources/static/assets/js/vendor/template/src/ext-linking.js
vendored
Normal file
57
src/main/resources/static/assets/js/vendor/template/src/ext-linking.js
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
define("ace/ext/linking",["require","exports","module","ace/editor","ace/config"], function(require, exports, module){var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
enableLinking: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
this.on("click", onClick);
|
||||
this.on("mousemove", onMouseMove);
|
||||
}
|
||||
else {
|
||||
this.off("click", onClick);
|
||||
this.off("mousemove", onMouseMove);
|
||||
}
|
||||
},
|
||||
value: false
|
||||
}
|
||||
});
|
||||
exports.previousLinkingHover = false;
|
||||
function onMouseMove(e) {
|
||||
var editor = e.editor;
|
||||
var ctrl = e.getAccelKey();
|
||||
if (ctrl) {
|
||||
var editor = e.editor;
|
||||
var docPos = e.getDocumentPosition();
|
||||
var session = editor.session;
|
||||
var token = session.getTokenAt(docPos.row, docPos.column);
|
||||
if (exports.previousLinkingHover && exports.previousLinkingHover != token) {
|
||||
editor._emit("linkHoverOut");
|
||||
}
|
||||
editor._emit("linkHover", { position: docPos, token: token });
|
||||
exports.previousLinkingHover = token;
|
||||
}
|
||||
else if (exports.previousLinkingHover) {
|
||||
editor._emit("linkHoverOut");
|
||||
exports.previousLinkingHover = false;
|
||||
}
|
||||
}
|
||||
function onClick(e) {
|
||||
var ctrl = e.getAccelKey();
|
||||
var button = e.getButton();
|
||||
if (button == 0 && ctrl) {
|
||||
var editor = e.editor;
|
||||
var docPos = e.getDocumentPosition();
|
||||
var session = editor.session;
|
||||
var token = session.getTokenAt(docPos.row, docPos.column);
|
||||
editor._emit("linkClick", { position: docPos, token: token });
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/linking"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
247
src/main/resources/static/assets/js/vendor/template/src/ext-modelist.js
vendored
Normal file
247
src/main/resources/static/assets/js/vendor/template/src/ext-modelist.js
vendored
Normal file
@ -0,0 +1,247 @@
|
||||
define("ace/ext/modelist",["require","exports","module"], function(require, exports, module){"use strict";
|
||||
var modes = [];
|
||||
function getModeForPath(path) {
|
||||
var mode = modesByName.text;
|
||||
var fileName = path.split(/[\/\\]/).pop();
|
||||
for (var i = 0; i < modes.length; i++) {
|
||||
if (modes[i].supportsFile(fileName)) {
|
||||
mode = modes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
var Mode = function (name, caption, extensions) {
|
||||
this.name = name;
|
||||
this.caption = caption;
|
||||
this.mode = "ace/mode/" + name;
|
||||
this.extensions = extensions;
|
||||
var re;
|
||||
if (/\^/.test(extensions)) {
|
||||
re = extensions.replace(/\|(\^)?/g, function (a, b) {
|
||||
return "$|" + (b ? "^" : "^.*\\.");
|
||||
}) + "$";
|
||||
}
|
||||
else {
|
||||
re = "^.*\\.(" + extensions + ")$";
|
||||
}
|
||||
this.extRe = new RegExp(re, "gi");
|
||||
};
|
||||
Mode.prototype.supportsFile = function (filename) {
|
||||
return filename.match(this.extRe);
|
||||
};
|
||||
var supportedModes = {
|
||||
ABAP: ["abap"],
|
||||
ABC: ["abc"],
|
||||
ActionScript: ["as"],
|
||||
ADA: ["ada|adb"],
|
||||
Alda: ["alda"],
|
||||
Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
|
||||
Apex: ["apex|cls|trigger|tgr"],
|
||||
AQL: ["aql"],
|
||||
AsciiDoc: ["asciidoc|adoc"],
|
||||
ASL: ["dsl|asl|asl.json"],
|
||||
Assembly_x86: ["asm|a"],
|
||||
AutoHotKey: ["ahk"],
|
||||
BatchFile: ["bat|cmd"],
|
||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
|
||||
C9Search: ["c9search_results"],
|
||||
Cirru: ["cirru|cr"],
|
||||
Clojure: ["clj|cljs"],
|
||||
Cobol: ["CBL|COB"],
|
||||
coffee: ["coffee|cf|cson|^Cakefile"],
|
||||
ColdFusion: ["cfm"],
|
||||
Crystal: ["cr"],
|
||||
CSharp: ["cs"],
|
||||
Csound_Document: ["csd"],
|
||||
Csound_Orchestra: ["orc"],
|
||||
Csound_Score: ["sco"],
|
||||
CSS: ["css"],
|
||||
Curly: ["curly"],
|
||||
D: ["d|di"],
|
||||
Dart: ["dart"],
|
||||
Diff: ["diff|patch"],
|
||||
Dockerfile: ["^Dockerfile"],
|
||||
Dot: ["dot"],
|
||||
Drools: ["drl"],
|
||||
Edifact: ["edi"],
|
||||
Eiffel: ["e|ge"],
|
||||
EJS: ["ejs"],
|
||||
Elixir: ["ex|exs"],
|
||||
Elm: ["elm"],
|
||||
Erlang: ["erl|hrl"],
|
||||
Forth: ["frt|fs|ldr|fth|4th"],
|
||||
Fortran: ["f|f90"],
|
||||
FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
|
||||
FSL: ["fsl"],
|
||||
FTL: ["ftl"],
|
||||
Gcode: ["gcode"],
|
||||
Gherkin: ["feature"],
|
||||
Gitignore: ["^.gitignore"],
|
||||
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|vue|we|wpy"],
|
||||
HTML_Elixir: ["eex|html.eex"],
|
||||
HTML_Ruby: ["erb|rhtml|html.erb"],
|
||||
INI: ["ini|conf|cfg|prefs"],
|
||||
Io: ["io"],
|
||||
Ion: ["ion"],
|
||||
Jack: ["jack"],
|
||||
Jade: ["jade|pug"],
|
||||
Java: ["java"],
|
||||
JavaScript: ["js|jsm|jsx|cjs|mjs"],
|
||||
JSON: ["json"],
|
||||
JSON5: ["json5"],
|
||||
JSONiq: ["jq"],
|
||||
JSP: ["jsp"],
|
||||
JSSM: ["jssm|jssm_state"],
|
||||
JSX: ["jsx"],
|
||||
Julia: ["jl"],
|
||||
Kotlin: ["kt|kts"],
|
||||
LaTeX: ["tex|latex|ltx|bib"],
|
||||
Latte: ["latte"],
|
||||
LESS: ["less"],
|
||||
Liquid: ["liquid"],
|
||||
Lisp: ["lisp"],
|
||||
LiveScript: ["ls"],
|
||||
Log: ["log"],
|
||||
LogiQL: ["logic|lql"],
|
||||
LSL: ["lsl"],
|
||||
Lua: ["lua"],
|
||||
LuaPage: ["lp"],
|
||||
Lucene: ["lucene"],
|
||||
Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
|
||||
Markdown: ["md|markdown"],
|
||||
Mask: ["mask"],
|
||||
MATLAB: ["matlab"],
|
||||
Maze: ["mz"],
|
||||
MediaWiki: ["wiki|mediawiki"],
|
||||
MEL: ["mel"],
|
||||
MIPS: ["s|asm"],
|
||||
MIXAL: ["mixal"],
|
||||
MUSHCode: ["mc|mush"],
|
||||
MySQL: ["mysql"],
|
||||
Nginx: ["nginx|conf"],
|
||||
Nim: ["nim"],
|
||||
Nix: ["nix"],
|
||||
NSIS: ["nsi|nsh"],
|
||||
Nunjucks: ["nunjucks|nunjs|nj|njk"],
|
||||
ObjectiveC: ["m|mm"],
|
||||
OCaml: ["ml|mli"],
|
||||
PartiQL: ["partiql|pql"],
|
||||
Pascal: ["pas|p"],
|
||||
Perl: ["pl|pm"],
|
||||
pgSQL: ["pgsql"],
|
||||
PHP_Laravel_blade: ["blade.php"],
|
||||
PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
|
||||
Pig: ["pig"],
|
||||
Powershell: ["ps1"],
|
||||
Praat: ["praat|praatscript|psc|proc"],
|
||||
Prisma: ["prisma"],
|
||||
Prolog: ["plg|prolog"],
|
||||
Properties: ["properties"],
|
||||
Protobuf: ["proto"],
|
||||
Puppet: ["epp|pp"],
|
||||
Python: ["py"],
|
||||
QML: ["qml"],
|
||||
R: ["r"],
|
||||
Raku: ["raku|rakumod|rakutest|p6|pl6|pm6"],
|
||||
Razor: ["cshtml|asp"],
|
||||
RDoc: ["Rd"],
|
||||
Red: ["red|reds"],
|
||||
RHTML: ["Rhtml"],
|
||||
Robot: ["robot|resource"],
|
||||
RST: ["rst"],
|
||||
Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
|
||||
Rust: ["rs"],
|
||||
SaC: ["sac"],
|
||||
SASS: ["sass"],
|
||||
SCAD: ["scad"],
|
||||
Scala: ["scala|sbt"],
|
||||
Scheme: ["scm|sm|rkt|oak|scheme"],
|
||||
Scrypt: ["scrypt"],
|
||||
SCSS: ["scss"],
|
||||
SH: ["sh|bash|^.bashrc"],
|
||||
SJS: ["sjs"],
|
||||
Slim: ["slim|skim"],
|
||||
Smarty: ["smarty|tpl"],
|
||||
Smithy: ["smithy"],
|
||||
snippets: ["snippets"],
|
||||
Soy_Template: ["soy"],
|
||||
Space: ["space"],
|
||||
SQL: ["sql"],
|
||||
SQLServer: ["sqlserver"],
|
||||
Stylus: ["styl|stylus"],
|
||||
SVG: ["svg"],
|
||||
Swift: ["swift"],
|
||||
Tcl: ["tcl"],
|
||||
Terraform: ["tf", "tfvars", "terragrunt"],
|
||||
Tex: ["tex"],
|
||||
Text: ["txt"],
|
||||
Textile: ["textile"],
|
||||
Toml: ["toml"],
|
||||
TSX: ["tsx"],
|
||||
Twig: ["twig|swig"],
|
||||
Typescript: ["ts|typescript|str"],
|
||||
Vala: ["vala"],
|
||||
VBScript: ["vbs|vb"],
|
||||
Velocity: ["vm"],
|
||||
Verilog: ["v|vh|sv|svh"],
|
||||
VHDL: ["vhd|vhdl"],
|
||||
Visualforce: ["vfp|component|page"],
|
||||
Wollok: ["wlk|wpgm|wtest"],
|
||||
XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
|
||||
XQuery: ["xq"],
|
||||
YAML: ["yaml|yml"],
|
||||
Zeek: ["zeek|bro"],
|
||||
Django: ["html"]
|
||||
};
|
||||
var nameOverrides = {
|
||||
ObjectiveC: "Objective-C",
|
||||
CSharp: "C#",
|
||||
golang: "Go",
|
||||
C_Cpp: "C and C++",
|
||||
Csound_Document: "Csound Document",
|
||||
Csound_Orchestra: "Csound",
|
||||
Csound_Score: "Csound Score",
|
||||
coffee: "CoffeeScript",
|
||||
HTML_Ruby: "HTML (Ruby)",
|
||||
HTML_Elixir: "HTML (Elixir)",
|
||||
FTL: "FreeMarker",
|
||||
PHP_Laravel_blade: "PHP (Blade Template)",
|
||||
Perl6: "Perl 6",
|
||||
AutoHotKey: "AutoHotkey / AutoIt"
|
||||
};
|
||||
var modesByName = {};
|
||||
for (var name in supportedModes) {
|
||||
var data = supportedModes[name];
|
||||
var displayName = (nameOverrides[name] || name).replace(/_/g, " ");
|
||||
var filename = name.toLowerCase();
|
||||
var mode = new Mode(filename, displayName, data[0]);
|
||||
modesByName[filename] = mode;
|
||||
modes.push(mode);
|
||||
}
|
||||
module.exports = {
|
||||
getModeForPath: getModeForPath,
|
||||
modes: modes,
|
||||
modesByName: modesByName
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/modelist"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
732
src/main/resources/static/assets/js/vendor/template/src/ext-options.js
vendored
Normal file
732
src/main/resources/static/assets/js/vendor/template/src/ext-options.js
vendored
Normal file
@ -0,0 +1,732 @@
|
||||
define("ace/ext/menu_tools/settings_menu.css",["require","exports","module"], function(require, exports, module){module.exports = "#ace_settingsmenu, #kbshortcutmenu {\n background-color: #F7F7F7;\n color: black;\n box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\n padding: 1em 0.5em 2em 1em;\n overflow: auto;\n position: absolute;\n margin: 0;\n bottom: 0;\n right: 0;\n top: 0;\n z-index: 9991;\n cursor: default;\n}\n\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\n box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\n background-color: rgba(255, 255, 255, 0.6);\n color: black;\n}\n\n.ace_optionsMenuEntry:hover {\n background-color: rgba(100, 100, 100, 0.1);\n transition: all 0.3s\n}\n\n.ace_closeButton {\n background: rgba(245, 146, 146, 0.5);\n border: 1px solid #F48A8A;\n border-radius: 50%;\n padding: 7px;\n position: absolute;\n right: -8px;\n top: -8px;\n z-index: 100000;\n}\n.ace_closeButton{\n background: rgba(245, 146, 146, 0.9);\n}\n.ace_optionsMenuKey {\n color: darkslateblue;\n font-weight: bold;\n}\n.ace_optionsMenuCommand {\n color: darkcyan;\n font-weight: normal;\n}\n.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\n vertical-align: middle;\n}\n\n.ace_optionsMenuEntry button[ace_selected_button=true] {\n background: #e7e7e7;\n box-shadow: 1px 0px 2px 0px #adadad inset;\n border-color: #adadad;\n}\n.ace_optionsMenuEntry button {\n background: white;\n border: 1px solid lightgray;\n margin: 0px;\n}\n.ace_optionsMenuEntry button:hover{\n background: #f0f0f0;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom","ace/ext/menu_tools/settings_menu.css"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
'use strict';
|
||||
var dom = require("../../lib/dom");
|
||||
var cssText = require("./settings_menu.css");
|
||||
dom.importCssString(cssText, "settings_menu.css", false);
|
||||
module.exports.overlayPage = function overlayPage(editor, contentElement, callback) {
|
||||
var closer = document.createElement('div');
|
||||
var ignoreFocusOut = false;
|
||||
function documentEscListener(e) {
|
||||
if (e.keyCode === 27) {
|
||||
close();
|
||||
}
|
||||
}
|
||||
function close() {
|
||||
if (!closer)
|
||||
return;
|
||||
document.removeEventListener('keydown', documentEscListener);
|
||||
closer.parentNode.removeChild(closer);
|
||||
if (editor) {
|
||||
editor.focus();
|
||||
}
|
||||
closer = null;
|
||||
callback && callback();
|
||||
}
|
||||
function setIgnoreFocusOut(ignore) {
|
||||
ignoreFocusOut = ignore;
|
||||
if (ignore) {
|
||||
closer.style.pointerEvents = "none";
|
||||
contentElement.style.pointerEvents = "auto";
|
||||
}
|
||||
}
|
||||
closer.style.cssText = 'margin: 0; padding: 0; ' +
|
||||
'position: fixed; top:0; bottom:0; left:0; right:0;' +
|
||||
'z-index: 9990; ' +
|
||||
(editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');
|
||||
closer.addEventListener('click', function (e) {
|
||||
if (!ignoreFocusOut) {
|
||||
close();
|
||||
}
|
||||
});
|
||||
document.addEventListener('keydown', documentEscListener);
|
||||
contentElement.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
closer.appendChild(contentElement);
|
||||
document.body.appendChild(closer);
|
||||
if (editor) {
|
||||
editor.blur();
|
||||
}
|
||||
return {
|
||||
close: close,
|
||||
setIgnoreFocusOut: setIgnoreFocusOut
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/modelist",["require","exports","module"], function(require, exports, module){"use strict";
|
||||
var modes = [];
|
||||
function getModeForPath(path) {
|
||||
var mode = modesByName.text;
|
||||
var fileName = path.split(/[\/\\]/).pop();
|
||||
for (var i = 0; i < modes.length; i++) {
|
||||
if (modes[i].supportsFile(fileName)) {
|
||||
mode = modes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
var Mode = function (name, caption, extensions) {
|
||||
this.name = name;
|
||||
this.caption = caption;
|
||||
this.mode = "ace/mode/" + name;
|
||||
this.extensions = extensions;
|
||||
var re;
|
||||
if (/\^/.test(extensions)) {
|
||||
re = extensions.replace(/\|(\^)?/g, function (a, b) {
|
||||
return "$|" + (b ? "^" : "^.*\\.");
|
||||
}) + "$";
|
||||
}
|
||||
else {
|
||||
re = "^.*\\.(" + extensions + ")$";
|
||||
}
|
||||
this.extRe = new RegExp(re, "gi");
|
||||
};
|
||||
Mode.prototype.supportsFile = function (filename) {
|
||||
return filename.match(this.extRe);
|
||||
};
|
||||
var supportedModes = {
|
||||
ABAP: ["abap"],
|
||||
ABC: ["abc"],
|
||||
ActionScript: ["as"],
|
||||
ADA: ["ada|adb"],
|
||||
Alda: ["alda"],
|
||||
Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
|
||||
Apex: ["apex|cls|trigger|tgr"],
|
||||
AQL: ["aql"],
|
||||
AsciiDoc: ["asciidoc|adoc"],
|
||||
ASL: ["dsl|asl|asl.json"],
|
||||
Assembly_x86: ["asm|a"],
|
||||
AutoHotKey: ["ahk"],
|
||||
BatchFile: ["bat|cmd"],
|
||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
|
||||
C9Search: ["c9search_results"],
|
||||
Cirru: ["cirru|cr"],
|
||||
Clojure: ["clj|cljs"],
|
||||
Cobol: ["CBL|COB"],
|
||||
coffee: ["coffee|cf|cson|^Cakefile"],
|
||||
ColdFusion: ["cfm"],
|
||||
Crystal: ["cr"],
|
||||
CSharp: ["cs"],
|
||||
Csound_Document: ["csd"],
|
||||
Csound_Orchestra: ["orc"],
|
||||
Csound_Score: ["sco"],
|
||||
CSS: ["css"],
|
||||
Curly: ["curly"],
|
||||
D: ["d|di"],
|
||||
Dart: ["dart"],
|
||||
Diff: ["diff|patch"],
|
||||
Dockerfile: ["^Dockerfile"],
|
||||
Dot: ["dot"],
|
||||
Drools: ["drl"],
|
||||
Edifact: ["edi"],
|
||||
Eiffel: ["e|ge"],
|
||||
EJS: ["ejs"],
|
||||
Elixir: ["ex|exs"],
|
||||
Elm: ["elm"],
|
||||
Erlang: ["erl|hrl"],
|
||||
Forth: ["frt|fs|ldr|fth|4th"],
|
||||
Fortran: ["f|f90"],
|
||||
FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
|
||||
FSL: ["fsl"],
|
||||
FTL: ["ftl"],
|
||||
Gcode: ["gcode"],
|
||||
Gherkin: ["feature"],
|
||||
Gitignore: ["^.gitignore"],
|
||||
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|vue|we|wpy"],
|
||||
HTML_Elixir: ["eex|html.eex"],
|
||||
HTML_Ruby: ["erb|rhtml|html.erb"],
|
||||
INI: ["ini|conf|cfg|prefs"],
|
||||
Io: ["io"],
|
||||
Ion: ["ion"],
|
||||
Jack: ["jack"],
|
||||
Jade: ["jade|pug"],
|
||||
Java: ["java"],
|
||||
JavaScript: ["js|jsm|jsx|cjs|mjs"],
|
||||
JSON: ["json"],
|
||||
JSON5: ["json5"],
|
||||
JSONiq: ["jq"],
|
||||
JSP: ["jsp"],
|
||||
JSSM: ["jssm|jssm_state"],
|
||||
JSX: ["jsx"],
|
||||
Julia: ["jl"],
|
||||
Kotlin: ["kt|kts"],
|
||||
LaTeX: ["tex|latex|ltx|bib"],
|
||||
Latte: ["latte"],
|
||||
LESS: ["less"],
|
||||
Liquid: ["liquid"],
|
||||
Lisp: ["lisp"],
|
||||
LiveScript: ["ls"],
|
||||
Log: ["log"],
|
||||
LogiQL: ["logic|lql"],
|
||||
LSL: ["lsl"],
|
||||
Lua: ["lua"],
|
||||
LuaPage: ["lp"],
|
||||
Lucene: ["lucene"],
|
||||
Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
|
||||
Markdown: ["md|markdown"],
|
||||
Mask: ["mask"],
|
||||
MATLAB: ["matlab"],
|
||||
Maze: ["mz"],
|
||||
MediaWiki: ["wiki|mediawiki"],
|
||||
MEL: ["mel"],
|
||||
MIPS: ["s|asm"],
|
||||
MIXAL: ["mixal"],
|
||||
MUSHCode: ["mc|mush"],
|
||||
MySQL: ["mysql"],
|
||||
Nginx: ["nginx|conf"],
|
||||
Nim: ["nim"],
|
||||
Nix: ["nix"],
|
||||
NSIS: ["nsi|nsh"],
|
||||
Nunjucks: ["nunjucks|nunjs|nj|njk"],
|
||||
ObjectiveC: ["m|mm"],
|
||||
OCaml: ["ml|mli"],
|
||||
PartiQL: ["partiql|pql"],
|
||||
Pascal: ["pas|p"],
|
||||
Perl: ["pl|pm"],
|
||||
pgSQL: ["pgsql"],
|
||||
PHP_Laravel_blade: ["blade.php"],
|
||||
PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
|
||||
Pig: ["pig"],
|
||||
Powershell: ["ps1"],
|
||||
Praat: ["praat|praatscript|psc|proc"],
|
||||
Prisma: ["prisma"],
|
||||
Prolog: ["plg|prolog"],
|
||||
Properties: ["properties"],
|
||||
Protobuf: ["proto"],
|
||||
Puppet: ["epp|pp"],
|
||||
Python: ["py"],
|
||||
QML: ["qml"],
|
||||
R: ["r"],
|
||||
Raku: ["raku|rakumod|rakutest|p6|pl6|pm6"],
|
||||
Razor: ["cshtml|asp"],
|
||||
RDoc: ["Rd"],
|
||||
Red: ["red|reds"],
|
||||
RHTML: ["Rhtml"],
|
||||
Robot: ["robot|resource"],
|
||||
RST: ["rst"],
|
||||
Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
|
||||
Rust: ["rs"],
|
||||
SaC: ["sac"],
|
||||
SASS: ["sass"],
|
||||
SCAD: ["scad"],
|
||||
Scala: ["scala|sbt"],
|
||||
Scheme: ["scm|sm|rkt|oak|scheme"],
|
||||
Scrypt: ["scrypt"],
|
||||
SCSS: ["scss"],
|
||||
SH: ["sh|bash|^.bashrc"],
|
||||
SJS: ["sjs"],
|
||||
Slim: ["slim|skim"],
|
||||
Smarty: ["smarty|tpl"],
|
||||
Smithy: ["smithy"],
|
||||
snippets: ["snippets"],
|
||||
Soy_Template: ["soy"],
|
||||
Space: ["space"],
|
||||
SQL: ["sql"],
|
||||
SQLServer: ["sqlserver"],
|
||||
Stylus: ["styl|stylus"],
|
||||
SVG: ["svg"],
|
||||
Swift: ["swift"],
|
||||
Tcl: ["tcl"],
|
||||
Terraform: ["tf", "tfvars", "terragrunt"],
|
||||
Tex: ["tex"],
|
||||
Text: ["txt"],
|
||||
Textile: ["textile"],
|
||||
Toml: ["toml"],
|
||||
TSX: ["tsx"],
|
||||
Twig: ["twig|swig"],
|
||||
Typescript: ["ts|typescript|str"],
|
||||
Vala: ["vala"],
|
||||
VBScript: ["vbs|vb"],
|
||||
Velocity: ["vm"],
|
||||
Verilog: ["v|vh|sv|svh"],
|
||||
VHDL: ["vhd|vhdl"],
|
||||
Visualforce: ["vfp|component|page"],
|
||||
Wollok: ["wlk|wpgm|wtest"],
|
||||
XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
|
||||
XQuery: ["xq"],
|
||||
YAML: ["yaml|yml"],
|
||||
Zeek: ["zeek|bro"],
|
||||
Django: ["html"]
|
||||
};
|
||||
var nameOverrides = {
|
||||
ObjectiveC: "Objective-C",
|
||||
CSharp: "C#",
|
||||
golang: "Go",
|
||||
C_Cpp: "C and C++",
|
||||
Csound_Document: "Csound Document",
|
||||
Csound_Orchestra: "Csound",
|
||||
Csound_Score: "Csound Score",
|
||||
coffee: "CoffeeScript",
|
||||
HTML_Ruby: "HTML (Ruby)",
|
||||
HTML_Elixir: "HTML (Elixir)",
|
||||
FTL: "FreeMarker",
|
||||
PHP_Laravel_blade: "PHP (Blade Template)",
|
||||
Perl6: "Perl 6",
|
||||
AutoHotKey: "AutoHotkey / AutoIt"
|
||||
};
|
||||
var modesByName = {};
|
||||
for (var name in supportedModes) {
|
||||
var data = supportedModes[name];
|
||||
var displayName = (nameOverrides[name] || name).replace(/_/g, " ");
|
||||
var filename = name.toLowerCase();
|
||||
var mode = new Mode(filename, displayName, data[0]);
|
||||
modesByName[filename] = mode;
|
||||
modes.push(mode);
|
||||
}
|
||||
module.exports = {
|
||||
getModeForPath: getModeForPath,
|
||||
modes: modes,
|
||||
modesByName: modesByName
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/themelist",["require","exports","module"], function(require, exports, module){/**
|
||||
* Generates a list of themes available when ace was built.
|
||||
* @fileOverview Generates a list of themes available when ace was built.
|
||||
* @author <a href="mailto:matthewkastor@gmail.com">
|
||||
* Matthew Christopher Kastor-Inare III </a><br />
|
||||
* ☭ Hial Atropa!! ☭
|
||||
*/
|
||||
"use strict";
|
||||
var themeData = [
|
||||
["Chrome"],
|
||||
["Clouds"],
|
||||
["Crimson Editor"],
|
||||
["Dawn"],
|
||||
["Dreamweaver"],
|
||||
["Eclipse"],
|
||||
["GitHub"],
|
||||
["IPlastic"],
|
||||
["Solarized Light"],
|
||||
["TextMate"],
|
||||
["Tomorrow"],
|
||||
["XCode"],
|
||||
["Kuroir"],
|
||||
["KatzenMilch"],
|
||||
["SQL Server", "sqlserver", "light"],
|
||||
["Ambiance", "ambiance", "dark"],
|
||||
["Chaos", "chaos", "dark"],
|
||||
["Clouds Midnight", "clouds_midnight", "dark"],
|
||||
["Dracula", "", "dark"],
|
||||
["Cobalt", "cobalt", "dark"],
|
||||
["Gruvbox", "gruvbox", "dark"],
|
||||
["Green on Black", "gob", "dark"],
|
||||
["idle Fingers", "idle_fingers", "dark"],
|
||||
["krTheme", "kr_theme", "dark"],
|
||||
["Merbivore", "merbivore", "dark"],
|
||||
["Merbivore Soft", "merbivore_soft", "dark"],
|
||||
["Mono Industrial", "mono_industrial", "dark"],
|
||||
["Monokai", "monokai", "dark"],
|
||||
["Nord Dark", "nord_dark", "dark"],
|
||||
["One Dark", "one_dark", "dark"],
|
||||
["Pastel on dark", "pastel_on_dark", "dark"],
|
||||
["Solarized Dark", "solarized_dark", "dark"],
|
||||
["Terminal", "terminal", "dark"],
|
||||
["Tomorrow Night", "tomorrow_night", "dark"],
|
||||
["Tomorrow Night Blue", "tomorrow_night_blue", "dark"],
|
||||
["Tomorrow Night Bright", "tomorrow_night_bright", "dark"],
|
||||
["Tomorrow Night 80s", "tomorrow_night_eighties", "dark"],
|
||||
["Twilight", "twilight", "dark"],
|
||||
["Vibrant Ink", "vibrant_ink", "dark"]
|
||||
];
|
||||
exports.themesByName = {};
|
||||
exports.themes = themeData.map(function (data) {
|
||||
var name = data[1] || data[0].replace(/ /g, "_").toLowerCase();
|
||||
var theme = {
|
||||
caption: data[0],
|
||||
theme: "ace/theme/" + name,
|
||||
isDark: data[2] == "dark",
|
||||
name: name
|
||||
};
|
||||
exports.themesByName[name] = theme;
|
||||
return theme;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/options",["require","exports","module","ace/ext/menu_tools/overlay_page","ace/lib/dom","ace/lib/oop","ace/config","ace/lib/event_emitter","ace/ext/modelist","ace/ext/themelist"], function(require, exports, module){"use strict";
|
||||
require("./menu_tools/overlay_page");
|
||||
var dom = require("../lib/dom");
|
||||
var oop = require("../lib/oop");
|
||||
var config = require("../config");
|
||||
var EventEmitter = require("../lib/event_emitter").EventEmitter;
|
||||
var buildDom = dom.buildDom;
|
||||
var modelist = require("./modelist");
|
||||
var themelist = require("./themelist");
|
||||
var themes = { Bright: [], Dark: [] };
|
||||
themelist.themes.forEach(function (x) {
|
||||
themes[x.isDark ? "Dark" : "Bright"].push({ caption: x.caption, value: x.theme });
|
||||
});
|
||||
var modes = modelist.modes.map(function (x) {
|
||||
return { caption: x.caption, value: x.mode };
|
||||
});
|
||||
var optionGroups = {
|
||||
Main: {
|
||||
Mode: {
|
||||
path: "mode",
|
||||
type: "select",
|
||||
items: modes
|
||||
},
|
||||
Theme: {
|
||||
path: "theme",
|
||||
type: "select",
|
||||
items: themes
|
||||
},
|
||||
"Keybinding": {
|
||||
type: "buttonBar",
|
||||
path: "keyboardHandler",
|
||||
items: [
|
||||
{ caption: "Ace", value: null },
|
||||
{ caption: "Vim", value: "ace/keyboard/vim" },
|
||||
{ caption: "Emacs", value: "ace/keyboard/emacs" },
|
||||
{ caption: "Sublime", value: "ace/keyboard/sublime" },
|
||||
{ caption: "VSCode", value: "ace/keyboard/vscode" }
|
||||
]
|
||||
},
|
||||
"Font Size": {
|
||||
path: "fontSize",
|
||||
type: "number",
|
||||
defaultValue: 12,
|
||||
defaults: [
|
||||
{ caption: "12px", value: 12 },
|
||||
{ caption: "24px", value: 24 }
|
||||
]
|
||||
},
|
||||
"Soft Wrap": {
|
||||
type: "buttonBar",
|
||||
path: "wrap",
|
||||
items: [
|
||||
{ caption: "Off", value: "off" },
|
||||
{ caption: "View", value: "free" },
|
||||
{ caption: "margin", value: "printMargin" },
|
||||
{ caption: "40", value: "40" }
|
||||
]
|
||||
},
|
||||
"Cursor Style": {
|
||||
path: "cursorStyle",
|
||||
items: [
|
||||
{ caption: "Ace", value: "ace" },
|
||||
{ caption: "Slim", value: "slim" },
|
||||
{ caption: "Smooth", value: "smooth" },
|
||||
{ caption: "Smooth And Slim", value: "smooth slim" },
|
||||
{ caption: "Wide", value: "wide" }
|
||||
]
|
||||
},
|
||||
"Folding": {
|
||||
path: "foldStyle",
|
||||
items: [
|
||||
{ caption: "Manual", value: "manual" },
|
||||
{ caption: "Mark begin", value: "markbegin" },
|
||||
{ caption: "Mark begin and end", value: "markbeginend" }
|
||||
]
|
||||
},
|
||||
"Soft Tabs": [{
|
||||
path: "useSoftTabs"
|
||||
}, {
|
||||
ariaLabel: "Tab Size",
|
||||
path: "tabSize",
|
||||
type: "number",
|
||||
values: [2, 3, 4, 8, 16]
|
||||
}],
|
||||
"Overscroll": {
|
||||
type: "buttonBar",
|
||||
path: "scrollPastEnd",
|
||||
items: [
|
||||
{ caption: "None", value: 0 },
|
||||
{ caption: "Half", value: 0.5 },
|
||||
{ caption: "Full", value: 1 }
|
||||
]
|
||||
}
|
||||
},
|
||||
More: {
|
||||
"Atomic soft tabs": {
|
||||
path: "navigateWithinSoftTabs"
|
||||
},
|
||||
"Enable Behaviours": {
|
||||
path: "behavioursEnabled"
|
||||
},
|
||||
"Wrap with quotes": {
|
||||
path: "wrapBehavioursEnabled"
|
||||
},
|
||||
"Enable Auto Indent": {
|
||||
path: "enableAutoIndent"
|
||||
},
|
||||
"Full Line Selection": {
|
||||
type: "checkbox",
|
||||
values: "text|line",
|
||||
path: "selectionStyle"
|
||||
},
|
||||
"Highlight Active Line": {
|
||||
path: "highlightActiveLine"
|
||||
},
|
||||
"Show Invisibles": {
|
||||
path: "showInvisibles"
|
||||
},
|
||||
"Show Indent Guides": {
|
||||
path: "displayIndentGuides"
|
||||
},
|
||||
"Highlight Indent Guides": {
|
||||
path: "highlightIndentGuides"
|
||||
},
|
||||
"Persistent HScrollbar": {
|
||||
path: "hScrollBarAlwaysVisible"
|
||||
},
|
||||
"Persistent VScrollbar": {
|
||||
path: "vScrollBarAlwaysVisible"
|
||||
},
|
||||
"Animate scrolling": {
|
||||
path: "animatedScroll"
|
||||
},
|
||||
"Show Gutter": {
|
||||
path: "showGutter"
|
||||
},
|
||||
"Show Line Numbers": {
|
||||
path: "showLineNumbers"
|
||||
},
|
||||
"Relative Line Numbers": {
|
||||
path: "relativeLineNumbers"
|
||||
},
|
||||
"Fixed Gutter Width": {
|
||||
path: "fixedWidthGutter"
|
||||
},
|
||||
"Show Print Margin": [{
|
||||
path: "showPrintMargin"
|
||||
}, {
|
||||
ariaLabel: "Print Margin",
|
||||
type: "number",
|
||||
path: "printMarginColumn"
|
||||
}],
|
||||
"Indented Soft Wrap": {
|
||||
path: "indentedSoftWrap"
|
||||
},
|
||||
"Highlight selected word": {
|
||||
path: "highlightSelectedWord"
|
||||
},
|
||||
"Fade Fold Widgets": {
|
||||
path: "fadeFoldWidgets"
|
||||
},
|
||||
"Use textarea for IME": {
|
||||
path: "useTextareaForIME"
|
||||
},
|
||||
"Merge Undo Deltas": {
|
||||
path: "mergeUndoDeltas",
|
||||
items: [
|
||||
{ caption: "Always", value: "always" },
|
||||
{ caption: "Never", value: "false" },
|
||||
{ caption: "Timed", value: "true" }
|
||||
]
|
||||
},
|
||||
"Elastic Tabstops": {
|
||||
path: "useElasticTabstops"
|
||||
},
|
||||
"Incremental Search": {
|
||||
path: "useIncrementalSearch"
|
||||
},
|
||||
"Read-only": {
|
||||
path: "readOnly"
|
||||
},
|
||||
"Copy without selection": {
|
||||
path: "copyWithEmptySelection"
|
||||
},
|
||||
"Live Autocompletion": {
|
||||
path: "enableLiveAutocompletion"
|
||||
},
|
||||
"Custom scrollbar": {
|
||||
path: "customScrollbar"
|
||||
}
|
||||
}
|
||||
};
|
||||
var OptionPanel = function (editor, element) {
|
||||
this.editor = editor;
|
||||
this.container = element || document.createElement("div");
|
||||
this.groups = [];
|
||||
this.options = {};
|
||||
};
|
||||
(function () {
|
||||
oop.implement(this, EventEmitter);
|
||||
this.add = function (config) {
|
||||
if (config.Main)
|
||||
oop.mixin(optionGroups.Main, config.Main);
|
||||
if (config.More)
|
||||
oop.mixin(optionGroups.More, config.More);
|
||||
};
|
||||
this.render = function () {
|
||||
this.container.innerHTML = "";
|
||||
buildDom(["table", { role: "presentation", id: "controls" },
|
||||
this.renderOptionGroup(optionGroups.Main),
|
||||
["tr", null, ["td", { colspan: 2 },
|
||||
["table", { role: "presentation", id: "more-controls" },
|
||||
this.renderOptionGroup(optionGroups.More)
|
||||
]
|
||||
]],
|
||||
["tr", null, ["td", { colspan: 2 }, "version " + config.version]]
|
||||
], this.container);
|
||||
};
|
||||
this.renderOptionGroup = function (group) {
|
||||
return Object.keys(group).map(function (key, i) {
|
||||
var item = group[key];
|
||||
if (!item.position)
|
||||
item.position = i / 10000;
|
||||
if (!item.label)
|
||||
item.label = key;
|
||||
return item;
|
||||
}).sort(function (a, b) {
|
||||
return a.position - b.position;
|
||||
}).map(function (item) {
|
||||
return this.renderOption(item.label, item);
|
||||
}, this);
|
||||
};
|
||||
this.renderOptionControl = function (key, option) {
|
||||
var self = this;
|
||||
if (Array.isArray(option)) {
|
||||
return option.map(function (x) {
|
||||
return self.renderOptionControl(key, x);
|
||||
});
|
||||
}
|
||||
var control;
|
||||
var value = self.getOption(option);
|
||||
if (option.values && option.type != "checkbox") {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
option.items = option.values.map(function (v) {
|
||||
return { value: v, name: v };
|
||||
});
|
||||
}
|
||||
if (option.type == "buttonBar") {
|
||||
control = ["div", { role: "group", "aria-labelledby": option.path + "-label" }, option.items.map(function (item) {
|
||||
return ["button", {
|
||||
value: item.value,
|
||||
ace_selected_button: value == item.value,
|
||||
'aria-pressed': value == item.value,
|
||||
onclick: function () {
|
||||
self.setOption(option, item.value);
|
||||
var nodes = this.parentNode.querySelectorAll("[ace_selected_button]");
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].removeAttribute("ace_selected_button");
|
||||
nodes[i].setAttribute("aria-pressed", false);
|
||||
}
|
||||
this.setAttribute("ace_selected_button", true);
|
||||
this.setAttribute("aria-pressed", true);
|
||||
}
|
||||
}, item.desc || item.caption || item.name];
|
||||
})];
|
||||
}
|
||||
else if (option.type == "number") {
|
||||
control = ["input", { type: "number", value: value || option.defaultValue, style: "width:3em", oninput: function () {
|
||||
self.setOption(option, parseInt(this.value));
|
||||
} }];
|
||||
if (option.ariaLabel) {
|
||||
control[1]["aria-label"] = option.ariaLabel;
|
||||
}
|
||||
else {
|
||||
control[1].id = key;
|
||||
}
|
||||
if (option.defaults) {
|
||||
control = [control, option.defaults.map(function (item) {
|
||||
return ["button", { onclick: function () {
|
||||
var input = this.parentNode.firstChild;
|
||||
input.value = item.value;
|
||||
input.oninput();
|
||||
} }, item.caption];
|
||||
})];
|
||||
}
|
||||
}
|
||||
else if (option.items) {
|
||||
var buildItems = function (items) {
|
||||
return items.map(function (item) {
|
||||
return ["option", { value: item.value || item.name }, item.desc || item.caption || item.name];
|
||||
});
|
||||
};
|
||||
var items = Array.isArray(option.items)
|
||||
? buildItems(option.items)
|
||||
: Object.keys(option.items).map(function (key) {
|
||||
return ["optgroup", { "label": key }, buildItems(option.items[key])];
|
||||
});
|
||||
control = ["select", { id: key, value: value, onchange: function () {
|
||||
self.setOption(option, this.value);
|
||||
} }, items];
|
||||
}
|
||||
else {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
if (option.values)
|
||||
value = value == option.values[1];
|
||||
control = ["input", { type: "checkbox", id: key, checked: value || null, onchange: function () {
|
||||
var value = this.checked;
|
||||
if (option.values)
|
||||
value = option.values[value ? 1 : 0];
|
||||
self.setOption(option, value);
|
||||
} }];
|
||||
if (option.type == "checkedNumber") {
|
||||
control = [control, []];
|
||||
}
|
||||
}
|
||||
return control;
|
||||
};
|
||||
this.renderOption = function (key, option) {
|
||||
if (option.path && !option.onchange && !this.editor.$options[option.path])
|
||||
return;
|
||||
var path = Array.isArray(option) ? option[0].path : option.path;
|
||||
this.options[path] = option;
|
||||
var safeKey = "-" + path;
|
||||
var safeId = path + "-label";
|
||||
var control = this.renderOptionControl(safeKey, option);
|
||||
return ["tr", { class: "ace_optionsMenuEntry" }, ["td",
|
||||
["label", { for: safeKey, id: safeId }, key]
|
||||
], ["td", control]];
|
||||
};
|
||||
this.setOption = function (option, value) {
|
||||
if (typeof option == "string")
|
||||
option = this.options[option];
|
||||
if (value == "false")
|
||||
value = false;
|
||||
if (value == "true")
|
||||
value = true;
|
||||
if (value == "null")
|
||||
value = null;
|
||||
if (value == "undefined")
|
||||
value = undefined;
|
||||
if (typeof value == "string" && parseFloat(value).toString() == value)
|
||||
value = parseFloat(value);
|
||||
if (option.onchange)
|
||||
option.onchange(value);
|
||||
else if (option.path)
|
||||
this.editor.setOption(option.path, value);
|
||||
this._signal("setOption", { name: option.path, value: value });
|
||||
};
|
||||
this.getOption = function (option) {
|
||||
if (option.getValue)
|
||||
return option.getValue();
|
||||
return this.editor.getOption(option.path);
|
||||
};
|
||||
}).call(OptionPanel.prototype);
|
||||
exports.OptionPanel = OptionPanel;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/options"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
2517
src/main/resources/static/assets/js/vendor/template/src/ext-prompt.js
vendored
Normal file
2517
src/main/resources/static/assets/js/vendor/template/src/ext-prompt.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
121
src/main/resources/static/assets/js/vendor/template/src/ext-rtl.js
vendored
Normal file
121
src/main/resources/static/assets/js/vendor/template/src/ext-rtl.js
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
define("ace/ext/rtl",["require","exports","module","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var commands = [{
|
||||
name: "leftToRight",
|
||||
bindKey: { win: "Ctrl-Alt-Shift-L", mac: "Command-Alt-Shift-L" },
|
||||
exec: function (editor) {
|
||||
editor.session.$bidiHandler.setRtlDirection(editor, false);
|
||||
},
|
||||
readOnly: true
|
||||
}, {
|
||||
name: "rightToLeft",
|
||||
bindKey: { win: "Ctrl-Alt-Shift-R", mac: "Command-Alt-Shift-R" },
|
||||
exec: function (editor) {
|
||||
editor.session.$bidiHandler.setRtlDirection(editor, true);
|
||||
},
|
||||
readOnly: true
|
||||
}];
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
rtlText: {
|
||||
set: function (val) {
|
||||
if (val) {
|
||||
this.on("change", onChange);
|
||||
this.on("changeSelection", onChangeSelection);
|
||||
this.renderer.on("afterRender", updateLineDirection);
|
||||
this.commands.on("exec", onCommandEmitted);
|
||||
this.commands.addCommands(commands);
|
||||
}
|
||||
else {
|
||||
this.off("change", onChange);
|
||||
this.off("changeSelection", onChangeSelection);
|
||||
this.renderer.off("afterRender", updateLineDirection);
|
||||
this.commands.off("exec", onCommandEmitted);
|
||||
this.commands.removeCommands(commands);
|
||||
clearTextLayer(this.renderer);
|
||||
}
|
||||
this.renderer.updateFull();
|
||||
}
|
||||
},
|
||||
rtl: {
|
||||
set: function (val) {
|
||||
this.session.$bidiHandler.$isRtl = val;
|
||||
if (val) {
|
||||
this.setOption("rtlText", false);
|
||||
this.renderer.on("afterRender", updateLineDirection);
|
||||
this.session.$bidiHandler.seenBidi = true;
|
||||
}
|
||||
else {
|
||||
this.renderer.off("afterRender", updateLineDirection);
|
||||
clearTextLayer(this.renderer);
|
||||
}
|
||||
this.renderer.updateFull();
|
||||
}
|
||||
}
|
||||
});
|
||||
function onChangeSelection(e, editor) {
|
||||
var lead = editor.getSelection().lead;
|
||||
if (editor.session.$bidiHandler.isRtlLine(lead.row)) {
|
||||
if (lead.column === 0) {
|
||||
if (editor.session.$bidiHandler.isMoveLeftOperation && lead.row > 0) {
|
||||
editor.getSelection().moveCursorTo(lead.row - 1, editor.session.getLine(lead.row - 1).length);
|
||||
}
|
||||
else {
|
||||
if (editor.getSelection().isEmpty())
|
||||
lead.column += 1;
|
||||
else
|
||||
lead.setPosition(lead.row, lead.column + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function onCommandEmitted(commadEvent) {
|
||||
commadEvent.editor.session.$bidiHandler.isMoveLeftOperation = /gotoleft|selectleft|backspace|removewordleft/.test(commadEvent.command.name);
|
||||
}
|
||||
function onChange(delta, editor) {
|
||||
var session = editor.session;
|
||||
session.$bidiHandler.currentRow = null;
|
||||
if (session.$bidiHandler.isRtlLine(delta.start.row) && delta.action === 'insert' && delta.lines.length > 1) {
|
||||
for (var row = delta.start.row; row < delta.end.row; row++) {
|
||||
if (session.getLine(row + 1).charAt(0) !== session.$bidiHandler.RLE)
|
||||
session.doc.$lines[row + 1] = session.$bidiHandler.RLE + session.getLine(row + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
function updateLineDirection(e, renderer) {
|
||||
var session = renderer.session;
|
||||
var $bidiHandler = session.$bidiHandler;
|
||||
var cells = renderer.$textLayer.$lines.cells;
|
||||
var width = renderer.layerConfig.width - renderer.layerConfig.padding + "px";
|
||||
cells.forEach(function (cell) {
|
||||
var style = cell.element.style;
|
||||
if ($bidiHandler && $bidiHandler.isRtlLine(cell.row)) {
|
||||
style.direction = "rtl";
|
||||
style.textAlign = "right";
|
||||
style.width = width;
|
||||
}
|
||||
else {
|
||||
style.direction = "";
|
||||
style.textAlign = "";
|
||||
style.width = "";
|
||||
}
|
||||
});
|
||||
}
|
||||
function clearTextLayer(renderer) {
|
||||
var lines = renderer.$textLayer.$lines;
|
||||
lines.cells.forEach(clear);
|
||||
lines.cellCache.forEach(clear);
|
||||
function clear(cell) {
|
||||
var style = cell.element.style;
|
||||
style.direction = style.textAlign = style.width = "";
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/rtl"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
339
src/main/resources/static/assets/js/vendor/template/src/ext-searchbox.js
vendored
Normal file
339
src/main/resources/static/assets/js/vendor/template/src/ext-searchbox.js
vendored
Normal file
@ -0,0 +1,339 @@
|
||||
define("ace/ext/searchbox.css",["require","exports","module"], function(require, exports, module){module.exports = "\n\n/* ------------------------------------------------------------------------------------------\n * Editor Search Form\n * --------------------------------------------------------------------------------------- */\n.ace_search {\n background-color: #ddd;\n color: #666;\n border: 1px solid #cbcbcb;\n border-top: 0 none;\n overflow: hidden;\n margin: 0;\n padding: 4px 6px 0 4px;\n position: absolute;\n top: 0;\n z-index: 99;\n white-space: normal;\n}\n.ace_search.left {\n border-left: 0 none;\n border-radius: 0px 0px 5px 0px;\n left: 0;\n}\n.ace_search.right {\n border-radius: 0px 0px 0px 5px;\n border-right: 0 none;\n right: 0;\n}\n\n.ace_search_form, .ace_replace_form {\n margin: 0 20px 4px 0;\n overflow: hidden;\n line-height: 1.9;\n}\n.ace_replace_form {\n margin-right: 0;\n}\n.ace_search_form.ace_nomatch {\n outline: 1px solid red;\n}\n\n.ace_search_field {\n border-radius: 3px 0 0 3px;\n background-color: white;\n color: black;\n border: 1px solid #cbcbcb;\n border-right: 0 none;\n outline: 0;\n padding: 0;\n font-size: inherit;\n margin: 0;\n line-height: inherit;\n padding: 0 6px;\n min-width: 17em;\n vertical-align: top;\n min-height: 1.8em;\n box-sizing: content-box;\n}\n.ace_searchbtn {\n border: 1px solid #cbcbcb;\n line-height: inherit;\n display: inline-block;\n padding: 0 6px;\n background: #fff;\n border-right: 0 none;\n border-left: 1px solid #dcdcdc;\n cursor: pointer;\n margin: 0;\n position: relative;\n color: #666;\n}\n.ace_searchbtn:last-child {\n border-radius: 0 3px 3px 0;\n border-right: 1px solid #cbcbcb;\n}\n.ace_searchbtn:disabled {\n background: none;\n cursor: default;\n}\n.ace_searchbtn:hover {\n background-color: #eef1f6;\n}\n.ace_searchbtn.prev, .ace_searchbtn.next {\n padding: 0px 0.7em\n}\n.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\n content: \"\";\n border: solid 2px #888;\n width: 0.5em;\n height: 0.5em;\n border-width: 2px 0 0 2px;\n display:inline-block;\n transform: rotate(-45deg);\n}\n.ace_searchbtn.next:after {\n border-width: 0 2px 2px 0 ;\n}\n.ace_searchbtn_close {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\n border-radius: 50%;\n border: 0 none;\n color: #656565;\n cursor: pointer;\n font: 16px/16px Arial;\n padding: 0;\n height: 14px;\n width: 14px;\n top: 9px;\n right: 7px;\n position: absolute;\n}\n.ace_searchbtn_close:hover {\n background-color: #656565;\n background-position: 50% 100%;\n color: white;\n}\n\n.ace_button {\n margin-left: 2px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n overflow: hidden;\n opacity: 0.7;\n border: 1px solid rgba(100,100,100,0.23);\n padding: 1px;\n box-sizing: border-box!important;\n color: black;\n}\n\n.ace_button:hover {\n background-color: #eee;\n opacity:1;\n}\n.ace_button:active {\n background-color: #ddd;\n}\n\n.ace_button.checked {\n border-color: #3399ff;\n opacity:1;\n}\n\n.ace_search_options{\n margin-bottom: 3px;\n text-align: right;\n -webkit-user-select: none;\n -moz-user-select: none;\n -o-user-select: none;\n -ms-user-select: none;\n user-select: none;\n clear: both;\n}\n\n.ace_search_counter {\n float: left;\n font-family: arial;\n padding: 0 8px;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/ext/searchbox.css","ace/keyboard/hash_handler","ace/lib/keys"], function(require, exports, module){"use strict";
|
||||
var dom = require("../lib/dom");
|
||||
var lang = require("../lib/lang");
|
||||
var event = require("../lib/event");
|
||||
var searchboxCss = require("./searchbox.css");
|
||||
var HashHandler = require("../keyboard/hash_handler").HashHandler;
|
||||
var keyUtil = require("../lib/keys");
|
||||
var MAX_COUNT = 999;
|
||||
dom.importCssString(searchboxCss, "ace_searchbox", false);
|
||||
var SearchBox = function (editor, range, showReplaceForm) {
|
||||
var div = dom.createElement("div");
|
||||
dom.buildDom(["div", { class: "ace_search right" },
|
||||
["span", { action: "hide", class: "ace_searchbtn_close" }],
|
||||
["div", { class: "ace_search_form" },
|
||||
["input", { class: "ace_search_field", placeholder: "Search for", spellcheck: "false" }],
|
||||
["span", { action: "findPrev", class: "ace_searchbtn prev" }, "\u200b"],
|
||||
["span", { action: "findNext", class: "ace_searchbtn next" }, "\u200b"],
|
||||
["span", { action: "findAll", class: "ace_searchbtn", title: "Alt-Enter" }, "All"]
|
||||
],
|
||||
["div", { class: "ace_replace_form" },
|
||||
["input", { class: "ace_search_field", placeholder: "Replace with", spellcheck: "false" }],
|
||||
["span", { action: "replaceAndFindNext", class: "ace_searchbtn" }, "Replace"],
|
||||
["span", { action: "replaceAll", class: "ace_searchbtn" }, "All"]
|
||||
],
|
||||
["div", { class: "ace_search_options" },
|
||||
["span", { action: "toggleReplace", class: "ace_button", title: "Toggle Replace mode",
|
||||
style: "float:left;margin-top:-2px;padding:0 5px;" }, "+"],
|
||||
["span", { class: "ace_search_counter" }],
|
||||
["span", { action: "toggleRegexpMode", class: "ace_button", title: "RegExp Search" }, ".*"],
|
||||
["span", { action: "toggleCaseSensitive", class: "ace_button", title: "CaseSensitive Search" }, "Aa"],
|
||||
["span", { action: "toggleWholeWords", class: "ace_button", title: "Whole Word Search" }, "\\b"],
|
||||
["span", { action: "searchInSelection", class: "ace_button", title: "Search In Selection" }, "S"]
|
||||
]
|
||||
], div);
|
||||
this.element = div.firstChild;
|
||||
this.setSession = this.setSession.bind(this);
|
||||
this.$init();
|
||||
this.setEditor(editor);
|
||||
dom.importCssString(searchboxCss, "ace_searchbox", editor.container);
|
||||
};
|
||||
(function () {
|
||||
this.setEditor = function (editor) {
|
||||
editor.searchBox = this;
|
||||
editor.renderer.scroller.appendChild(this.element);
|
||||
this.editor = editor;
|
||||
};
|
||||
this.setSession = function (e) {
|
||||
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.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 () {
|
||||
var sb = this.element;
|
||||
this.$initElements(sb);
|
||||
var _this = this;
|
||||
event.addListener(sb, "mousedown", function (e) {
|
||||
setTimeout(function () {
|
||||
_this.activeInput.focus();
|
||||
}, 0);
|
||||
event.stopPropagation(e);
|
||||
});
|
||||
event.addListener(sb, "click", function (e) {
|
||||
var t = e.target || e.srcElement;
|
||||
var action = t.getAttribute("action");
|
||||
if (action && _this[action])
|
||||
_this[action]();
|
||||
else if (_this.$searchBarKb.commands[action])
|
||||
_this.$searchBarKb.commands[action].exec(_this);
|
||||
event.stopPropagation(e);
|
||||
});
|
||||
event.addCommandKeyListener(sb, function (e, hashId, keyCode) {
|
||||
var keyString = keyUtil.keyCodeToString(keyCode);
|
||||
var command = _this.$searchBarKb.findKeyCommand(hashId, keyString);
|
||||
if (command && command.exec) {
|
||||
command.exec(_this);
|
||||
event.stopEvent(e);
|
||||
}
|
||||
});
|
||||
this.$onChange = lang.delayedCall(function () {
|
||||
_this.find(false, false);
|
||||
});
|
||||
event.addListener(this.searchInput, "input", function () {
|
||||
_this.$onChange.schedule(20);
|
||||
});
|
||||
event.addListener(this.searchInput, "focus", function () {
|
||||
_this.activeInput = _this.searchInput;
|
||||
_this.searchInput.value && _this.highlight();
|
||||
});
|
||||
event.addListener(this.replaceInput, "focus", function () {
|
||||
_this.activeInput = _this.replaceInput;
|
||||
_this.searchInput.value && _this.highlight();
|
||||
});
|
||||
};
|
||||
this.$closeSearchBarKb = new HashHandler([{
|
||||
bindKey: "Esc",
|
||||
name: "closeSearchBar",
|
||||
exec: function (editor) {
|
||||
editor.searchBox.hide();
|
||||
}
|
||||
}]);
|
||||
this.$searchBarKb = new HashHandler();
|
||||
this.$searchBarKb.bindKeys({
|
||||
"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) {
|
||||
if (sb.editor.getReadOnly())
|
||||
return;
|
||||
sb.replaceOption.checked = true;
|
||||
sb.$syncOptions();
|
||||
sb.replaceInput.focus();
|
||||
},
|
||||
"Ctrl-G|Command-G": function (sb) {
|
||||
sb.findNext();
|
||||
},
|
||||
"Ctrl-Shift-G|Command-Shift-G": function (sb) {
|
||||
sb.findPrev();
|
||||
},
|
||||
"esc": function (sb) {
|
||||
setTimeout(function () { sb.hide(); });
|
||||
},
|
||||
"Return": function (sb) {
|
||||
if (sb.activeInput == sb.replaceInput)
|
||||
sb.replace();
|
||||
sb.findNext();
|
||||
},
|
||||
"Shift-Return": function (sb) {
|
||||
if (sb.activeInput == sb.replaceInput)
|
||||
sb.replace();
|
||||
sb.findPrev();
|
||||
},
|
||||
"Alt-Return": function (sb) {
|
||||
if (sb.activeInput == sb.replaceInput)
|
||||
sb.replaceAll();
|
||||
sb.findAll();
|
||||
},
|
||||
"Tab": function (sb) {
|
||||
(sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus();
|
||||
}
|
||||
});
|
||||
this.$searchBarKb.addCommands([{
|
||||
name: "toggleRegexpMode",
|
||||
bindKey: { win: "Alt-R|Alt-/", mac: "Ctrl-Alt-R|Ctrl-Alt-/" },
|
||||
exec: function (sb) {
|
||||
sb.regExpOption.checked = !sb.regExpOption.checked;
|
||||
sb.$syncOptions();
|
||||
}
|
||||
}, {
|
||||
name: "toggleCaseSensitive",
|
||||
bindKey: { win: "Alt-C|Alt-I", mac: "Ctrl-Alt-R|Ctrl-Alt-I" },
|
||||
exec: function (sb) {
|
||||
sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked;
|
||||
sb.$syncOptions();
|
||||
}
|
||||
}, {
|
||||
name: "toggleWholeWords",
|
||||
bindKey: { win: "Alt-B|Alt-W", mac: "Ctrl-Alt-B|Ctrl-Alt-W" },
|
||||
exec: function (sb) {
|
||||
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 (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);
|
||||
var readOnly = this.editor.getReadOnly();
|
||||
this.replaceOption.style.display = readOnly ? "none" : "";
|
||||
this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? "" : "none";
|
||||
this.find(false, false, preventScroll);
|
||||
};
|
||||
this.highlight = function (re) {
|
||||
this.editor.session.highlight(re || this.editor.$search.$options.re);
|
||||
this.editor.renderer.updateBackMarkers();
|
||||
};
|
||||
this.find = function (skipCurrent, backwards, preventScroll) {
|
||||
var range = this.editor.find(this.searchInput.value, {
|
||||
skipCurrent: skipCurrent,
|
||||
backwards: backwards,
|
||||
wrap: true,
|
||||
regExp: this.regExpOption.checked,
|
||||
caseSensitive: this.caseSensitiveOption.checked,
|
||||
wholeWord: this.wholeWordOption.checked,
|
||||
preventScroll: preventScroll,
|
||||
range: this.searchRange
|
||||
});
|
||||
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);
|
||||
};
|
||||
this.findPrev = function () {
|
||||
this.find(true, true);
|
||||
};
|
||||
this.findAll = function () {
|
||||
var range = this.editor.findAll(this.searchInput.value, {
|
||||
regExp: this.regExpOption.checked,
|
||||
caseSensitive: this.caseSensitiveOption.checked,
|
||||
wholeWord: this.wholeWordOption.checked
|
||||
});
|
||||
var noMatch = !range && this.searchInput.value;
|
||||
dom.setCssClass(this.searchBox, "ace_nomatch", noMatch);
|
||||
this.editor._emit("findSearchBox", { match: !noMatch });
|
||||
this.highlight();
|
||||
this.hide();
|
||||
};
|
||||
this.replace = function () {
|
||||
if (!this.editor.getReadOnly())
|
||||
this.editor.replace(this.replaceInput.value);
|
||||
};
|
||||
this.replaceAndFindNext = function () {
|
||||
if (!this.editor.getReadOnly()) {
|
||||
this.editor.replace(this.replaceInput.value);
|
||||
this.findNext();
|
||||
}
|
||||
};
|
||||
this.replaceAll = function () {
|
||||
if (!this.editor.getReadOnly())
|
||||
this.editor.replaceAll(this.replaceInput.value);
|
||||
};
|
||||
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.replaceOption.checked = isReplace;
|
||||
if (value)
|
||||
this.searchInput.value = value;
|
||||
this.searchInput.focus();
|
||||
this.searchInput.select();
|
||||
this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb);
|
||||
this.$syncOptions(true);
|
||||
};
|
||||
this.isFocused = function () {
|
||||
var el = document.activeElement;
|
||||
return el == this.searchInput || el == this.replaceInput;
|
||||
};
|
||||
}).call(SearchBox.prototype);
|
||||
exports.SearchBox = SearchBox;
|
||||
exports.Search = function (editor, isReplace) {
|
||||
var sb = editor.searchBox || new SearchBox(editor);
|
||||
sb.show(editor.session.getTextRange(), isReplace);
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/searchbox"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
754
src/main/resources/static/assets/js/vendor/template/src/ext-settings_menu.js
vendored
Normal file
754
src/main/resources/static/assets/js/vendor/template/src/ext-settings_menu.js
vendored
Normal file
@ -0,0 +1,754 @@
|
||||
define("ace/ext/menu_tools/settings_menu.css",["require","exports","module"], function(require, exports, module){module.exports = "#ace_settingsmenu, #kbshortcutmenu {\n background-color: #F7F7F7;\n color: black;\n box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\n padding: 1em 0.5em 2em 1em;\n overflow: auto;\n position: absolute;\n margin: 0;\n bottom: 0;\n right: 0;\n top: 0;\n z-index: 9991;\n cursor: default;\n}\n\n.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\n box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\n background-color: rgba(255, 255, 255, 0.6);\n color: black;\n}\n\n.ace_optionsMenuEntry:hover {\n background-color: rgba(100, 100, 100, 0.1);\n transition: all 0.3s\n}\n\n.ace_closeButton {\n background: rgba(245, 146, 146, 0.5);\n border: 1px solid #F48A8A;\n border-radius: 50%;\n padding: 7px;\n position: absolute;\n right: -8px;\n top: -8px;\n z-index: 100000;\n}\n.ace_closeButton{\n background: rgba(245, 146, 146, 0.9);\n}\n.ace_optionsMenuKey {\n color: darkslateblue;\n font-weight: bold;\n}\n.ace_optionsMenuCommand {\n color: darkcyan;\n font-weight: normal;\n}\n.ace_optionsMenuEntry input, .ace_optionsMenuEntry button {\n vertical-align: middle;\n}\n\n.ace_optionsMenuEntry button[ace_selected_button=true] {\n background: #e7e7e7;\n box-shadow: 1px 0px 2px 0px #adadad inset;\n border-color: #adadad;\n}\n.ace_optionsMenuEntry button {\n background: white;\n border: 1px solid lightgray;\n margin: 0px;\n}\n.ace_optionsMenuEntry button:hover{\n background: #f0f0f0;\n}";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom","ace/ext/menu_tools/settings_menu.css"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
'use strict';
|
||||
var dom = require("../../lib/dom");
|
||||
var cssText = require("./settings_menu.css");
|
||||
dom.importCssString(cssText, "settings_menu.css", false);
|
||||
module.exports.overlayPage = function overlayPage(editor, contentElement, callback) {
|
||||
var closer = document.createElement('div');
|
||||
var ignoreFocusOut = false;
|
||||
function documentEscListener(e) {
|
||||
if (e.keyCode === 27) {
|
||||
close();
|
||||
}
|
||||
}
|
||||
function close() {
|
||||
if (!closer)
|
||||
return;
|
||||
document.removeEventListener('keydown', documentEscListener);
|
||||
closer.parentNode.removeChild(closer);
|
||||
if (editor) {
|
||||
editor.focus();
|
||||
}
|
||||
closer = null;
|
||||
callback && callback();
|
||||
}
|
||||
function setIgnoreFocusOut(ignore) {
|
||||
ignoreFocusOut = ignore;
|
||||
if (ignore) {
|
||||
closer.style.pointerEvents = "none";
|
||||
contentElement.style.pointerEvents = "auto";
|
||||
}
|
||||
}
|
||||
closer.style.cssText = 'margin: 0; padding: 0; ' +
|
||||
'position: fixed; top:0; bottom:0; left:0; right:0;' +
|
||||
'z-index: 9990; ' +
|
||||
(editor ? 'background-color: rgba(0, 0, 0, 0.3);' : '');
|
||||
closer.addEventListener('click', function (e) {
|
||||
if (!ignoreFocusOut) {
|
||||
close();
|
||||
}
|
||||
});
|
||||
document.addEventListener('keydown', documentEscListener);
|
||||
contentElement.addEventListener('click', function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
closer.appendChild(contentElement);
|
||||
document.body.appendChild(closer);
|
||||
if (editor) {
|
||||
editor.blur();
|
||||
}
|
||||
return {
|
||||
close: close,
|
||||
setIgnoreFocusOut: setIgnoreFocusOut
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/modelist",["require","exports","module"], function(require, exports, module){"use strict";
|
||||
var modes = [];
|
||||
function getModeForPath(path) {
|
||||
var mode = modesByName.text;
|
||||
var fileName = path.split(/[\/\\]/).pop();
|
||||
for (var i = 0; i < modes.length; i++) {
|
||||
if (modes[i].supportsFile(fileName)) {
|
||||
mode = modes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
var Mode = function (name, caption, extensions) {
|
||||
this.name = name;
|
||||
this.caption = caption;
|
||||
this.mode = "ace/mode/" + name;
|
||||
this.extensions = extensions;
|
||||
var re;
|
||||
if (/\^/.test(extensions)) {
|
||||
re = extensions.replace(/\|(\^)?/g, function (a, b) {
|
||||
return "$|" + (b ? "^" : "^.*\\.");
|
||||
}) + "$";
|
||||
}
|
||||
else {
|
||||
re = "^.*\\.(" + extensions + ")$";
|
||||
}
|
||||
this.extRe = new RegExp(re, "gi");
|
||||
};
|
||||
Mode.prototype.supportsFile = function (filename) {
|
||||
return filename.match(this.extRe);
|
||||
};
|
||||
var supportedModes = {
|
||||
ABAP: ["abap"],
|
||||
ABC: ["abc"],
|
||||
ActionScript: ["as"],
|
||||
ADA: ["ada|adb"],
|
||||
Alda: ["alda"],
|
||||
Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],
|
||||
Apex: ["apex|cls|trigger|tgr"],
|
||||
AQL: ["aql"],
|
||||
AsciiDoc: ["asciidoc|adoc"],
|
||||
ASL: ["dsl|asl|asl.json"],
|
||||
Assembly_x86: ["asm|a"],
|
||||
AutoHotKey: ["ahk"],
|
||||
BatchFile: ["bat|cmd"],
|
||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"],
|
||||
C9Search: ["c9search_results"],
|
||||
Cirru: ["cirru|cr"],
|
||||
Clojure: ["clj|cljs"],
|
||||
Cobol: ["CBL|COB"],
|
||||
coffee: ["coffee|cf|cson|^Cakefile"],
|
||||
ColdFusion: ["cfm"],
|
||||
Crystal: ["cr"],
|
||||
CSharp: ["cs"],
|
||||
Csound_Document: ["csd"],
|
||||
Csound_Orchestra: ["orc"],
|
||||
Csound_Score: ["sco"],
|
||||
CSS: ["css"],
|
||||
Curly: ["curly"],
|
||||
D: ["d|di"],
|
||||
Dart: ["dart"],
|
||||
Diff: ["diff|patch"],
|
||||
Dockerfile: ["^Dockerfile"],
|
||||
Dot: ["dot"],
|
||||
Drools: ["drl"],
|
||||
Edifact: ["edi"],
|
||||
Eiffel: ["e|ge"],
|
||||
EJS: ["ejs"],
|
||||
Elixir: ["ex|exs"],
|
||||
Elm: ["elm"],
|
||||
Erlang: ["erl|hrl"],
|
||||
Forth: ["frt|fs|ldr|fth|4th"],
|
||||
Fortran: ["f|f90"],
|
||||
FSharp: ["fsi|fs|ml|mli|fsx|fsscript"],
|
||||
FSL: ["fsl"],
|
||||
FTL: ["ftl"],
|
||||
Gcode: ["gcode"],
|
||||
Gherkin: ["feature"],
|
||||
Gitignore: ["^.gitignore"],
|
||||
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|vue|we|wpy"],
|
||||
HTML_Elixir: ["eex|html.eex"],
|
||||
HTML_Ruby: ["erb|rhtml|html.erb"],
|
||||
INI: ["ini|conf|cfg|prefs"],
|
||||
Io: ["io"],
|
||||
Ion: ["ion"],
|
||||
Jack: ["jack"],
|
||||
Jade: ["jade|pug"],
|
||||
Java: ["java"],
|
||||
JavaScript: ["js|jsm|jsx|cjs|mjs"],
|
||||
JSON: ["json"],
|
||||
JSON5: ["json5"],
|
||||
JSONiq: ["jq"],
|
||||
JSP: ["jsp"],
|
||||
JSSM: ["jssm|jssm_state"],
|
||||
JSX: ["jsx"],
|
||||
Julia: ["jl"],
|
||||
Kotlin: ["kt|kts"],
|
||||
LaTeX: ["tex|latex|ltx|bib"],
|
||||
Latte: ["latte"],
|
||||
LESS: ["less"],
|
||||
Liquid: ["liquid"],
|
||||
Lisp: ["lisp"],
|
||||
LiveScript: ["ls"],
|
||||
Log: ["log"],
|
||||
LogiQL: ["logic|lql"],
|
||||
LSL: ["lsl"],
|
||||
Lua: ["lua"],
|
||||
LuaPage: ["lp"],
|
||||
Lucene: ["lucene"],
|
||||
Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],
|
||||
Markdown: ["md|markdown"],
|
||||
Mask: ["mask"],
|
||||
MATLAB: ["matlab"],
|
||||
Maze: ["mz"],
|
||||
MediaWiki: ["wiki|mediawiki"],
|
||||
MEL: ["mel"],
|
||||
MIPS: ["s|asm"],
|
||||
MIXAL: ["mixal"],
|
||||
MUSHCode: ["mc|mush"],
|
||||
MySQL: ["mysql"],
|
||||
Nginx: ["nginx|conf"],
|
||||
Nim: ["nim"],
|
||||
Nix: ["nix"],
|
||||
NSIS: ["nsi|nsh"],
|
||||
Nunjucks: ["nunjucks|nunjs|nj|njk"],
|
||||
ObjectiveC: ["m|mm"],
|
||||
OCaml: ["ml|mli"],
|
||||
PartiQL: ["partiql|pql"],
|
||||
Pascal: ["pas|p"],
|
||||
Perl: ["pl|pm"],
|
||||
pgSQL: ["pgsql"],
|
||||
PHP_Laravel_blade: ["blade.php"],
|
||||
PHP: ["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],
|
||||
Pig: ["pig"],
|
||||
Powershell: ["ps1"],
|
||||
Praat: ["praat|praatscript|psc|proc"],
|
||||
Prisma: ["prisma"],
|
||||
Prolog: ["plg|prolog"],
|
||||
Properties: ["properties"],
|
||||
Protobuf: ["proto"],
|
||||
Puppet: ["epp|pp"],
|
||||
Python: ["py"],
|
||||
QML: ["qml"],
|
||||
R: ["r"],
|
||||
Raku: ["raku|rakumod|rakutest|p6|pl6|pm6"],
|
||||
Razor: ["cshtml|asp"],
|
||||
RDoc: ["Rd"],
|
||||
Red: ["red|reds"],
|
||||
RHTML: ["Rhtml"],
|
||||
Robot: ["robot|resource"],
|
||||
RST: ["rst"],
|
||||
Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],
|
||||
Rust: ["rs"],
|
||||
SaC: ["sac"],
|
||||
SASS: ["sass"],
|
||||
SCAD: ["scad"],
|
||||
Scala: ["scala|sbt"],
|
||||
Scheme: ["scm|sm|rkt|oak|scheme"],
|
||||
Scrypt: ["scrypt"],
|
||||
SCSS: ["scss"],
|
||||
SH: ["sh|bash|^.bashrc"],
|
||||
SJS: ["sjs"],
|
||||
Slim: ["slim|skim"],
|
||||
Smarty: ["smarty|tpl"],
|
||||
Smithy: ["smithy"],
|
||||
snippets: ["snippets"],
|
||||
Soy_Template: ["soy"],
|
||||
Space: ["space"],
|
||||
SQL: ["sql"],
|
||||
SQLServer: ["sqlserver"],
|
||||
Stylus: ["styl|stylus"],
|
||||
SVG: ["svg"],
|
||||
Swift: ["swift"],
|
||||
Tcl: ["tcl"],
|
||||
Terraform: ["tf", "tfvars", "terragrunt"],
|
||||
Tex: ["tex"],
|
||||
Text: ["txt"],
|
||||
Textile: ["textile"],
|
||||
Toml: ["toml"],
|
||||
TSX: ["tsx"],
|
||||
Twig: ["twig|swig"],
|
||||
Typescript: ["ts|typescript|str"],
|
||||
Vala: ["vala"],
|
||||
VBScript: ["vbs|vb"],
|
||||
Velocity: ["vm"],
|
||||
Verilog: ["v|vh|sv|svh"],
|
||||
VHDL: ["vhd|vhdl"],
|
||||
Visualforce: ["vfp|component|page"],
|
||||
Wollok: ["wlk|wpgm|wtest"],
|
||||
XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"],
|
||||
XQuery: ["xq"],
|
||||
YAML: ["yaml|yml"],
|
||||
Zeek: ["zeek|bro"],
|
||||
Django: ["html"]
|
||||
};
|
||||
var nameOverrides = {
|
||||
ObjectiveC: "Objective-C",
|
||||
CSharp: "C#",
|
||||
golang: "Go",
|
||||
C_Cpp: "C and C++",
|
||||
Csound_Document: "Csound Document",
|
||||
Csound_Orchestra: "Csound",
|
||||
Csound_Score: "Csound Score",
|
||||
coffee: "CoffeeScript",
|
||||
HTML_Ruby: "HTML (Ruby)",
|
||||
HTML_Elixir: "HTML (Elixir)",
|
||||
FTL: "FreeMarker",
|
||||
PHP_Laravel_blade: "PHP (Blade Template)",
|
||||
Perl6: "Perl 6",
|
||||
AutoHotKey: "AutoHotkey / AutoIt"
|
||||
};
|
||||
var modesByName = {};
|
||||
for (var name in supportedModes) {
|
||||
var data = supportedModes[name];
|
||||
var displayName = (nameOverrides[name] || name).replace(/_/g, " ");
|
||||
var filename = name.toLowerCase();
|
||||
var mode = new Mode(filename, displayName, data[0]);
|
||||
modesByName[filename] = mode;
|
||||
modes.push(mode);
|
||||
}
|
||||
module.exports = {
|
||||
getModeForPath: getModeForPath,
|
||||
modes: modes,
|
||||
modesByName: modesByName
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/themelist",["require","exports","module"], function(require, exports, module){/**
|
||||
* Generates a list of themes available when ace was built.
|
||||
* @fileOverview Generates a list of themes available when ace was built.
|
||||
* @author <a href="mailto:matthewkastor@gmail.com">
|
||||
* Matthew Christopher Kastor-Inare III </a><br />
|
||||
* ☭ Hial Atropa!! ☭
|
||||
*/
|
||||
"use strict";
|
||||
var themeData = [
|
||||
["Chrome"],
|
||||
["Clouds"],
|
||||
["Crimson Editor"],
|
||||
["Dawn"],
|
||||
["Dreamweaver"],
|
||||
["Eclipse"],
|
||||
["GitHub"],
|
||||
["IPlastic"],
|
||||
["Solarized Light"],
|
||||
["TextMate"],
|
||||
["Tomorrow"],
|
||||
["XCode"],
|
||||
["Kuroir"],
|
||||
["KatzenMilch"],
|
||||
["SQL Server", "sqlserver", "light"],
|
||||
["Ambiance", "ambiance", "dark"],
|
||||
["Chaos", "chaos", "dark"],
|
||||
["Clouds Midnight", "clouds_midnight", "dark"],
|
||||
["Dracula", "", "dark"],
|
||||
["Cobalt", "cobalt", "dark"],
|
||||
["Gruvbox", "gruvbox", "dark"],
|
||||
["Green on Black", "gob", "dark"],
|
||||
["idle Fingers", "idle_fingers", "dark"],
|
||||
["krTheme", "kr_theme", "dark"],
|
||||
["Merbivore", "merbivore", "dark"],
|
||||
["Merbivore Soft", "merbivore_soft", "dark"],
|
||||
["Mono Industrial", "mono_industrial", "dark"],
|
||||
["Monokai", "monokai", "dark"],
|
||||
["Nord Dark", "nord_dark", "dark"],
|
||||
["One Dark", "one_dark", "dark"],
|
||||
["Pastel on dark", "pastel_on_dark", "dark"],
|
||||
["Solarized Dark", "solarized_dark", "dark"],
|
||||
["Terminal", "terminal", "dark"],
|
||||
["Tomorrow Night", "tomorrow_night", "dark"],
|
||||
["Tomorrow Night Blue", "tomorrow_night_blue", "dark"],
|
||||
["Tomorrow Night Bright", "tomorrow_night_bright", "dark"],
|
||||
["Tomorrow Night 80s", "tomorrow_night_eighties", "dark"],
|
||||
["Twilight", "twilight", "dark"],
|
||||
["Vibrant Ink", "vibrant_ink", "dark"]
|
||||
];
|
||||
exports.themesByName = {};
|
||||
exports.themes = themeData.map(function (data) {
|
||||
var name = data[1] || data[0].replace(/ /g, "_").toLowerCase();
|
||||
var theme = {
|
||||
caption: data[0],
|
||||
theme: "ace/theme/" + name,
|
||||
isDark: data[2] == "dark",
|
||||
name: name
|
||||
};
|
||||
exports.themesByName[name] = theme;
|
||||
return theme;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/options",["require","exports","module","ace/ext/menu_tools/overlay_page","ace/lib/dom","ace/lib/oop","ace/config","ace/lib/event_emitter","ace/ext/modelist","ace/ext/themelist"], function(require, exports, module){"use strict";
|
||||
require("./menu_tools/overlay_page");
|
||||
var dom = require("../lib/dom");
|
||||
var oop = require("../lib/oop");
|
||||
var config = require("../config");
|
||||
var EventEmitter = require("../lib/event_emitter").EventEmitter;
|
||||
var buildDom = dom.buildDom;
|
||||
var modelist = require("./modelist");
|
||||
var themelist = require("./themelist");
|
||||
var themes = { Bright: [], Dark: [] };
|
||||
themelist.themes.forEach(function (x) {
|
||||
themes[x.isDark ? "Dark" : "Bright"].push({ caption: x.caption, value: x.theme });
|
||||
});
|
||||
var modes = modelist.modes.map(function (x) {
|
||||
return { caption: x.caption, value: x.mode };
|
||||
});
|
||||
var optionGroups = {
|
||||
Main: {
|
||||
Mode: {
|
||||
path: "mode",
|
||||
type: "select",
|
||||
items: modes
|
||||
},
|
||||
Theme: {
|
||||
path: "theme",
|
||||
type: "select",
|
||||
items: themes
|
||||
},
|
||||
"Keybinding": {
|
||||
type: "buttonBar",
|
||||
path: "keyboardHandler",
|
||||
items: [
|
||||
{ caption: "Ace", value: null },
|
||||
{ caption: "Vim", value: "ace/keyboard/vim" },
|
||||
{ caption: "Emacs", value: "ace/keyboard/emacs" },
|
||||
{ caption: "Sublime", value: "ace/keyboard/sublime" },
|
||||
{ caption: "VSCode", value: "ace/keyboard/vscode" }
|
||||
]
|
||||
},
|
||||
"Font Size": {
|
||||
path: "fontSize",
|
||||
type: "number",
|
||||
defaultValue: 12,
|
||||
defaults: [
|
||||
{ caption: "12px", value: 12 },
|
||||
{ caption: "24px", value: 24 }
|
||||
]
|
||||
},
|
||||
"Soft Wrap": {
|
||||
type: "buttonBar",
|
||||
path: "wrap",
|
||||
items: [
|
||||
{ caption: "Off", value: "off" },
|
||||
{ caption: "View", value: "free" },
|
||||
{ caption: "margin", value: "printMargin" },
|
||||
{ caption: "40", value: "40" }
|
||||
]
|
||||
},
|
||||
"Cursor Style": {
|
||||
path: "cursorStyle",
|
||||
items: [
|
||||
{ caption: "Ace", value: "ace" },
|
||||
{ caption: "Slim", value: "slim" },
|
||||
{ caption: "Smooth", value: "smooth" },
|
||||
{ caption: "Smooth And Slim", value: "smooth slim" },
|
||||
{ caption: "Wide", value: "wide" }
|
||||
]
|
||||
},
|
||||
"Folding": {
|
||||
path: "foldStyle",
|
||||
items: [
|
||||
{ caption: "Manual", value: "manual" },
|
||||
{ caption: "Mark begin", value: "markbegin" },
|
||||
{ caption: "Mark begin and end", value: "markbeginend" }
|
||||
]
|
||||
},
|
||||
"Soft Tabs": [{
|
||||
path: "useSoftTabs"
|
||||
}, {
|
||||
ariaLabel: "Tab Size",
|
||||
path: "tabSize",
|
||||
type: "number",
|
||||
values: [2, 3, 4, 8, 16]
|
||||
}],
|
||||
"Overscroll": {
|
||||
type: "buttonBar",
|
||||
path: "scrollPastEnd",
|
||||
items: [
|
||||
{ caption: "None", value: 0 },
|
||||
{ caption: "Half", value: 0.5 },
|
||||
{ caption: "Full", value: 1 }
|
||||
]
|
||||
}
|
||||
},
|
||||
More: {
|
||||
"Atomic soft tabs": {
|
||||
path: "navigateWithinSoftTabs"
|
||||
},
|
||||
"Enable Behaviours": {
|
||||
path: "behavioursEnabled"
|
||||
},
|
||||
"Wrap with quotes": {
|
||||
path: "wrapBehavioursEnabled"
|
||||
},
|
||||
"Enable Auto Indent": {
|
||||
path: "enableAutoIndent"
|
||||
},
|
||||
"Full Line Selection": {
|
||||
type: "checkbox",
|
||||
values: "text|line",
|
||||
path: "selectionStyle"
|
||||
},
|
||||
"Highlight Active Line": {
|
||||
path: "highlightActiveLine"
|
||||
},
|
||||
"Show Invisibles": {
|
||||
path: "showInvisibles"
|
||||
},
|
||||
"Show Indent Guides": {
|
||||
path: "displayIndentGuides"
|
||||
},
|
||||
"Highlight Indent Guides": {
|
||||
path: "highlightIndentGuides"
|
||||
},
|
||||
"Persistent HScrollbar": {
|
||||
path: "hScrollBarAlwaysVisible"
|
||||
},
|
||||
"Persistent VScrollbar": {
|
||||
path: "vScrollBarAlwaysVisible"
|
||||
},
|
||||
"Animate scrolling": {
|
||||
path: "animatedScroll"
|
||||
},
|
||||
"Show Gutter": {
|
||||
path: "showGutter"
|
||||
},
|
||||
"Show Line Numbers": {
|
||||
path: "showLineNumbers"
|
||||
},
|
||||
"Relative Line Numbers": {
|
||||
path: "relativeLineNumbers"
|
||||
},
|
||||
"Fixed Gutter Width": {
|
||||
path: "fixedWidthGutter"
|
||||
},
|
||||
"Show Print Margin": [{
|
||||
path: "showPrintMargin"
|
||||
}, {
|
||||
ariaLabel: "Print Margin",
|
||||
type: "number",
|
||||
path: "printMarginColumn"
|
||||
}],
|
||||
"Indented Soft Wrap": {
|
||||
path: "indentedSoftWrap"
|
||||
},
|
||||
"Highlight selected word": {
|
||||
path: "highlightSelectedWord"
|
||||
},
|
||||
"Fade Fold Widgets": {
|
||||
path: "fadeFoldWidgets"
|
||||
},
|
||||
"Use textarea for IME": {
|
||||
path: "useTextareaForIME"
|
||||
},
|
||||
"Merge Undo Deltas": {
|
||||
path: "mergeUndoDeltas",
|
||||
items: [
|
||||
{ caption: "Always", value: "always" },
|
||||
{ caption: "Never", value: "false" },
|
||||
{ caption: "Timed", value: "true" }
|
||||
]
|
||||
},
|
||||
"Elastic Tabstops": {
|
||||
path: "useElasticTabstops"
|
||||
},
|
||||
"Incremental Search": {
|
||||
path: "useIncrementalSearch"
|
||||
},
|
||||
"Read-only": {
|
||||
path: "readOnly"
|
||||
},
|
||||
"Copy without selection": {
|
||||
path: "copyWithEmptySelection"
|
||||
},
|
||||
"Live Autocompletion": {
|
||||
path: "enableLiveAutocompletion"
|
||||
},
|
||||
"Custom scrollbar": {
|
||||
path: "customScrollbar"
|
||||
}
|
||||
}
|
||||
};
|
||||
var OptionPanel = function (editor, element) {
|
||||
this.editor = editor;
|
||||
this.container = element || document.createElement("div");
|
||||
this.groups = [];
|
||||
this.options = {};
|
||||
};
|
||||
(function () {
|
||||
oop.implement(this, EventEmitter);
|
||||
this.add = function (config) {
|
||||
if (config.Main)
|
||||
oop.mixin(optionGroups.Main, config.Main);
|
||||
if (config.More)
|
||||
oop.mixin(optionGroups.More, config.More);
|
||||
};
|
||||
this.render = function () {
|
||||
this.container.innerHTML = "";
|
||||
buildDom(["table", { role: "presentation", id: "controls" },
|
||||
this.renderOptionGroup(optionGroups.Main),
|
||||
["tr", null, ["td", { colspan: 2 },
|
||||
["table", { role: "presentation", id: "more-controls" },
|
||||
this.renderOptionGroup(optionGroups.More)
|
||||
]
|
||||
]],
|
||||
["tr", null, ["td", { colspan: 2 }, "version " + config.version]]
|
||||
], this.container);
|
||||
};
|
||||
this.renderOptionGroup = function (group) {
|
||||
return Object.keys(group).map(function (key, i) {
|
||||
var item = group[key];
|
||||
if (!item.position)
|
||||
item.position = i / 10000;
|
||||
if (!item.label)
|
||||
item.label = key;
|
||||
return item;
|
||||
}).sort(function (a, b) {
|
||||
return a.position - b.position;
|
||||
}).map(function (item) {
|
||||
return this.renderOption(item.label, item);
|
||||
}, this);
|
||||
};
|
||||
this.renderOptionControl = function (key, option) {
|
||||
var self = this;
|
||||
if (Array.isArray(option)) {
|
||||
return option.map(function (x) {
|
||||
return self.renderOptionControl(key, x);
|
||||
});
|
||||
}
|
||||
var control;
|
||||
var value = self.getOption(option);
|
||||
if (option.values && option.type != "checkbox") {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
option.items = option.values.map(function (v) {
|
||||
return { value: v, name: v };
|
||||
});
|
||||
}
|
||||
if (option.type == "buttonBar") {
|
||||
control = ["div", { role: "group", "aria-labelledby": option.path + "-label" }, option.items.map(function (item) {
|
||||
return ["button", {
|
||||
value: item.value,
|
||||
ace_selected_button: value == item.value,
|
||||
'aria-pressed': value == item.value,
|
||||
onclick: function () {
|
||||
self.setOption(option, item.value);
|
||||
var nodes = this.parentNode.querySelectorAll("[ace_selected_button]");
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].removeAttribute("ace_selected_button");
|
||||
nodes[i].setAttribute("aria-pressed", false);
|
||||
}
|
||||
this.setAttribute("ace_selected_button", true);
|
||||
this.setAttribute("aria-pressed", true);
|
||||
}
|
||||
}, item.desc || item.caption || item.name];
|
||||
})];
|
||||
}
|
||||
else if (option.type == "number") {
|
||||
control = ["input", { type: "number", value: value || option.defaultValue, style: "width:3em", oninput: function () {
|
||||
self.setOption(option, parseInt(this.value));
|
||||
} }];
|
||||
if (option.ariaLabel) {
|
||||
control[1]["aria-label"] = option.ariaLabel;
|
||||
}
|
||||
else {
|
||||
control[1].id = key;
|
||||
}
|
||||
if (option.defaults) {
|
||||
control = [control, option.defaults.map(function (item) {
|
||||
return ["button", { onclick: function () {
|
||||
var input = this.parentNode.firstChild;
|
||||
input.value = item.value;
|
||||
input.oninput();
|
||||
} }, item.caption];
|
||||
})];
|
||||
}
|
||||
}
|
||||
else if (option.items) {
|
||||
var buildItems = function (items) {
|
||||
return items.map(function (item) {
|
||||
return ["option", { value: item.value || item.name }, item.desc || item.caption || item.name];
|
||||
});
|
||||
};
|
||||
var items = Array.isArray(option.items)
|
||||
? buildItems(option.items)
|
||||
: Object.keys(option.items).map(function (key) {
|
||||
return ["optgroup", { "label": key }, buildItems(option.items[key])];
|
||||
});
|
||||
control = ["select", { id: key, value: value, onchange: function () {
|
||||
self.setOption(option, this.value);
|
||||
} }, items];
|
||||
}
|
||||
else {
|
||||
if (typeof option.values == "string")
|
||||
option.values = option.values.split("|");
|
||||
if (option.values)
|
||||
value = value == option.values[1];
|
||||
control = ["input", { type: "checkbox", id: key, checked: value || null, onchange: function () {
|
||||
var value = this.checked;
|
||||
if (option.values)
|
||||
value = option.values[value ? 1 : 0];
|
||||
self.setOption(option, value);
|
||||
} }];
|
||||
if (option.type == "checkedNumber") {
|
||||
control = [control, []];
|
||||
}
|
||||
}
|
||||
return control;
|
||||
};
|
||||
this.renderOption = function (key, option) {
|
||||
if (option.path && !option.onchange && !this.editor.$options[option.path])
|
||||
return;
|
||||
var path = Array.isArray(option) ? option[0].path : option.path;
|
||||
this.options[path] = option;
|
||||
var safeKey = "-" + path;
|
||||
var safeId = path + "-label";
|
||||
var control = this.renderOptionControl(safeKey, option);
|
||||
return ["tr", { class: "ace_optionsMenuEntry" }, ["td",
|
||||
["label", { for: safeKey, id: safeId }, key]
|
||||
], ["td", control]];
|
||||
};
|
||||
this.setOption = function (option, value) {
|
||||
if (typeof option == "string")
|
||||
option = this.options[option];
|
||||
if (value == "false")
|
||||
value = false;
|
||||
if (value == "true")
|
||||
value = true;
|
||||
if (value == "null")
|
||||
value = null;
|
||||
if (value == "undefined")
|
||||
value = undefined;
|
||||
if (typeof value == "string" && parseFloat(value).toString() == value)
|
||||
value = parseFloat(value);
|
||||
if (option.onchange)
|
||||
option.onchange(value);
|
||||
else if (option.path)
|
||||
this.editor.setOption(option.path, value);
|
||||
this._signal("setOption", { name: option.path, value: value });
|
||||
};
|
||||
this.getOption = function (option) {
|
||||
if (option.getValue)
|
||||
return option.getValue();
|
||||
return this.editor.getOption(option.path);
|
||||
};
|
||||
}).call(OptionPanel.prototype);
|
||||
exports.OptionPanel = OptionPanel;
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/settings_menu",["require","exports","module","ace/ext/options","ace/ext/menu_tools/overlay_page","ace/editor"], function(require, exports, module){/*jslint indent: 4, maxerr: 50, white: true, browser: true, vars: true*/
|
||||
"use strict";
|
||||
var OptionPanel = require("./options").OptionPanel;
|
||||
var overlayPage = require('./menu_tools/overlay_page').overlayPage;
|
||||
function showSettingsMenu(editor) {
|
||||
if (!document.getElementById('ace_settingsmenu')) {
|
||||
var options = new OptionPanel(editor);
|
||||
options.render();
|
||||
options.container.id = "ace_settingsmenu";
|
||||
overlayPage(editor, options.container);
|
||||
options.container.querySelector("select,input,button,checkbox").focus();
|
||||
}
|
||||
}
|
||||
module.exports.init = function () {
|
||||
var Editor = require("../editor").Editor;
|
||||
Editor.prototype.showSettingsMenu = function () {
|
||||
showSettingsMenu(this);
|
||||
};
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/settings_menu"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
68
src/main/resources/static/assets/js/vendor/template/src/ext-spellcheck.js
vendored
Normal file
68
src/main/resources/static/assets/js/vendor/template/src/ext-spellcheck.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
define("ace/ext/spellcheck",["require","exports","module","ace/lib/event","ace/editor","ace/config"], function(require, exports, module){"use strict";
|
||||
var event = require("../lib/event");
|
||||
exports.contextMenuHandler = function (e) {
|
||||
var host = e.target;
|
||||
var text = host.textInput.getElement();
|
||||
if (!host.selection.isEmpty())
|
||||
return;
|
||||
var c = host.getCursorPosition();
|
||||
var r = host.session.getWordRange(c.row, c.column);
|
||||
var w = host.session.getTextRange(r);
|
||||
host.session.tokenRe.lastIndex = 0;
|
||||
if (!host.session.tokenRe.test(w))
|
||||
return;
|
||||
var PLACEHOLDER = "\x01\x01";
|
||||
var value = w + " " + PLACEHOLDER;
|
||||
text.value = value;
|
||||
text.setSelectionRange(w.length, w.length + 1);
|
||||
text.setSelectionRange(0, 0);
|
||||
text.setSelectionRange(0, w.length);
|
||||
var afterKeydown = false;
|
||||
event.addListener(text, "keydown", function onKeydown() {
|
||||
event.removeListener(text, "keydown", onKeydown);
|
||||
afterKeydown = true;
|
||||
});
|
||||
host.textInput.setInputHandler(function (newVal) {
|
||||
if (newVal == value)
|
||||
return '';
|
||||
if (newVal.lastIndexOf(value, 0) === 0)
|
||||
return newVal.slice(value.length);
|
||||
if (newVal.substr(text.selectionEnd) == value)
|
||||
return newVal.slice(0, -value.length);
|
||||
if (newVal.slice(-2) == PLACEHOLDER) {
|
||||
var val = newVal.slice(0, -2);
|
||||
if (val.slice(-1) == " ") {
|
||||
if (afterKeydown)
|
||||
return val.substring(0, text.selectionEnd);
|
||||
val = val.slice(0, -1);
|
||||
host.session.replace(r, val);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
return newVal;
|
||||
});
|
||||
};
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
spellcheck: {
|
||||
set: function (val) {
|
||||
var text = this.textInput.getElement();
|
||||
text.spellcheck = !!val;
|
||||
if (!val)
|
||||
this.removeListener("nativecontextmenu", exports.contextMenuHandler);
|
||||
else
|
||||
this.on("nativecontextmenu", exports.contextMenuHandler);
|
||||
},
|
||||
value: true
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/spellcheck"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
186
src/main/resources/static/assets/js/vendor/template/src/ext-split.js
vendored
Normal file
186
src/main/resources/static/assets/js/vendor/template/src/ext-split.js
vendored
Normal file
@ -0,0 +1,186 @@
|
||||
define("ace/split",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/editor","ace/virtual_renderer","ace/edit_session"], function(require, exports, module){"use strict";
|
||||
var oop = require("./lib/oop");
|
||||
var lang = require("./lib/lang");
|
||||
var EventEmitter = require("./lib/event_emitter").EventEmitter;
|
||||
var Editor = require("./editor").Editor;
|
||||
var Renderer = require("./virtual_renderer").VirtualRenderer;
|
||||
var EditSession = require("./edit_session").EditSession;
|
||||
var Split = function (container, theme, splits) {
|
||||
this.BELOW = 1;
|
||||
this.BESIDE = 0;
|
||||
this.$container = container;
|
||||
this.$theme = theme;
|
||||
this.$splits = 0;
|
||||
this.$editorCSS = "";
|
||||
this.$editors = [];
|
||||
this.$orientation = this.BESIDE;
|
||||
this.setSplits(splits || 1);
|
||||
this.$cEditor = this.$editors[0];
|
||||
this.on("focus", function (editor) {
|
||||
this.$cEditor = editor;
|
||||
}.bind(this));
|
||||
};
|
||||
(function () {
|
||||
oop.implement(this, EventEmitter);
|
||||
this.$createEditor = function () {
|
||||
var el = document.createElement("div");
|
||||
el.className = this.$editorCSS;
|
||||
el.style.cssText = "position: absolute; top:0px; bottom:0px";
|
||||
this.$container.appendChild(el);
|
||||
var editor = new Editor(new Renderer(el, this.$theme));
|
||||
editor.on("focus", function () {
|
||||
this._emit("focus", editor);
|
||||
}.bind(this));
|
||||
this.$editors.push(editor);
|
||||
editor.setFontSize(this.$fontSize);
|
||||
return editor;
|
||||
};
|
||||
this.setSplits = function (splits) {
|
||||
var editor;
|
||||
if (splits < 1) {
|
||||
throw "The number of splits have to be > 0!";
|
||||
}
|
||||
if (splits == this.$splits) {
|
||||
return;
|
||||
}
|
||||
else if (splits > this.$splits) {
|
||||
while (this.$splits < this.$editors.length && this.$splits < splits) {
|
||||
editor = this.$editors[this.$splits];
|
||||
this.$container.appendChild(editor.container);
|
||||
editor.setFontSize(this.$fontSize);
|
||||
this.$splits++;
|
||||
}
|
||||
while (this.$splits < splits) {
|
||||
this.$createEditor();
|
||||
this.$splits++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
while (this.$splits > splits) {
|
||||
editor = this.$editors[this.$splits - 1];
|
||||
this.$container.removeChild(editor.container);
|
||||
this.$splits--;
|
||||
}
|
||||
}
|
||||
this.resize();
|
||||
};
|
||||
this.getSplits = function () {
|
||||
return this.$splits;
|
||||
};
|
||||
this.getEditor = function (idx) {
|
||||
return this.$editors[idx];
|
||||
};
|
||||
this.getCurrentEditor = function () {
|
||||
return this.$cEditor;
|
||||
};
|
||||
this.focus = function () {
|
||||
this.$cEditor.focus();
|
||||
};
|
||||
this.blur = function () {
|
||||
this.$cEditor.blur();
|
||||
};
|
||||
this.setTheme = function (theme) {
|
||||
this.$editors.forEach(function (editor) {
|
||||
editor.setTheme(theme);
|
||||
});
|
||||
};
|
||||
this.setKeyboardHandler = function (keybinding) {
|
||||
this.$editors.forEach(function (editor) {
|
||||
editor.setKeyboardHandler(keybinding);
|
||||
});
|
||||
};
|
||||
this.forEach = function (callback, scope) {
|
||||
this.$editors.forEach(callback, scope);
|
||||
};
|
||||
this.$fontSize = "";
|
||||
this.setFontSize = function (size) {
|
||||
this.$fontSize = size;
|
||||
this.forEach(function (editor) {
|
||||
editor.setFontSize(size);
|
||||
});
|
||||
};
|
||||
this.$cloneSession = function (session) {
|
||||
var s = new EditSession(session.getDocument(), session.getMode());
|
||||
var undoManager = session.getUndoManager();
|
||||
s.setUndoManager(undoManager);
|
||||
s.setTabSize(session.getTabSize());
|
||||
s.setUseSoftTabs(session.getUseSoftTabs());
|
||||
s.setOverwrite(session.getOverwrite());
|
||||
s.setBreakpoints(session.getBreakpoints());
|
||||
s.setUseWrapMode(session.getUseWrapMode());
|
||||
s.setUseWorker(session.getUseWorker());
|
||||
s.setWrapLimitRange(session.$wrapLimitRange.min, session.$wrapLimitRange.max);
|
||||
s.$foldData = session.$cloneFoldData();
|
||||
return s;
|
||||
};
|
||||
this.setSession = function (session, idx) {
|
||||
var editor;
|
||||
if (idx == null) {
|
||||
editor = this.$cEditor;
|
||||
}
|
||||
else {
|
||||
editor = this.$editors[idx];
|
||||
}
|
||||
var isUsed = this.$editors.some(function (editor) {
|
||||
return editor.session === session;
|
||||
});
|
||||
if (isUsed) {
|
||||
session = this.$cloneSession(session);
|
||||
}
|
||||
editor.setSession(session);
|
||||
return session;
|
||||
};
|
||||
this.getOrientation = function () {
|
||||
return this.$orientation;
|
||||
};
|
||||
this.setOrientation = function (orientation) {
|
||||
if (this.$orientation == orientation) {
|
||||
return;
|
||||
}
|
||||
this.$orientation = orientation;
|
||||
this.resize();
|
||||
};
|
||||
this.resize = function () {
|
||||
var width = this.$container.clientWidth;
|
||||
var height = this.$container.clientHeight;
|
||||
var editor;
|
||||
if (this.$orientation == this.BESIDE) {
|
||||
var editorWidth = width / this.$splits;
|
||||
for (var i = 0; i < this.$splits; i++) {
|
||||
editor = this.$editors[i];
|
||||
editor.container.style.width = editorWidth + "px";
|
||||
editor.container.style.top = "0px";
|
||||
editor.container.style.left = i * editorWidth + "px";
|
||||
editor.container.style.height = height + "px";
|
||||
editor.resize();
|
||||
}
|
||||
}
|
||||
else {
|
||||
var editorHeight = height / this.$splits;
|
||||
for (var i = 0; i < this.$splits; i++) {
|
||||
editor = this.$editors[i];
|
||||
editor.container.style.width = width + "px";
|
||||
editor.container.style.top = i * editorHeight + "px";
|
||||
editor.container.style.left = "0px";
|
||||
editor.container.style.height = editorHeight + "px";
|
||||
editor.resize();
|
||||
}
|
||||
}
|
||||
};
|
||||
}).call(Split.prototype);
|
||||
exports.Split = Split;
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/split",["require","exports","module","ace/split"], function(require, exports, module){"use strict";
|
||||
module.exports = require("../split");
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/split"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
182
src/main/resources/static/assets/js/vendor/template/src/ext-static_highlight.js
vendored
Normal file
182
src/main/resources/static/assets/js/vendor/template/src/ext-static_highlight.js
vendored
Normal file
@ -0,0 +1,182 @@
|
||||
define("ace/ext/static.css",["require","exports","module"], function(require, exports, module){module.exports = ".ace_static_highlight {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;\n font-size: 12px;\n white-space: pre-wrap\n}\n\n.ace_static_highlight .ace_gutter {\n width: 2em;\n text-align: right;\n padding: 0 3px 0 0;\n margin-right: 3px;\n contain: none;\n}\n\n.ace_static_highlight.ace_show_gutter .ace_line {\n padding-left: 2.6em;\n}\n\n.ace_static_highlight .ace_line { position: relative; }\n\n.ace_static_highlight .ace_gutter-cell {\n -moz-user-select: -moz-none;\n -khtml-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n top: 0;\n bottom: 0;\n left: 0;\n position: absolute;\n}\n\n\n.ace_static_highlight .ace_gutter-cell:before {\n content: counter(ace_line, decimal);\n counter-increment: ace_line;\n}\n.ace_static_highlight {\n counter-reset: ace_line;\n}\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/ext/static_highlight",["require","exports","module","ace/edit_session","ace/layer/text","ace/ext/static.css","ace/config","ace/lib/dom","ace/lib/lang"], function(require, exports, module){"use strict";
|
||||
var EditSession = require("../edit_session").EditSession;
|
||||
var TextLayer = require("../layer/text").Text;
|
||||
var baseStyles = require("./static.css");
|
||||
var config = require("../config");
|
||||
var dom = require("../lib/dom");
|
||||
var escapeHTML = require("../lib/lang").escapeHTML;
|
||||
function Element(type) {
|
||||
this.type = type;
|
||||
this.style = {};
|
||||
this.textContent = "";
|
||||
}
|
||||
Element.prototype.cloneNode = function () {
|
||||
return this;
|
||||
};
|
||||
Element.prototype.appendChild = function (child) {
|
||||
this.textContent += child.toString();
|
||||
};
|
||||
Element.prototype.toString = function () {
|
||||
var stringBuilder = [];
|
||||
if (this.type != "fragment") {
|
||||
stringBuilder.push("<", this.type);
|
||||
if (this.className)
|
||||
stringBuilder.push(" class='", this.className, "'");
|
||||
var styleStr = [];
|
||||
for (var key in this.style) {
|
||||
styleStr.push(key, ":", this.style[key]);
|
||||
}
|
||||
if (styleStr.length)
|
||||
stringBuilder.push(" style='", styleStr.join(""), "'");
|
||||
stringBuilder.push(">");
|
||||
}
|
||||
if (this.textContent) {
|
||||
stringBuilder.push(this.textContent);
|
||||
}
|
||||
if (this.type != "fragment") {
|
||||
stringBuilder.push("</", this.type, ">");
|
||||
}
|
||||
return stringBuilder.join("");
|
||||
};
|
||||
var simpleDom = {
|
||||
createTextNode: function (textContent, element) {
|
||||
return escapeHTML(textContent);
|
||||
},
|
||||
createElement: function (type) {
|
||||
return new Element(type);
|
||||
},
|
||||
createFragment: function () {
|
||||
return new Element("fragment");
|
||||
}
|
||||
};
|
||||
var SimpleTextLayer = function () {
|
||||
this.config = {};
|
||||
this.dom = simpleDom;
|
||||
};
|
||||
SimpleTextLayer.prototype = TextLayer.prototype;
|
||||
var highlight = function (el, opts, callback) {
|
||||
var m = el.className.match(/lang-(\w+)/);
|
||||
var mode = opts.mode || m && ("ace/mode/" + m[1]);
|
||||
if (!mode)
|
||||
return false;
|
||||
var theme = opts.theme || "ace/theme/textmate";
|
||||
var data = "";
|
||||
var nodes = [];
|
||||
if (el.firstElementChild) {
|
||||
var textLen = 0;
|
||||
for (var i = 0; i < el.childNodes.length; i++) {
|
||||
var ch = el.childNodes[i];
|
||||
if (ch.nodeType == 3) {
|
||||
textLen += ch.data.length;
|
||||
data += ch.data;
|
||||
}
|
||||
else {
|
||||
nodes.push(textLen, ch);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
data = el.textContent;
|
||||
if (opts.trim)
|
||||
data = data.trim();
|
||||
}
|
||||
highlight.render(data, mode, theme, opts.firstLineNumber, !opts.showGutter, function (highlighted) {
|
||||
dom.importCssString(highlighted.css, "ace_highlight");
|
||||
el.innerHTML = highlighted.html;
|
||||
var container = el.firstChild.firstChild;
|
||||
for (var i = 0; i < nodes.length; i += 2) {
|
||||
var pos = highlighted.session.doc.indexToPosition(nodes[i]);
|
||||
var node = nodes[i + 1];
|
||||
var lineEl = container.children[pos.row];
|
||||
lineEl && lineEl.appendChild(node);
|
||||
}
|
||||
callback && callback();
|
||||
});
|
||||
};
|
||||
highlight.render = function (input, mode, theme, lineStart, disableGutter, callback) {
|
||||
var waiting = 1;
|
||||
var modeCache = EditSession.prototype.$modes;
|
||||
if (typeof theme == "string") {
|
||||
waiting++;
|
||||
config.loadModule(['theme', theme], function (m) {
|
||||
theme = m;
|
||||
--waiting || done();
|
||||
});
|
||||
}
|
||||
var modeOptions;
|
||||
if (mode && typeof mode === "object" && !mode.getTokenizer) {
|
||||
modeOptions = mode;
|
||||
mode = modeOptions.path;
|
||||
}
|
||||
if (typeof mode == "string") {
|
||||
waiting++;
|
||||
config.loadModule(['mode', mode], function (m) {
|
||||
if (!modeCache[mode] || modeOptions)
|
||||
modeCache[mode] = new m.Mode(modeOptions);
|
||||
mode = modeCache[mode];
|
||||
--waiting || done();
|
||||
});
|
||||
}
|
||||
function done() {
|
||||
var result = highlight.renderSync(input, mode, theme, lineStart, disableGutter);
|
||||
return callback ? callback(result) : result;
|
||||
}
|
||||
return --waiting || done();
|
||||
};
|
||||
highlight.renderSync = function (input, mode, theme, lineStart, disableGutter) {
|
||||
lineStart = parseInt(lineStart || 1, 10);
|
||||
var session = new EditSession("");
|
||||
session.setUseWorker(false);
|
||||
session.setMode(mode);
|
||||
var textLayer = new SimpleTextLayer();
|
||||
textLayer.setSession(session);
|
||||
Object.keys(textLayer.$tabStrings).forEach(function (k) {
|
||||
if (typeof textLayer.$tabStrings[k] == "string") {
|
||||
var el = simpleDom.createFragment();
|
||||
el.textContent = textLayer.$tabStrings[k];
|
||||
textLayer.$tabStrings[k] = el;
|
||||
}
|
||||
});
|
||||
session.setValue(input);
|
||||
var length = session.getLength();
|
||||
var outerEl = simpleDom.createElement("div");
|
||||
outerEl.className = theme.cssClass;
|
||||
var innerEl = simpleDom.createElement("div");
|
||||
innerEl.className = "ace_static_highlight" + (disableGutter ? "" : " ace_show_gutter");
|
||||
innerEl.style["counter-reset"] = "ace_line " + (lineStart - 1);
|
||||
for (var ix = 0; ix < length; ix++) {
|
||||
var lineEl = simpleDom.createElement("div");
|
||||
lineEl.className = "ace_line";
|
||||
if (!disableGutter) {
|
||||
var gutterEl = simpleDom.createElement("span");
|
||||
gutterEl.className = "ace_gutter ace_gutter-cell";
|
||||
gutterEl.textContent = "";
|
||||
lineEl.appendChild(gutterEl);
|
||||
}
|
||||
textLayer.$renderLine(lineEl, ix, false);
|
||||
lineEl.textContent += "\n";
|
||||
innerEl.appendChild(lineEl);
|
||||
}
|
||||
outerEl.appendChild(innerEl);
|
||||
return {
|
||||
css: baseStyles + theme.cssText,
|
||||
html: outerEl.toString(),
|
||||
session: session
|
||||
};
|
||||
};
|
||||
module.exports = highlight;
|
||||
module.exports.highlight = highlight;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/static_highlight"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
48
src/main/resources/static/assets/js/vendor/template/src/ext-statusbar.js
vendored
Normal file
48
src/main/resources/static/assets/js/vendor/template/src/ext-statusbar.js
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"], function(require, exports, module){"use strict";
|
||||
var dom = require("../lib/dom");
|
||||
var lang = require("../lib/lang");
|
||||
var StatusBar = function (editor, parentNode) {
|
||||
this.element = dom.createElement("div");
|
||||
this.element.className = "ace_status-indicator";
|
||||
this.element.style.cssText = "display: inline-block;";
|
||||
parentNode.appendChild(this.element);
|
||||
var statusUpdate = lang.delayedCall(function () {
|
||||
this.updateStatus(editor);
|
||||
}.bind(this)).schedule.bind(null, 100);
|
||||
editor.on("changeStatus", statusUpdate);
|
||||
editor.on("changeSelection", statusUpdate);
|
||||
editor.on("keyboardActivity", statusUpdate);
|
||||
};
|
||||
(function () {
|
||||
this.updateStatus = function (editor) {
|
||||
var status = [];
|
||||
function add(str, separator) {
|
||||
str && status.push(str, separator || "|");
|
||||
}
|
||||
add(editor.keyBinding.getStatusText(editor));
|
||||
if (editor.commands.recording)
|
||||
add("REC");
|
||||
var sel = editor.selection;
|
||||
var c = sel.lead;
|
||||
if (!sel.isEmpty()) {
|
||||
var r = editor.getSelectionRange();
|
||||
add("(" + (r.end.row - r.start.row) + ":" + (r.end.column - r.start.column) + ")", " ");
|
||||
}
|
||||
add(c.row + ":" + c.column, " ");
|
||||
if (sel.rangeCount)
|
||||
add("[" + sel.rangeCount + "]", " ");
|
||||
status.pop();
|
||||
this.element.textContent = status.join("");
|
||||
};
|
||||
}).call(StatusBar.prototype);
|
||||
exports.StatusBar = StatusBar;
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/statusbar"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
389
src/main/resources/static/assets/js/vendor/template/src/ext-textarea.js
vendored
Normal file
389
src/main/resources/static/assets/js/vendor/template/src/ext-textarea.js
vendored
Normal file
@ -0,0 +1,389 @@
|
||||
define("ace/ext/textarea",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/net","ace/ace"], function(require, exports, module){"use strict";
|
||||
var event = require("../lib/event");
|
||||
var UA = require("../lib/useragent");
|
||||
var net = require("../lib/net");
|
||||
var ace = require("../ace");
|
||||
module.exports = exports = ace;
|
||||
var getCSSProperty = function (element, container, property) {
|
||||
var ret = element.style[property];
|
||||
if (!ret) {
|
||||
if (window.getComputedStyle) {
|
||||
ret = window.getComputedStyle(element, '').getPropertyValue(property);
|
||||
}
|
||||
else {
|
||||
ret = element.currentStyle[property];
|
||||
}
|
||||
}
|
||||
if (!ret || ret == 'auto' || ret == 'intrinsic') {
|
||||
ret = container.style[property];
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
function applyStyles(elm, styles) {
|
||||
for (var style in styles) {
|
||||
elm.style[style] = styles[style];
|
||||
}
|
||||
}
|
||||
function setupContainer(element, getValue) {
|
||||
if (element.type != 'textarea') {
|
||||
throw new Error("Textarea required!");
|
||||
}
|
||||
var parentNode = element.parentNode;
|
||||
var container = document.createElement('div');
|
||||
var resizeEvent = function () {
|
||||
var style = 'position:relative;';
|
||||
[
|
||||
'margin-top', 'margin-left', 'margin-right', 'margin-bottom'
|
||||
].forEach(function (item) {
|
||||
style += item + ':' +
|
||||
getCSSProperty(element, container, item) + ';';
|
||||
});
|
||||
var width = getCSSProperty(element, container, 'width') || (element.clientWidth + "px");
|
||||
var height = getCSSProperty(element, container, 'height') || (element.clientHeight + "px");
|
||||
style += 'height:' + height + ';width:' + width + ';';
|
||||
style += 'display:inline-block;';
|
||||
container.setAttribute('style', style);
|
||||
};
|
||||
event.addListener(window, 'resize', resizeEvent);
|
||||
resizeEvent();
|
||||
parentNode.insertBefore(container, element.nextSibling);
|
||||
while (parentNode !== document) {
|
||||
if (parentNode.tagName.toUpperCase() === 'FORM') {
|
||||
var oldSumit = parentNode.onsubmit;
|
||||
parentNode.onsubmit = function (evt) {
|
||||
element.value = getValue();
|
||||
if (oldSumit) {
|
||||
oldSumit.call(this, evt);
|
||||
}
|
||||
};
|
||||
break;
|
||||
}
|
||||
parentNode = parentNode.parentNode;
|
||||
}
|
||||
return container;
|
||||
}
|
||||
exports.transformTextarea = function (element, options) {
|
||||
var isFocused = element.autofocus || document.activeElement == element;
|
||||
var session;
|
||||
var container = setupContainer(element, function () {
|
||||
return session.getValue();
|
||||
});
|
||||
element.style.display = 'none';
|
||||
container.style.background = 'white';
|
||||
var editorDiv = document.createElement("div");
|
||||
applyStyles(editorDiv, {
|
||||
top: "0px",
|
||||
left: "0px",
|
||||
right: "0px",
|
||||
bottom: "0px",
|
||||
border: "1px solid gray",
|
||||
position: "absolute"
|
||||
});
|
||||
container.appendChild(editorDiv);
|
||||
var settingOpener = document.createElement("div");
|
||||
applyStyles(settingOpener, {
|
||||
position: "absolute",
|
||||
right: "0px",
|
||||
bottom: "0px",
|
||||
cursor: "nw-resize",
|
||||
border: "solid 9px",
|
||||
borderColor: "lightblue gray gray #ceade6",
|
||||
zIndex: 101
|
||||
});
|
||||
var settingDiv = document.createElement("div");
|
||||
var settingDivStyles = {
|
||||
top: "0px",
|
||||
left: "20%",
|
||||
right: "0px",
|
||||
bottom: "0px",
|
||||
position: "absolute",
|
||||
padding: "5px",
|
||||
zIndex: 100,
|
||||
color: "white",
|
||||
display: "none",
|
||||
overflow: "auto",
|
||||
fontSize: "14px",
|
||||
boxShadow: "-5px 2px 3px gray"
|
||||
};
|
||||
if (!UA.isOldIE) {
|
||||
settingDivStyles.backgroundColor = "rgba(0, 0, 0, 0.6)";
|
||||
}
|
||||
else {
|
||||
settingDivStyles.backgroundColor = "#333";
|
||||
}
|
||||
applyStyles(settingDiv, settingDivStyles);
|
||||
container.appendChild(settingDiv);
|
||||
options = options || exports.defaultOptions;
|
||||
var editor = ace.edit(editorDiv);
|
||||
session = editor.getSession();
|
||||
session.setValue(element.value || element.innerHTML);
|
||||
if (isFocused)
|
||||
editor.focus();
|
||||
container.appendChild(settingOpener);
|
||||
setupApi(editor, editorDiv, settingDiv, ace, options);
|
||||
setupSettingPanel(settingDiv, settingOpener, editor);
|
||||
var state = "";
|
||||
event.addListener(settingOpener, "mousemove", function (e) {
|
||||
var rect = this.getBoundingClientRect();
|
||||
var x = e.clientX - rect.left, y = e.clientY - rect.top;
|
||||
if (x + y < (rect.width + rect.height) / 2) {
|
||||
this.style.cursor = "pointer";
|
||||
state = "toggle";
|
||||
}
|
||||
else {
|
||||
state = "resize";
|
||||
this.style.cursor = "nw-resize";
|
||||
}
|
||||
});
|
||||
event.addListener(settingOpener, "mousedown", function (e) {
|
||||
e.preventDefault();
|
||||
if (state == "toggle") {
|
||||
editor.setDisplaySettings();
|
||||
return;
|
||||
}
|
||||
container.style.zIndex = 100000;
|
||||
var rect = container.getBoundingClientRect();
|
||||
var startX = rect.width + rect.left - e.clientX;
|
||||
var startY = rect.height + rect.top - e.clientY;
|
||||
event.capture(settingOpener, function (e) {
|
||||
container.style.width = e.clientX - rect.left + startX + "px";
|
||||
container.style.height = e.clientY - rect.top + startY + "px";
|
||||
editor.resize();
|
||||
}, function () { });
|
||||
});
|
||||
return editor;
|
||||
};
|
||||
function load(url, module, callback) {
|
||||
net.loadScript(url, function () {
|
||||
require([module], callback);
|
||||
});
|
||||
}
|
||||
function setupApi(editor, editorDiv, settingDiv, ace, options) {
|
||||
var session = editor.getSession();
|
||||
var renderer = editor.renderer;
|
||||
function toBool(value) {
|
||||
return value === "true" || value == true;
|
||||
}
|
||||
editor.setDisplaySettings = function (display) {
|
||||
if (display == null)
|
||||
display = settingDiv.style.display == "none";
|
||||
if (display) {
|
||||
settingDiv.style.display = "block";
|
||||
settingDiv.hideButton.focus();
|
||||
editor.on("focus", function onFocus() {
|
||||
editor.removeListener("focus", onFocus);
|
||||
settingDiv.style.display = "none";
|
||||
});
|
||||
}
|
||||
else {
|
||||
editor.focus();
|
||||
}
|
||||
};
|
||||
editor.$setOption = editor.setOption;
|
||||
editor.$getOption = editor.getOption;
|
||||
editor.setOption = function (key, value) {
|
||||
switch (key) {
|
||||
case "mode":
|
||||
editor.$setOption("mode", "ace/mode/" + value);
|
||||
break;
|
||||
case "theme":
|
||||
editor.$setOption("theme", "ace/theme/" + value);
|
||||
break;
|
||||
case "keybindings":
|
||||
switch (value) {
|
||||
case "vim":
|
||||
editor.setKeyboardHandler("ace/keyboard/vim");
|
||||
break;
|
||||
case "emacs":
|
||||
editor.setKeyboardHandler("ace/keyboard/emacs");
|
||||
break;
|
||||
default:
|
||||
editor.setKeyboardHandler(null);
|
||||
}
|
||||
break;
|
||||
case "wrap":
|
||||
case "fontSize":
|
||||
editor.$setOption(key, value);
|
||||
break;
|
||||
default:
|
||||
editor.$setOption(key, toBool(value));
|
||||
}
|
||||
};
|
||||
editor.getOption = function (key) {
|
||||
switch (key) {
|
||||
case "mode":
|
||||
return editor.$getOption("mode").substr("ace/mode/".length);
|
||||
break;
|
||||
case "theme":
|
||||
return editor.$getOption("theme").substr("ace/theme/".length);
|
||||
break;
|
||||
case "keybindings":
|
||||
var value = editor.getKeyboardHandler();
|
||||
switch (value && value.$id) {
|
||||
case "ace/keyboard/vim":
|
||||
return "vim";
|
||||
case "ace/keyboard/emacs":
|
||||
return "emacs";
|
||||
default:
|
||||
return "ace";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return editor.$getOption(key);
|
||||
}
|
||||
};
|
||||
editor.setOptions(options);
|
||||
return editor;
|
||||
}
|
||||
function setupSettingPanel(settingDiv, settingOpener, editor) {
|
||||
var BOOL = null;
|
||||
var desc = {
|
||||
mode: "Mode:",
|
||||
wrap: "Soft Wrap:",
|
||||
theme: "Theme:",
|
||||
fontSize: "Font Size:",
|
||||
showGutter: "Display Gutter:",
|
||||
keybindings: "Keyboard",
|
||||
showPrintMargin: "Show Print Margin:",
|
||||
useSoftTabs: "Use Soft Tabs:",
|
||||
showInvisibles: "Show Invisibles"
|
||||
};
|
||||
var optionValues = {
|
||||
mode: {
|
||||
text: "Plain",
|
||||
javascript: "JavaScript",
|
||||
xml: "XML",
|
||||
html: "HTML",
|
||||
css: "CSS",
|
||||
scss: "SCSS",
|
||||
python: "Python",
|
||||
php: "PHP",
|
||||
java: "Java",
|
||||
ruby: "Ruby",
|
||||
c_cpp: "C/C++",
|
||||
coffee: "CoffeeScript",
|
||||
json: "json",
|
||||
perl: "Perl",
|
||||
clojure: "Clojure",
|
||||
ocaml: "OCaml",
|
||||
csharp: "C#",
|
||||
haxe: "haXe",
|
||||
svg: "SVG",
|
||||
textile: "Textile",
|
||||
groovy: "Groovy",
|
||||
liquid: "Liquid",
|
||||
Scala: "Scala"
|
||||
},
|
||||
theme: {
|
||||
clouds: "Clouds",
|
||||
clouds_midnight: "Clouds Midnight",
|
||||
cobalt: "Cobalt",
|
||||
crimson_editor: "Crimson Editor",
|
||||
dawn: "Dawn",
|
||||
gob: "Green on Black",
|
||||
eclipse: "Eclipse",
|
||||
idle_fingers: "Idle Fingers",
|
||||
kr_theme: "Kr Theme",
|
||||
merbivore: "Merbivore",
|
||||
merbivore_soft: "Merbivore Soft",
|
||||
mono_industrial: "Mono Industrial",
|
||||
monokai: "Monokai",
|
||||
pastel_on_dark: "Pastel On Dark",
|
||||
solarized_dark: "Solarized Dark",
|
||||
solarized_light: "Solarized Light",
|
||||
textmate: "Textmate",
|
||||
twilight: "Twilight",
|
||||
vibrant_ink: "Vibrant Ink"
|
||||
},
|
||||
showGutter: BOOL,
|
||||
fontSize: {
|
||||
"10px": "10px",
|
||||
"11px": "11px",
|
||||
"12px": "12px",
|
||||
"14px": "14px",
|
||||
"16px": "16px"
|
||||
},
|
||||
wrap: {
|
||||
off: "Off",
|
||||
40: "40",
|
||||
80: "80",
|
||||
free: "Free"
|
||||
},
|
||||
keybindings: {
|
||||
ace: "ace",
|
||||
vim: "vim",
|
||||
emacs: "emacs"
|
||||
},
|
||||
showPrintMargin: BOOL,
|
||||
useSoftTabs: BOOL,
|
||||
showInvisibles: BOOL
|
||||
};
|
||||
var table = [];
|
||||
table.push("<table><tr><th>Setting</th><th>Value</th></tr>");
|
||||
function renderOption(builder, option, obj, cValue) {
|
||||
if (!obj) {
|
||||
builder.push("<input type='checkbox' title='", option, "' ", cValue + "" == "true" ? "checked='true'" : "", "'></input>");
|
||||
return;
|
||||
}
|
||||
builder.push("<select title='" + option + "'>");
|
||||
for (var value in obj) {
|
||||
builder.push("<option value='" + value + "' ");
|
||||
if (cValue == value) {
|
||||
builder.push(" selected ");
|
||||
}
|
||||
builder.push(">", obj[value], "</option>");
|
||||
}
|
||||
builder.push("</select>");
|
||||
}
|
||||
for (var option in exports.defaultOptions) {
|
||||
table.push("<tr><td>", desc[option], "</td>");
|
||||
table.push("<td>");
|
||||
renderOption(table, option, optionValues[option], editor.getOption(option));
|
||||
table.push("</td></tr>");
|
||||
}
|
||||
table.push("</table>");
|
||||
settingDiv.innerHTML = table.join("");
|
||||
var onChange = function (e) {
|
||||
var select = e.currentTarget;
|
||||
editor.setOption(select.title, select.value);
|
||||
};
|
||||
var onClick = function (e) {
|
||||
var cb = e.currentTarget;
|
||||
editor.setOption(cb.title, cb.checked);
|
||||
};
|
||||
var selects = settingDiv.getElementsByTagName("select");
|
||||
for (var i = 0; i < selects.length; i++)
|
||||
selects[i].onchange = onChange;
|
||||
var cbs = settingDiv.getElementsByTagName("input");
|
||||
for (var i = 0; i < cbs.length; i++)
|
||||
cbs[i].onclick = onClick;
|
||||
var button = document.createElement("input");
|
||||
button.type = "button";
|
||||
button.value = "Hide";
|
||||
event.addListener(button, "click", function () {
|
||||
editor.setDisplaySettings(false);
|
||||
});
|
||||
settingDiv.appendChild(button);
|
||||
settingDiv.hideButton = button;
|
||||
}
|
||||
exports.defaultOptions = {
|
||||
mode: "javascript",
|
||||
theme: "textmate",
|
||||
wrap: "off",
|
||||
fontSize: "12px",
|
||||
showGutter: "false",
|
||||
keybindings: "ace",
|
||||
showPrintMargin: "false",
|
||||
useSoftTabs: "true",
|
||||
showInvisibles: "false"
|
||||
};
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/textarea"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
71
src/main/resources/static/assets/js/vendor/template/src/ext-themelist.js
vendored
Normal file
71
src/main/resources/static/assets/js/vendor/template/src/ext-themelist.js
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
define("ace/ext/themelist",["require","exports","module"], function(require, exports, module){/**
|
||||
* Generates a list of themes available when ace was built.
|
||||
* @fileOverview Generates a list of themes available when ace was built.
|
||||
* @author <a href="mailto:matthewkastor@gmail.com">
|
||||
* Matthew Christopher Kastor-Inare III </a><br />
|
||||
* ☭ Hial Atropa!! ☭
|
||||
*/
|
||||
"use strict";
|
||||
var themeData = [
|
||||
["Chrome"],
|
||||
["Clouds"],
|
||||
["Crimson Editor"],
|
||||
["Dawn"],
|
||||
["Dreamweaver"],
|
||||
["Eclipse"],
|
||||
["GitHub"],
|
||||
["IPlastic"],
|
||||
["Solarized Light"],
|
||||
["TextMate"],
|
||||
["Tomorrow"],
|
||||
["XCode"],
|
||||
["Kuroir"],
|
||||
["KatzenMilch"],
|
||||
["SQL Server", "sqlserver", "light"],
|
||||
["Ambiance", "ambiance", "dark"],
|
||||
["Chaos", "chaos", "dark"],
|
||||
["Clouds Midnight", "clouds_midnight", "dark"],
|
||||
["Dracula", "", "dark"],
|
||||
["Cobalt", "cobalt", "dark"],
|
||||
["Gruvbox", "gruvbox", "dark"],
|
||||
["Green on Black", "gob", "dark"],
|
||||
["idle Fingers", "idle_fingers", "dark"],
|
||||
["krTheme", "kr_theme", "dark"],
|
||||
["Merbivore", "merbivore", "dark"],
|
||||
["Merbivore Soft", "merbivore_soft", "dark"],
|
||||
["Mono Industrial", "mono_industrial", "dark"],
|
||||
["Monokai", "monokai", "dark"],
|
||||
["Nord Dark", "nord_dark", "dark"],
|
||||
["One Dark", "one_dark", "dark"],
|
||||
["Pastel on dark", "pastel_on_dark", "dark"],
|
||||
["Solarized Dark", "solarized_dark", "dark"],
|
||||
["Terminal", "terminal", "dark"],
|
||||
["Tomorrow Night", "tomorrow_night", "dark"],
|
||||
["Tomorrow Night Blue", "tomorrow_night_blue", "dark"],
|
||||
["Tomorrow Night Bright", "tomorrow_night_bright", "dark"],
|
||||
["Tomorrow Night 80s", "tomorrow_night_eighties", "dark"],
|
||||
["Twilight", "twilight", "dark"],
|
||||
["Vibrant Ink", "vibrant_ink", "dark"]
|
||||
];
|
||||
exports.themesByName = {};
|
||||
exports.themes = themeData.map(function (data) {
|
||||
var name = data[1] || data[0].replace(/ /g, "_").toLowerCase();
|
||||
var theme = {
|
||||
caption: data[0],
|
||||
theme: "ace/theme/" + name,
|
||||
isDark: data[2] == "dark",
|
||||
name: name
|
||||
};
|
||||
exports.themesByName[name] = theme;
|
||||
return theme;
|
||||
});
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/themelist"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
193
src/main/resources/static/assets/js/vendor/template/src/ext-whitespace.js
vendored
Normal file
193
src/main/resources/static/assets/js/vendor/template/src/ext-whitespace.js
vendored
Normal file
@ -0,0 +1,193 @@
|
||||
define("ace/ext/whitespace",["require","exports","module","ace/lib/lang"], function(require, exports, module){"use strict";
|
||||
var lang = require("../lib/lang");
|
||||
exports.$detectIndentation = function (lines, fallback) {
|
||||
var stats = [];
|
||||
var changes = [];
|
||||
var tabIndents = 0;
|
||||
var prevSpaces = 0;
|
||||
var max = Math.min(lines.length, 1000);
|
||||
for (var i = 0; i < max; i++) {
|
||||
var line = lines[i];
|
||||
if (!/^\s*[^*+\-\s]/.test(line))
|
||||
continue;
|
||||
if (line[0] == "\t") {
|
||||
tabIndents++;
|
||||
prevSpaces = -Number.MAX_VALUE;
|
||||
}
|
||||
else {
|
||||
var spaces = line.match(/^ */)[0].length;
|
||||
if (spaces && line[spaces] != "\t") {
|
||||
var diff = spaces - prevSpaces;
|
||||
if (diff > 0 && !(prevSpaces % diff) && !(spaces % diff))
|
||||
changes[diff] = (changes[diff] || 0) + 1;
|
||||
stats[spaces] = (stats[spaces] || 0) + 1;
|
||||
}
|
||||
prevSpaces = spaces;
|
||||
}
|
||||
while (i < max && line[line.length - 1] == "\\")
|
||||
line = lines[i++];
|
||||
}
|
||||
function getScore(indent) {
|
||||
var score = 0;
|
||||
for (var i = indent; i < stats.length; i += indent)
|
||||
score += stats[i] || 0;
|
||||
return score;
|
||||
}
|
||||
var changesTotal = changes.reduce(function (a, b) { return a + b; }, 0);
|
||||
var first = { score: 0, length: 0 };
|
||||
var spaceIndents = 0;
|
||||
for (var i = 1; i < 12; i++) {
|
||||
var score = getScore(i);
|
||||
if (i == 1) {
|
||||
spaceIndents = score;
|
||||
score = stats[1] ? 0.9 : 0.8;
|
||||
if (!stats.length)
|
||||
score = 0;
|
||||
}
|
||||
else
|
||||
score /= spaceIndents;
|
||||
if (changes[i])
|
||||
score += changes[i] / changesTotal;
|
||||
if (score > first.score)
|
||||
first = { score: score, length: i };
|
||||
}
|
||||
if (first.score && first.score > 1.4)
|
||||
var tabLength = first.length;
|
||||
if (tabIndents > spaceIndents + 1) {
|
||||
if (tabLength == 1 || spaceIndents < tabIndents / 4 || first.score < 1.8)
|
||||
tabLength = undefined;
|
||||
return { ch: "\t", length: tabLength };
|
||||
}
|
||||
if (spaceIndents > tabIndents + 1)
|
||||
return { ch: " ", length: tabLength };
|
||||
};
|
||||
exports.detectIndentation = function (session) {
|
||||
var lines = session.getLines(0, 1000);
|
||||
var indent = exports.$detectIndentation(lines) || {};
|
||||
if (indent.ch)
|
||||
session.setUseSoftTabs(indent.ch == " ");
|
||||
if (indent.length)
|
||||
session.setTabSize(indent.length);
|
||||
return indent;
|
||||
};
|
||||
exports.trimTrailingSpace = function (session, options) {
|
||||
var doc = session.getDocument();
|
||||
var lines = doc.getAllLines();
|
||||
var min = options && options.trimEmpty ? -1 : 0;
|
||||
var cursors = [], ci = -1;
|
||||
if (options && options.keepCursorPosition) {
|
||||
if (session.selection.rangeCount) {
|
||||
session.selection.rangeList.ranges.forEach(function (x, i, ranges) {
|
||||
var next = ranges[i + 1];
|
||||
if (next && next.cursor.row == x.cursor.row)
|
||||
return;
|
||||
cursors.push(x.cursor);
|
||||
});
|
||||
}
|
||||
else {
|
||||
cursors.push(session.selection.getCursor());
|
||||
}
|
||||
ci = 0;
|
||||
}
|
||||
var cursorRow = cursors[ci] && cursors[ci].row;
|
||||
for (var i = 0, l = lines.length; i < l; i++) {
|
||||
var line = lines[i];
|
||||
var index = line.search(/\s+$/);
|
||||
if (i == cursorRow) {
|
||||
if (index < cursors[ci].column && index > min)
|
||||
index = cursors[ci].column;
|
||||
ci++;
|
||||
cursorRow = cursors[ci] ? cursors[ci].row : -1;
|
||||
}
|
||||
if (index > min)
|
||||
doc.removeInLine(i, index, line.length);
|
||||
}
|
||||
};
|
||||
exports.convertIndentation = function (session, ch, len) {
|
||||
var oldCh = session.getTabString()[0];
|
||||
var oldLen = session.getTabSize();
|
||||
if (!len)
|
||||
len = oldLen;
|
||||
if (!ch)
|
||||
ch = oldCh;
|
||||
var tab = ch == "\t" ? ch : lang.stringRepeat(ch, len);
|
||||
var doc = session.doc;
|
||||
var lines = doc.getAllLines();
|
||||
var cache = {};
|
||||
var spaceCache = {};
|
||||
for (var i = 0, l = lines.length; i < l; i++) {
|
||||
var line = lines[i];
|
||||
var match = line.match(/^\s*/)[0];
|
||||
if (match) {
|
||||
var w = session.$getStringScreenWidth(match)[0];
|
||||
var tabCount = Math.floor(w / oldLen);
|
||||
var reminder = w % oldLen;
|
||||
var toInsert = cache[tabCount] || (cache[tabCount] = lang.stringRepeat(tab, tabCount));
|
||||
toInsert += spaceCache[reminder] || (spaceCache[reminder] = lang.stringRepeat(" ", reminder));
|
||||
if (toInsert != match) {
|
||||
doc.removeInLine(i, 0, match.length);
|
||||
doc.insertInLine({ row: i, column: 0 }, toInsert);
|
||||
}
|
||||
}
|
||||
}
|
||||
session.setTabSize(len);
|
||||
session.setUseSoftTabs(ch == " ");
|
||||
};
|
||||
exports.$parseStringArg = function (text) {
|
||||
var indent = {};
|
||||
if (/t/.test(text))
|
||||
indent.ch = "\t";
|
||||
else if (/s/.test(text))
|
||||
indent.ch = " ";
|
||||
var m = text.match(/\d+/);
|
||||
if (m)
|
||||
indent.length = parseInt(m[0], 10);
|
||||
return indent;
|
||||
};
|
||||
exports.$parseArg = function (arg) {
|
||||
if (!arg)
|
||||
return {};
|
||||
if (typeof arg == "string")
|
||||
return exports.$parseStringArg(arg);
|
||||
if (typeof arg.text == "string")
|
||||
return exports.$parseStringArg(arg.text);
|
||||
return arg;
|
||||
};
|
||||
exports.commands = [{
|
||||
name: "detectIndentation",
|
||||
description: "Detect indentation from content",
|
||||
exec: function (editor) {
|
||||
exports.detectIndentation(editor.session);
|
||||
}
|
||||
}, {
|
||||
name: "trimTrailingSpace",
|
||||
description: "Trim trailing whitespace",
|
||||
exec: function (editor, args) {
|
||||
exports.trimTrailingSpace(editor.session, args);
|
||||
}
|
||||
}, {
|
||||
name: "convertIndentation",
|
||||
description: "Convert indentation to ...",
|
||||
exec: function (editor, arg) {
|
||||
var indent = exports.$parseArg(arg);
|
||||
exports.convertIndentation(editor.session, indent.ch, indent.length);
|
||||
}
|
||||
}, {
|
||||
name: "setIndentation",
|
||||
description: "Set indentation",
|
||||
exec: function (editor, arg) {
|
||||
var indent = exports.$parseArg(arg);
|
||||
indent.length && editor.session.setTabSize(indent.length);
|
||||
indent.ch && editor.session.setUseSoftTabs(indent.ch == " ");
|
||||
}
|
||||
}];
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/ext/whitespace"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
17
src/main/resources/static/assets/js/vendor/template/src/snippets/edifact.js
vendored
Normal file
17
src/main/resources/static/assets/js/vendor/template/src/snippets/edifact.js
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
define("ace/snippets/edifact.snippets",["require","exports","module"], function(require, exports, module){module.exports = "## Access Modifiers\nsnippet u\n\tUN\nsnippet un\n\tUNB\nsnippet pr\n\tprivate\n##\n## Annotations\nsnippet before\n\t@Before\n\tstatic void ${1:intercept}(${2:args}) { ${3} }\nsnippet mm\n\t@ManyToMany\n\t${1}\nsnippet mo\n\t@ManyToOne\n\t${1}\nsnippet om\n\t@OneToMany${1:(cascade=CascadeType.ALL)}\n\t${2}\nsnippet oo\n\t@OneToOne\n\t${1}\n##\n## Basic Java packages and import\nsnippet im\n\timport\nsnippet j.b\n\tjava.beans.\nsnippet j.i\n\tjava.io.\nsnippet j.m\n\tjava.math.\nsnippet j.n\n\tjava.net.\nsnippet j.u\n\tjava.util.\n##\n## Class\nsnippet cl\n\tclass ${1:`Filename(\"\", \"untitled\")`} ${2}\nsnippet in\n\tinterface ${1:`Filename(\"\", \"untitled\")`} ${2:extends Parent}${3}\nsnippet tc\n\tpublic class ${1:`Filename()`} extends ${2:TestCase}\n##\n## Class Enhancements\nsnippet ext\n\textends \nsnippet imp\n\timplements\n##\n## Comments\nsnippet /*\n\t/*\n\t * ${1}\n\t */\n##\n## Constants\nsnippet co\n\tstatic public final ${1:String} ${2:var} = ${3};${4}\nsnippet cos\n\tstatic public final String ${1:var} = \"${2}\";${3}\n##\n## Control Statements\nsnippet case\n\tcase ${1}:\n\t\t${2}\nsnippet def\n\tdefault:\n\t\t${2}\nsnippet el\n\telse\nsnippet elif\n\telse if (${1}) ${2}\nsnippet if\n\tif (${1}) ${2}\nsnippet sw\n\tswitch (${1}) {\n\t\t${2}\n\t}\n##\n## Create a Method\nsnippet m\n\t${1:void} ${2:method}(${3}) ${4:throws }${5}\n##\n## Create a Variable\nsnippet v\n\t${1:String} ${2:var}${3: = null}${4};${5}\n##\n## Enhancements to Methods, variables, classes, etc.\nsnippet ab\n\tabstract\nsnippet fi\n\tfinal\nsnippet st\n\tstatic\nsnippet sy\n\tsynchronized\n##\n## Error Methods\nsnippet err\n\tSystem.err.print(\"${1:Message}\");\nsnippet errf\n\tSystem.err.printf(\"${1:Message}\", ${2:exception});\nsnippet errln\n\tSystem.err.println(\"${1:Message}\");\n##\n## Exception Handling\nsnippet as\n\tassert ${1:test} : \"${2:Failure message}\";${3}\nsnippet ca\n\tcatch(${1:Exception} ${2:e}) ${3}\nsnippet thr\n\tthrow\nsnippet ths\n\tthrows\nsnippet try\n\ttry {\n\t\t${3}\n\t} catch(${1:Exception} ${2:e}) {\n\t}\nsnippet tryf\n\ttry {\n\t\t${3}\n\t} catch(${1:Exception} ${2:e}) {\n\t} finally {\n\t}\n##\n## Find Methods\nsnippet findall\n\tList<${1:listName}> ${2:items} = ${1}.findAll();${3}\nsnippet findbyid\n\t${1:var} ${2:item} = ${1}.findById(${3});${4}\n##\n## Javadocs\nsnippet /**\n\t/**\n\t * ${1}\n\t */\nsnippet @au\n\t@author `system(\"grep \\`id -un\\` /etc/passwd | cut -d \\\":\\\" -f5 | cut -d \\\",\\\" -f1\")`\nsnippet @br\n\t@brief ${1:Description}\nsnippet @fi\n\t@file ${1:`Filename()`}.java\nsnippet @pa\n\t@param ${1:param}\nsnippet @re\n\t@return ${1:param}\n##\n## Logger Methods\nsnippet debug\n\tLogger.debug(${1:param});${2}\nsnippet error\n\tLogger.error(${1:param});${2}\nsnippet info\n\tLogger.info(${1:param});${2}\nsnippet warn\n\tLogger.warn(${1:param});${2}\n##\n## Loops\nsnippet enfor\n\tfor (${1} : ${2}) ${3}\nsnippet for\n\tfor (${1}; ${2}; ${3}) ${4}\nsnippet wh\n\twhile (${1}) ${2}\n##\n## Main method\nsnippet main\n\tpublic static void main (String[] args) {\n\t\t${1:/* code */}\n\t}\n##\n## Print Methods\nsnippet print\n\tSystem.out.print(\"${1:Message}\");\nsnippet printf\n\tSystem.out.printf(\"${1:Message}\", ${2:args});\nsnippet println\n\tSystem.out.println(${1});\n##\n## Render Methods\nsnippet ren\n\trender(${1:param});${2}\nsnippet rena\n\trenderArgs.put(\"${1}\", ${2});${3}\nsnippet renb\n\trenderBinary(${1:param});${2}\nsnippet renj\n\trenderJSON(${1:param});${2}\nsnippet renx\n\trenderXml(${1:param});${2}\n##\n## Setter and Getter Methods\nsnippet set\n\t${1:public} void set${3:}(${2:String} ${4:}){\n\t\tthis.$4 = $4;\n\t}\nsnippet get\n\t${1:public} ${2:String} get${3:}(){\n\t\treturn this.${4:};\n\t}\n##\n## Terminate Methods or Loops\nsnippet re\n\treturn\nsnippet br\n\tbreak;\n##\n## Test Methods\nsnippet t\n\tpublic void test${1:Name}() throws Exception {\n\t\t${2}\n\t}\nsnippet test\n\t@Test\n\tpublic void test${1:Name}() throws Exception {\n\t\t${2}\n\t}\n##\n## Utils\nsnippet Sc\n\tScanner\n##\n## Miscellaneous\nsnippet action\n\tpublic static void ${1:index}(${2:args}) { ${3} }\nsnippet rnf\n\tnotFound(${1:param});${2}\nsnippet rnfin\n\tnotFoundIfNull(${1:param});${2}\nsnippet rr\n\tredirect(${1:param});${2}\nsnippet ru\n\tunauthorized(${1:param});${2}\nsnippet unless\n\t(unless=${1:param});${2}\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/snippets/edifact",["require","exports","module","ace/snippets/edifact.snippets"], function(require, exports, module){"use strict";
|
||||
exports.snippetText = require("./edifact.snippets");
|
||||
exports.scope = "edifact";
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/snippets/edifact"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/eiffel.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/eiffel.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/eiffel"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/ejs.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/ejs.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/ejs"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/elixir.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/elixir.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/elixir"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/elm.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/elm.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/elm"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
17
src/main/resources/static/assets/js/vendor/template/src/snippets/erlang.js
vendored
Normal file
17
src/main/resources/static/assets/js/vendor/template/src/snippets/erlang.js
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
define("ace/snippets/erlang.snippets",["require","exports","module"], function(require, exports, module){module.exports = "# module and export all\nsnippet mod\n\t-module(${1:`Filename('', 'my')`}).\n\t\n\t-compile([export_all]).\n\t\n\tstart() ->\n\t ${2}\n\t\n\tstop() ->\n\t ok.\n# define directive\nsnippet def\n\t-define(${1:macro}, ${2:body}).${3}\n# export directive\nsnippet exp\n\t-export([${1:function}/${2:arity}]).\n# include directive\nsnippet inc\n\t-include(\"${1:file}\").${2}\n# behavior directive\nsnippet beh\n\t-behaviour(${1:behaviour}).${2}\n# if expression\nsnippet if\n\tif\n\t ${1:guard} ->\n\t ${2:body}\n\tend\n# case expression\nsnippet case\n\tcase ${1:expression} of\n\t ${2:pattern} ->\n\t ${3:body};\n\tend\n# anonymous function\nsnippet fun\n\tfun (${1:Parameters}) -> ${2:body} end${3}\n# try...catch\nsnippet try\n\ttry\n\t ${1}\n\tcatch\n\t ${2:_:_} -> ${3:got_some_exception}\n\tend\n# record directive\nsnippet rec\n\t-record(${1:record}, {\n\t ${2:field}=${3:value}}).${4}\n# todo comment\nsnippet todo\n\t%% TODO: ${1}\n## Snippets below (starting with '%') are in EDoc format.\n## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\n# doc comment\nsnippet %d\n\t%% @doc ${1}\n# end of doc comment\nsnippet %e\n\t%% @end\n# specification comment\nsnippet %s\n\t%% @spec ${1}\n# private function marker\nsnippet %p\n\t%% @private\n# OTP application\nsnippet application\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(application).\n\n\t-export([start/2, stop/1]).\n\n\tstart(_Type, _StartArgs) ->\n\t case ${2:root_supervisor}:start_link() of\n\t {ok, Pid} ->\n\t {ok, Pid};\n\t Other ->\n\t\t {error, Other}\n\t end.\n\n\tstop(_State) ->\n\t ok.\t\n# OTP supervisor\nsnippet supervisor\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(supervisor).\n\n\t%% API\n\t-export([start_link/0]).\n\n\t%% Supervisor callbacks\n\t-export([init/1]).\n\n\t-define(SERVER, ?MODULE).\n\n\tstart_link() ->\n\t supervisor:start_link({local, ?SERVER}, ?MODULE, []).\n\n\tinit([]) ->\n\t Server = {${2:my_server}, {$2, start_link, []},\n\t permanent, 2000, worker, [$2]},\n\t Children = [Server],\n\t RestartStrategy = {one_for_one, 0, 1},\n\t {ok, {RestartStrategy, Children}}.\n# OTP gen_server\nsnippet gen_server\n\t-module(${1:`Filename('', 'my')`}).\n\n\t-behaviour(gen_server).\n\n\t%% API\n\t-export([\n\t start_link/0\n\t ]).\n\n\t%% gen_server callbacks\n\t-export([init/1, handle_call/3, handle_cast/2, handle_info/2,\n\t terminate/2, code_change/3]).\n\n\t-define(SERVER, ?MODULE).\n\n\t-record(state, {}).\n\n\t%%%===================================================================\n\t%%% API\n\t%%%===================================================================\n\n\tstart_link() ->\n\t gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\n\n\t%%%===================================================================\n\t%%% gen_server callbacks\n\t%%%===================================================================\n\n\tinit([]) ->\n\t {ok, #state{}}.\n\n\thandle_call(_Request, _From, State) ->\n\t Reply = ok,\n\t {reply, Reply, State}.\n\n\thandle_cast(_Msg, State) ->\n\t {noreply, State}.\n\n\thandle_info(_Info, State) ->\n\t {noreply, State}.\n\n\tterminate(_Reason, _State) ->\n\t ok.\n\n\tcode_change(_OldVsn, State, _Extra) ->\n\t {ok, State}.\n\n\t%%%===================================================================\n\t%%% Internal functions\n\t%%%===================================================================\n\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/snippets/erlang",["require","exports","module","ace/snippets/erlang.snippets"], function(require, exports, module){"use strict";
|
||||
exports.snippetText = require("./erlang.snippets");
|
||||
exports.scope = "erlang";
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/snippets/erlang"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/forth.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/forth.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/forth"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/fortran.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/fortran.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/fortran"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/fsharp.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/fsharp.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/fsharp"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
17
src/main/resources/static/assets/js/vendor/template/src/snippets/fsl.js
vendored
Normal file
17
src/main/resources/static/assets/js/vendor/template/src/snippets/fsl.js
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
define("ace/snippets/fsl.snippets",["require","exports","module"], function(require, exports, module){module.exports = "snippet header\n\tmachine_name : \"\";\n\tmachine_author : \"\";\n\tmachine_license : MIT;\n\tmachine_comment : \"\";\n\tmachine_language : en;\n\tmachine_version : 1.0.0;\n\tfsl_version : 1.0.0;\n\tstart_states : [];\n";
|
||||
|
||||
});
|
||||
|
||||
define("ace/snippets/fsl",["require","exports","module","ace/snippets/fsl.snippets"], function(require, exports, module){"use strict";
|
||||
exports.snippetText = require("./fsl.snippets");
|
||||
exports.scope = "fsl";
|
||||
|
||||
});
|
||||
(function() {
|
||||
window.require(["ace/snippets/fsl"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/ftl.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/ftl.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/ftl"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/gcode.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/gcode.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/gcode"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
10
src/main/resources/static/assets/js/vendor/template/src/snippets/gherkin.js
vendored
Normal file
10
src/main/resources/static/assets/js/vendor/template/src/snippets/gherkin.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
;
|
||||
(function() {
|
||||
window.require(["ace/snippets/gherkin"], function(m) {
|
||||
if (typeof module == "object" && typeof exports == "object" && module) {
|
||||
module.exports = m;
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
Loading…
Reference in New Issue
Block a user