update package
This commit is contained in:
parent
6c6f2a8f1c
commit
2d4b1ebe70
5 changed files with 313 additions and 236 deletions
|
|
@ -4156,6 +4156,7 @@ var Editor =function(renderer, session) {
|
||||||
this.session.removeEventListener("change", this.$onDocumentChange);
|
this.session.removeEventListener("change", this.$onDocumentChange);
|
||||||
this.session.removeEventListener("changeMode", this.$onDocumentModeChange);
|
this.session.removeEventListener("changeMode", this.$onDocumentModeChange);
|
||||||
this.session.removeEventListener("changeTabSize", this.$onDocumentChangeTabSize);
|
this.session.removeEventListener("changeTabSize", this.$onDocumentChangeTabSize);
|
||||||
|
this.session.removeEventListener("changeWrapLimit", this.$onDocumentChangeWrapLimit);
|
||||||
this.session.removeEventListener("changeWrapMode", this.$onDocumentChangeWrapMode);
|
this.session.removeEventListener("changeWrapMode", this.$onDocumentChangeWrapMode);
|
||||||
this.session.removeEventListener("changeBreakpoint", this.$onDocumentChangeBreakpoint);
|
this.session.removeEventListener("changeBreakpoint", this.$onDocumentChangeBreakpoint);
|
||||||
this.session.removeEventListener("changeAnnotation", this.$onDocumentChangeAnnotation);
|
this.session.removeEventListener("changeAnnotation", this.$onDocumentChangeAnnotation);
|
||||||
|
|
@ -4179,6 +4180,9 @@ var Editor =function(renderer, session) {
|
||||||
this.$onDocumentChangeTabSize = this.renderer.updateText.bind(this.renderer);
|
this.$onDocumentChangeTabSize = this.renderer.updateText.bind(this.renderer);
|
||||||
session.addEventListener("changeTabSize", this.$onDocumentChangeTabSize);
|
session.addEventListener("changeTabSize", this.$onDocumentChangeTabSize);
|
||||||
|
|
||||||
|
this.$onDocumentChangeWrapLimit = this.onDocumentChangeWrapLimit.bind(this);
|
||||||
|
session.addEventListener("changeWrapLimit", this.$onDocumentChangeWrapLimit);
|
||||||
|
|
||||||
this.$onDocumentChangeWrapMode = this.onDocumentChangeWrapMode.bind(this);
|
this.$onDocumentChangeWrapMode = this.onDocumentChangeWrapMode.bind(this);
|
||||||
session.addEventListener("changeWrapMode", this.$onDocumentChangeWrapMode);
|
session.addEventListener("changeWrapMode", this.$onDocumentChangeWrapMode);
|
||||||
|
|
||||||
|
|
@ -4378,11 +4382,15 @@ var Editor =function(renderer, session) {
|
||||||
this.renderer.setTokenizer(this.bgTokenizer);
|
this.renderer.setTokenizer(this.bgTokenizer);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.onDocumentChangeWrapMode = function() {
|
this.onDocumentChangeWrapLimit = function() {
|
||||||
this.renderer.updateCursor(this.getCursorPosition(), this.$overwrite);
|
this.renderer.updateCursor(this.getCursorPosition(), this.$overwrite);
|
||||||
this.renderer.updateFull();
|
this.renderer.updateFull();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.onDocumentChangeWrapMode = function() {
|
||||||
|
this.renderer.onResize(true);
|
||||||
|
};
|
||||||
|
|
||||||
this.getCopyText = function() {
|
this.getCopyText = function() {
|
||||||
if (!this.selection.isEmpty()) {
|
if (!this.selection.isEmpty()) {
|
||||||
return this.session.getTextRange(this.getSelectionRange());
|
return this.session.getTextRange(this.getSelectionRange());
|
||||||
|
|
@ -5057,6 +5065,7 @@ define('pilot/event', function(require, exports, module) {
|
||||||
|
|
||||||
var keys = require("pilot/keys");
|
var keys = require("pilot/keys");
|
||||||
var useragent = require("pilot/useragent");
|
var useragent = require("pilot/useragent");
|
||||||
|
var dom = require("pilot/dom");
|
||||||
|
|
||||||
exports.addListener = function(elem, type, callback) {
|
exports.addListener = function(elem, type, callback) {
|
||||||
if (elem.addEventListener) {
|
if (elem.addEventListener) {
|
||||||
|
|
@ -5104,9 +5113,8 @@ exports.preventDefault = function(e) {
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.getDocumentX = function(e) {
|
exports.getDocumentX = function(e) {
|
||||||
if (e.clientX) {
|
if (e.clientX) {
|
||||||
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
|
return e.clientX + dom.getPageScrollLeft();
|
||||||
return e.clientX + scrollLeft;
|
|
||||||
} else {
|
} else {
|
||||||
return e.pageX;
|
return e.pageX;
|
||||||
}
|
}
|
||||||
|
|
@ -5114,8 +5122,7 @@ exports.getDocumentX = function(e) {
|
||||||
|
|
||||||
exports.getDocumentY = function(e) {
|
exports.getDocumentY = function(e) {
|
||||||
if (e.clientY) {
|
if (e.clientY) {
|
||||||
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
|
return e.clientY + dom.getPageScrollTop();
|
||||||
return e.clientY + scrollTop;
|
|
||||||
} else {
|
} else {
|
||||||
return e.pageY;
|
return e.pageY;
|
||||||
}
|
}
|
||||||
|
|
@ -5436,6 +5443,243 @@ var Keys = (function() {
|
||||||
})();
|
})();
|
||||||
oop.mixin(exports, Keys);
|
oop.mixin(exports, Keys);
|
||||||
|
|
||||||
|
});
|
||||||
|
/* ***** BEGIN LICENSE BLOCK *****
|
||||||
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the Mozilla Public License Version
|
||||||
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
* http://www.mozilla.org/MPL/
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||||
|
* for the specific language governing rights and limitations under the
|
||||||
|
* License.
|
||||||
|
*
|
||||||
|
* The Original Code is Ajax.org Code Editor (ACE).
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is
|
||||||
|
* Ajax.org B.V.
|
||||||
|
* Portions created by the Initial Developer are Copyright (C) 2010
|
||||||
|
* the Initial Developer. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
* Fabian Jakobs <fabian AT ajax DOT org>
|
||||||
|
*
|
||||||
|
* Alternatively, the contents of this file may be used under the terms of
|
||||||
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||||
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||||
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||||
|
* of those above. If you wish to allow use of your version of this file only
|
||||||
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||||
|
* use your version of this file under the terms of the MPL, indicate your
|
||||||
|
* decision by deleting the provisions above and replace them with the notice
|
||||||
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||||
|
* the provisions above, a recipient may use your version of this file under
|
||||||
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||||
|
*
|
||||||
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
|
define('pilot/dom', function(require, exports, module) {
|
||||||
|
|
||||||
|
exports.setText = function(elem, text) {
|
||||||
|
if (elem.innerText !== undefined) {
|
||||||
|
elem.innerText = text;
|
||||||
|
}
|
||||||
|
if (elem.textContent !== undefined) {
|
||||||
|
elem.textContent = text;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.hasCssClass = function(el, name) {
|
||||||
|
var classes = el.className.split(/\s+/g);
|
||||||
|
return classes.indexOf(name) !== -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a CSS class to the list of classes on the given node
|
||||||
|
*/
|
||||||
|
exports.addCssClass = function(el, name) {
|
||||||
|
if (!exports.hasCssClass(el, name)) {
|
||||||
|
el.className += " " + name;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add or remove a CSS class from the list of classes on the given node
|
||||||
|
* depending on the value of <tt>include</tt>
|
||||||
|
*/
|
||||||
|
exports.setCssClass = function(node, className, include) {
|
||||||
|
if (include) {
|
||||||
|
exports.addCssClass(node, className);
|
||||||
|
} else {
|
||||||
|
exports.removeCssClass(node, className);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a CSS class from the list of classes on the given node
|
||||||
|
*/
|
||||||
|
exports.removeCssClass = function(el, name) {
|
||||||
|
var classes = el.className.split(/\s+/g);
|
||||||
|
while (true) {
|
||||||
|
var index = classes.indexOf(name);
|
||||||
|
if (index == -1) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
classes.splice(index, 1);
|
||||||
|
}
|
||||||
|
el.className = classes.join(" ");
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.importCssString = function(cssText, doc){
|
||||||
|
doc = doc || document;
|
||||||
|
|
||||||
|
if (doc.createStyleSheet) {
|
||||||
|
var sheet = doc.createStyleSheet();
|
||||||
|
sheet.cssText = cssText;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var style = doc.createElement("style");
|
||||||
|
style.appendChild(doc.createTextNode(cssText));
|
||||||
|
doc.getElementsByTagName("head")[0].appendChild(style);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getInnerWidth = function(element) {
|
||||||
|
return (parseInt(exports.computedStyle(element, "paddingLeft"))
|
||||||
|
+ parseInt(exports.computedStyle(element, "paddingRight")) + element.clientWidth);
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getInnerHeight = function(element) {
|
||||||
|
return (parseInt(exports.computedStyle(element, "paddingTop"))
|
||||||
|
+ parseInt(exports.computedStyle(element, "paddingBottom")) + element.clientHeight);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (window.pageYOffset !== undefined) {
|
||||||
|
exports.getPageScrollTop = function() {
|
||||||
|
return window.pageYOffset;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getPageScrollLeft = function() {
|
||||||
|
return window.pageXOffset;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
exports.getPageScrollTop = function() {
|
||||||
|
return ocument.body.scrollTop;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getPageScrollLeft = function() {
|
||||||
|
return ocument.body.scrollLeft;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.computedStyle = function(element, style) {
|
||||||
|
if (window.getComputedStyle) {
|
||||||
|
return (window.getComputedStyle(element, "") || {})[style] || "";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return element.currentStyle[style];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.scrollbarWidth = function() {
|
||||||
|
|
||||||
|
var inner = document.createElement('p');
|
||||||
|
inner.style.width = "100%";
|
||||||
|
inner.style.height = "200px";
|
||||||
|
|
||||||
|
var outer = document.createElement("div");
|
||||||
|
var style = outer.style;
|
||||||
|
|
||||||
|
style.position = "absolute";
|
||||||
|
style.left = "-10000px";
|
||||||
|
style.overflow = "hidden";
|
||||||
|
style.width = "200px";
|
||||||
|
style.height = "150px";
|
||||||
|
|
||||||
|
outer.appendChild(inner);
|
||||||
|
document.body.appendChild(outer);
|
||||||
|
var noScrollbar = inner.offsetWidth;
|
||||||
|
|
||||||
|
style.overflow = "scroll";
|
||||||
|
var withScrollbar = inner.offsetWidth;
|
||||||
|
|
||||||
|
if (noScrollbar == withScrollbar) {
|
||||||
|
withScrollbar = outer.clientWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.body.removeChild(outer);
|
||||||
|
|
||||||
|
return noScrollbar-withScrollbar;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Optimized set innerHTML. This is faster than plain innerHTML if the element
|
||||||
|
* already contains a lot of child elements.
|
||||||
|
*
|
||||||
|
* See http://blog.stevenlevithan.com/archives/faster-than-innerhtml for details
|
||||||
|
*/
|
||||||
|
exports.setInnerHtml = function(el, innerHtml) {
|
||||||
|
var element = el.cloneNode(false);//document.createElement("div");
|
||||||
|
element.innerHTML = innerHtml;
|
||||||
|
el.parentNode.replaceChild(element, el);
|
||||||
|
return element;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.setInnerText = function(el, innerText) {
|
||||||
|
if ("textContent" in document.body)
|
||||||
|
el.textContent = innerText;
|
||||||
|
else
|
||||||
|
el.innerText = innerText;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getInnerText = function(el) {
|
||||||
|
if ("textContent" in document.body)
|
||||||
|
return el.textContent;
|
||||||
|
else
|
||||||
|
return el.innerText;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getParentWindow = function(document) {
|
||||||
|
return document.defaultView || document.parentWindow;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getSelectionStart = function(textarea) {
|
||||||
|
// TODO IE
|
||||||
|
var start;
|
||||||
|
try {
|
||||||
|
start = textarea.selectionStart || 0;
|
||||||
|
} catch (e) {
|
||||||
|
start = 0;
|
||||||
|
}
|
||||||
|
return start;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.setSelectionStart = function(textarea, start) {
|
||||||
|
// TODO IE
|
||||||
|
return textarea.selectionStart = start;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getSelectionEnd = function(textarea) {
|
||||||
|
// TODO IE
|
||||||
|
var end;
|
||||||
|
try {
|
||||||
|
end = textarea.selectionEnd || 0;
|
||||||
|
} catch (e) {
|
||||||
|
end = 0;
|
||||||
|
}
|
||||||
|
return end;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.setSelectionEnd = function(textarea, end) {
|
||||||
|
// TODO IE
|
||||||
|
return textarea.selectionEnd = end;
|
||||||
|
};
|
||||||
|
|
||||||
});
|
});
|
||||||
/* ***** BEGIN LICENSE BLOCK *****
|
/* ***** BEGIN LICENSE BLOCK *****
|
||||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||||
|
|
@ -7135,6 +7379,10 @@ var EditSession = function(text, mode) {
|
||||||
// WRAPMODE
|
// WRAPMODE
|
||||||
this.$wrapLimit = 80;
|
this.$wrapLimit = 80;
|
||||||
this.$useWrapMode = false;
|
this.$useWrapMode = false;
|
||||||
|
this.$wrapLimitRange = {
|
||||||
|
min : null,
|
||||||
|
max : null
|
||||||
|
};
|
||||||
|
|
||||||
this.setUseWrapMode = function(useWrapMode) {
|
this.setUseWrapMode = function(useWrapMode) {
|
||||||
if (useWrapMode != this.$useWrapMode) {
|
if (useWrapMode != this.$useWrapMode) {
|
||||||
|
|
@ -7159,21 +7407,61 @@ var EditSession = function(text, mode) {
|
||||||
return this.$useWrapMode;
|
return this.$useWrapMode;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setWrapLimit = function(wrapLimit) {
|
// Allow the wrap limit to move freely between min and max. Either
|
||||||
if (wrapLimit != this.$wrapLimit) {
|
// parameter can be null to allow the wrap limit to be unconstrained
|
||||||
this.$wrapLimit = wrapLimit;
|
// in that direction. Or set both parameters to the same number to pin
|
||||||
|
// the limit to that value.
|
||||||
|
this.setWrapLimitRange = function(min, max) {
|
||||||
|
if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {
|
||||||
|
this.$wrapLimitRange.min = min;
|
||||||
|
this.$wrapLimitRange.max = max;
|
||||||
this.$modified = true;
|
this.$modified = true;
|
||||||
if (this.$useWrapMode) {
|
// This will force a recalculation of the wrap limit
|
||||||
this.$updateWrapData(0, this.getLength() - 1);
|
|
||||||
}
|
|
||||||
this._dispatchEvent("changeWrapMode");
|
this._dispatchEvent("changeWrapMode");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// This should generally only be called by the renderer when a resize
|
||||||
|
// is detected.
|
||||||
|
this.adjustWrapLimit = function(desiredLimit) {
|
||||||
|
var wrapLimit = this.$constrainWrapLimit(desiredLimit);
|
||||||
|
if (wrapLimit != this.$wrapLimit && wrapLimit > 0) {
|
||||||
|
this.$wrapLimit = wrapLimit;
|
||||||
|
this.$modified = true;
|
||||||
|
if (this.$useWrapMode) {
|
||||||
|
this.$updateWrapData(0, this.getLength() - 1);
|
||||||
|
this._dispatchEvent("changeWrapLimit");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$constrainWrapLimit = function(wrapLimit) {
|
||||||
|
var min = this.$wrapLimitRange.min;
|
||||||
|
if (min)
|
||||||
|
wrapLimit = Math.max(min, wrapLimit);
|
||||||
|
|
||||||
|
var max = this.$wrapLimitRange.max;
|
||||||
|
if (max)
|
||||||
|
wrapLimit = Math.min(max, wrapLimit);
|
||||||
|
|
||||||
|
// What would a limit of 0 even mean?
|
||||||
|
return Math.max(1, wrapLimit);
|
||||||
|
};
|
||||||
|
|
||||||
this.getWrapLimit = function() {
|
this.getWrapLimit = function() {
|
||||||
return this.$wrapLimit;
|
return this.$wrapLimit;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.getWrapLimitRange = function() {
|
||||||
|
// Avoid unexpected mutation by returning a copy
|
||||||
|
return {
|
||||||
|
min : this.$wrapLimitRange.min,
|
||||||
|
max : this.$wrapLimitRange.max
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
this.$updateWrapDataOnChange = function(e) {
|
this.$updateWrapDataOnChange = function(e) {
|
||||||
if (!this.$useWrapMode) {
|
if (!this.$useWrapMode) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -9631,224 +9919,6 @@ define('ace/theme/textmate', function(require, exports, module) {
|
||||||
*
|
*
|
||||||
* ***** END LICENSE BLOCK ***** */
|
* ***** END LICENSE BLOCK ***** */
|
||||||
|
|
||||||
define('pilot/dom', function(require, exports, module) {
|
|
||||||
|
|
||||||
exports.setText = function(elem, text) {
|
|
||||||
if (elem.innerText !== undefined) {
|
|
||||||
elem.innerText = text;
|
|
||||||
}
|
|
||||||
if (elem.textContent !== undefined) {
|
|
||||||
elem.textContent = text;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.hasCssClass = function(el, name) {
|
|
||||||
var classes = el.className.split(/\s+/g);
|
|
||||||
return classes.indexOf(name) !== -1;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add a CSS class to the list of classes on the given node
|
|
||||||
*/
|
|
||||||
exports.addCssClass = function(el, name) {
|
|
||||||
if (!exports.hasCssClass(el, name)) {
|
|
||||||
el.className += " " + name;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add or remove a CSS class from the list of classes on the given node
|
|
||||||
* depending on the value of <tt>include</tt>
|
|
||||||
*/
|
|
||||||
exports.setCssClass = function(node, className, include) {
|
|
||||||
if (include) {
|
|
||||||
exports.addCssClass(node, className);
|
|
||||||
} else {
|
|
||||||
exports.removeCssClass(node, className);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a CSS class from the list of classes on the given node
|
|
||||||
*/
|
|
||||||
exports.removeCssClass = function(el, name) {
|
|
||||||
var classes = el.className.split(/\s+/g);
|
|
||||||
while (true) {
|
|
||||||
var index = classes.indexOf(name);
|
|
||||||
if (index == -1) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
classes.splice(index, 1);
|
|
||||||
}
|
|
||||||
el.className = classes.join(" ");
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.importCssString = function(cssText, doc){
|
|
||||||
doc = doc || document;
|
|
||||||
|
|
||||||
if (doc.createStyleSheet) {
|
|
||||||
var sheet = doc.createStyleSheet();
|
|
||||||
sheet.cssText = cssText;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
var style = doc.createElement("style");
|
|
||||||
style.appendChild(doc.createTextNode(cssText));
|
|
||||||
doc.getElementsByTagName("head")[0].appendChild(style);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.getInnerWidth = function(element) {
|
|
||||||
return (parseInt(exports.computedStyle(element, "paddingLeft"))
|
|
||||||
+ parseInt(exports.computedStyle(element, "paddingRight")) + element.clientWidth);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.getInnerHeight = function(element) {
|
|
||||||
return (parseInt(exports.computedStyle(element, "paddingTop"))
|
|
||||||
+ parseInt(exports.computedStyle(element, "paddingBottom")) + element.clientHeight);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.computedStyle = function(element, style) {
|
|
||||||
if (window.getComputedStyle) {
|
|
||||||
return (window.getComputedStyle(element, "") || {})[style] || "";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return element.currentStyle[style];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.scrollbarWidth = function() {
|
|
||||||
|
|
||||||
var inner = document.createElement('p');
|
|
||||||
inner.style.width = "100%";
|
|
||||||
inner.style.height = "200px";
|
|
||||||
|
|
||||||
var outer = document.createElement("div");
|
|
||||||
var style = outer.style;
|
|
||||||
|
|
||||||
style.position = "absolute";
|
|
||||||
style.left = "-10000px";
|
|
||||||
style.overflow = "hidden";
|
|
||||||
style.width = "200px";
|
|
||||||
style.height = "150px";
|
|
||||||
|
|
||||||
outer.appendChild(inner);
|
|
||||||
document.body.appendChild(outer);
|
|
||||||
var noScrollbar = inner.offsetWidth;
|
|
||||||
|
|
||||||
style.overflow = "scroll";
|
|
||||||
var withScrollbar = inner.offsetWidth;
|
|
||||||
|
|
||||||
if (noScrollbar == withScrollbar) {
|
|
||||||
withScrollbar = outer.clientWidth;
|
|
||||||
}
|
|
||||||
|
|
||||||
document.body.removeChild(outer);
|
|
||||||
|
|
||||||
return noScrollbar-withScrollbar;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Optimized set innerHTML. This is faster than plain innerHTML if the element
|
|
||||||
* already contains a lot of child elements.
|
|
||||||
*
|
|
||||||
* See http://blog.stevenlevithan.com/archives/faster-than-innerhtml for details
|
|
||||||
*/
|
|
||||||
exports.setInnerHtml = function(el, innerHtml) {
|
|
||||||
var element = el.cloneNode(false);//document.createElement("div");
|
|
||||||
element.innerHTML = innerHtml;
|
|
||||||
el.parentNode.replaceChild(element, el);
|
|
||||||
return element;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.setInnerText = function(el, innerText) {
|
|
||||||
if ("textContent" in document.body)
|
|
||||||
el.textContent = innerText;
|
|
||||||
else
|
|
||||||
el.innerText = innerText;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.getInnerText = function(el) {
|
|
||||||
if ("textContent" in document.body)
|
|
||||||
return el.textContent;
|
|
||||||
else
|
|
||||||
return el.innerText;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.getParentWindow = function(document) {
|
|
||||||
return document.defaultView || document.parentWindow;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.getSelectionStart = function(textarea) {
|
|
||||||
// TODO IE
|
|
||||||
var start;
|
|
||||||
try {
|
|
||||||
start = textarea.selectionStart || 0;
|
|
||||||
} catch (e) {
|
|
||||||
start = 0;
|
|
||||||
}
|
|
||||||
return start;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.setSelectionStart = function(textarea, start) {
|
|
||||||
// TODO IE
|
|
||||||
return textarea.selectionStart = start;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.getSelectionEnd = function(textarea) {
|
|
||||||
// TODO IE
|
|
||||||
var end;
|
|
||||||
try {
|
|
||||||
end = textarea.selectionEnd || 0;
|
|
||||||
} catch (e) {
|
|
||||||
end = 0;
|
|
||||||
}
|
|
||||||
return end;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.setSelectionEnd = function(textarea, end) {
|
|
||||||
// TODO IE
|
|
||||||
return textarea.selectionEnd = end;
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
/* ***** BEGIN LICENSE BLOCK *****
|
|
||||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
||||||
* the License. You may obtain a copy of the License at
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*
|
|
||||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
||||||
* for the specific language governing rights and limitations under the
|
|
||||||
* License.
|
|
||||||
*
|
|
||||||
* The Original Code is Ajax.org Code Editor (ACE).
|
|
||||||
*
|
|
||||||
* The Initial Developer of the Original Code is
|
|
||||||
* Ajax.org B.V.
|
|
||||||
* Portions created by the Initial Developer are Copyright (C) 2010
|
|
||||||
* the Initial Developer. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
* Fabian Jakobs <fabian AT ajax DOT org>
|
|
||||||
*
|
|
||||||
* Alternatively, the contents of this file may be used under the terms of
|
|
||||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
||||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
||||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
||||||
* of those above. If you wish to allow use of your version of this file only
|
|
||||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
||||||
* use your version of this file under the terms of the MPL, indicate your
|
|
||||||
* decision by deleting the provisions above and replace them with the notice
|
|
||||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
||||||
* the provisions above, a recipient may use your version of this file under
|
|
||||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
||||||
*
|
|
||||||
* ***** END LICENSE BLOCK ***** */
|
|
||||||
|
|
||||||
define('ace/mode/matching_brace_outdent', function(require, exports, module) {
|
define('ace/mode/matching_brace_outdent', function(require, exports, module) {
|
||||||
|
|
||||||
var Range = require("ace/range").Range;
|
var Range = require("ace/range").Range;
|
||||||
|
|
@ -10106,6 +10176,13 @@ var VirtualRenderer = function(container, theme) {
|
||||||
var gutterWidth = this.showGutter ? this.$gutter.offsetWidth : 0;
|
var gutterWidth = this.showGutter ? this.$gutter.offsetWidth : 0;
|
||||||
this.scroller.style.left = gutterWidth + "px";
|
this.scroller.style.left = gutterWidth + "px";
|
||||||
this.scroller.style.width = Math.max(0, width - gutterWidth - this.scrollBar.getWidth()) + "px";
|
this.scroller.style.width = Math.max(0, width - gutterWidth - this.scrollBar.getWidth()) + "px";
|
||||||
|
|
||||||
|
if (this.session.getUseWrapMode()) {
|
||||||
|
var limit = Math.floor(this.scroller.clientWidth / this.characterWidth);
|
||||||
|
if (this.session.adjustWrapLimit(limit) || force) {
|
||||||
|
changes = changes | this.CHANGE_FULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$size.scrollerWidth = this.scroller.clientWidth;
|
this.$size.scrollerWidth = this.scroller.clientWidth;
|
||||||
|
|
@ -10506,9 +10583,9 @@ var VirtualRenderer = function(container, theme) {
|
||||||
this.screenToTextCoordinates = function(pageX, pageY) {
|
this.screenToTextCoordinates = function(pageX, pageY) {
|
||||||
var canvasPos = this.scroller.getBoundingClientRect();
|
var canvasPos = this.scroller.getBoundingClientRect();
|
||||||
|
|
||||||
var col = Math.round((pageX + this.scroller.scrollLeft - canvasPos.left - this.$padding)
|
var col = Math.round((pageX + this.scroller.scrollLeft - canvasPos.left - this.$padding - dom.getPageScrollLeft())
|
||||||
/ this.characterWidth);
|
/ this.characterWidth);
|
||||||
var row = Math.floor((pageY + this.scrollTop - canvasPos.top - window.pageYOffset)
|
var row = Math.floor((pageY + this.scrollTop - canvasPos.top - dom.getPageScrollTop())
|
||||||
/ this.lineHeight);
|
/ this.lineHeight);
|
||||||
|
|
||||||
return this.session.screenToDocumentPosition(row, Math.max(col, 0));
|
return this.session.screenToDocumentPosition(row, Math.max(col, 0));
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
||||||
define("ace/keyboard/keybinding/emacs",function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"ctrl-x",then:"c-x"},{regex:["(?:command-([0-9]*))*","(down|ctrl-n)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(right|ctrl-f)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(up|ctrl-p)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(left|ctrl-b)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"This binding matches all printable characters except numbers as long as they are no numbers and print them n times.",regex:["(?:command-([0-9]*))","([^0-9]+)*"],match:e,exec:"inserttext",params:[{name:"times",match:1,type:"number",defaultValue:"1"},{name:"text",match:2}]},{comment:"This binding matches numbers as long as there is no meta_number in the buffer.",regex:["(command-[0-9]*)*","([0-9]+)"],match:e,disallowMatches:[1],exec:"inserttext",params:[{name:"text",match:2,type:"text"}]},{regex:["command-([0-9]*)","(command-[0-9]|[0-9])"],comment:"Stops execution if the regex /meta_[0-9]+/ matches to avoid resetting the buffer."}],"c-x":[{key:"ctrl-g",then:"start"},{key:"ctrl-s",exec:"save",then:"start"}]};b.Emacs=new d(f)}),define("ace/keyboard/state_handler",function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j<h.disallowMatches.length;j++)if(!!i[h.disallowMatches[j]])return!1;if(h.exec){g.command=h.exec;if(h.params){var k;g.args={},h.params.forEach(function(a){a.match!=null&&i!=null?k=i[a.match]||a.defaultValue:k=a.defaultValue,a.type==="number"&&(k=parseInt(k)),g.args[a.name]=k})}a.buffer=""}h.then&&(a.state=h.then,a.buffer=""),g.command==null&&(g.command="null"),d&&console.log("KeyboardStateMapper#find",h);return!0});if(g.command)return g;a.buffer="";return!1},handleKeyboard:function(a,b,c){if(b!=0&&(c==""||c==String.fromCharCode(0)))return null;var e=this.$composeBuffer(a,b,c),f=e.bufferToUse,g=e.symbolicName;e=this.$find(a,f,g,b,c),d&&console.log("KeyboardStateMapper#match",f,g,e);return e}},b.matchCharacterOnly=function(a,b,c,d){return b==0?!0:b==4&&c.length==1?!0:!1},b.StateHandler=e})
|
define("ace/keyboard/keybinding/emacs",function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"ctrl-x",then:"c-x"},{regex:["(?:command-([0-9]*))*","(down|ctrl-n)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(right|ctrl-f)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(up|ctrl-p)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["(?:command-([0-9]*))*","(left|ctrl-b)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"This binding matches all printable characters except numbers as long as they are no numbers and print them n times.",regex:["(?:command-([0-9]*))","([^0-9]+)*"],match:e,exec:"inserttext",params:[{name:"times",match:1,type:"number",defaultValue:"1"},{name:"text",match:2}]},{comment:"This binding matches numbers as long as there is no meta_number in the buffer.",regex:["(command-[0-9]*)*","([0-9]+)"],match:e,disallowMatches:[1],exec:"inserttext",params:[{name:"text",match:2,type:"text"}]},{regex:["command-([0-9]*)","(command-[0-9]|[0-9])"],comment:"Stops execution if the regex /meta_[0-9]+/ matches to avoid resetting the buffer."}],"c-x":[{key:"ctrl-g",then:"start"},{key:"ctrl-s",exec:"save",then:"start"}]};b.Emacs=new d(f)}),define("ace/keyboard/state_handler",function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j<h.disallowMatches.length;j++)if(!!i[h.disallowMatches[j]])return!1;if(h.exec){g.command=h.exec;if(h.params){var k;g.args={},h.params.forEach(function(a){a.match!=null&&i!=null?k=i[a.match]||a.defaultValue:k=a.defaultValue,a.type==="number"&&(k=parseInt(k)),g.args[a.name]=k})}a.buffer=""}h.then&&(a.state=h.then,a.buffer=""),g.command==null&&(g.command="null"),d&&console.log("KeyboardStateMapper#find",h);return!0});if(g.command)return g;a.buffer="";return!1},handleKeyboard:function(a,b,c){if(b!=0&&(c==""||String.fromCharCode(0)))return null;var e=this.$composeBuffer(a,b,c),f=e.bufferToUse,g=e.symbolicName;e=this.$find(a,f,g,b,c),d&&console.log("KeyboardStateMapper#match",f,g,e);return e}},b.matchCharacterOnly=function(a,b,c,d){return b==0?!0:b==4&&c.length==1?!0:!1},b.StateHandler=e})
|
||||||
|
|
@ -1 +1 @@
|
||||||
define("ace/keyboard/keybinding/vim",function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"i",then:"insertMode"},{regex:["([0-9]*)","(k|up)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(j|down|enter)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(l|right)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(h|left)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"Catch some keyboard input to stop it here",match:e}],insertMode:[{key:"esc",then:"start"}]};b.Vim=new d(f)}),define("ace/keyboard/state_handler",function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j<h.disallowMatches.length;j++)if(!!i[h.disallowMatches[j]])return!1;if(h.exec){g.command=h.exec;if(h.params){var k;g.args={},h.params.forEach(function(a){a.match!=null&&i!=null?k=i[a.match]||a.defaultValue:k=a.defaultValue,a.type==="number"&&(k=parseInt(k)),g.args[a.name]=k})}a.buffer=""}h.then&&(a.state=h.then,a.buffer=""),g.command==null&&(g.command="null"),d&&console.log("KeyboardStateMapper#find",h);return!0});if(g.command)return g;a.buffer="";return!1},handleKeyboard:function(a,b,c){if(b!=0&&(c==""||c==String.fromCharCode(0)))return null;var e=this.$composeBuffer(a,b,c),f=e.bufferToUse,g=e.symbolicName;e=this.$find(a,f,g,b,c),d&&console.log("KeyboardStateMapper#match",f,g,e);return e}},b.matchCharacterOnly=function(a,b,c,d){return b==0?!0:b==4&&c.length==1?!0:!1},b.StateHandler=e})
|
define("ace/keyboard/keybinding/vim",function(a,b,c){var d=a("ace/keyboard/state_handler").StateHandler,e=a("ace/keyboard/state_handler").matchCharacterOnly,f={start:[{key:"i",then:"insertMode"},{regex:["([0-9]*)","(k|up)"],exec:"golineup",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(j|down|enter)"],exec:"golinedown",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(l|right)"],exec:"gotoright",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{regex:["([0-9]*)","(h|left)"],exec:"gotoleft",params:[{name:"times",match:1,type:"number",defaultValue:1}]},{comment:"Catch some keyboard input to stop it here",match:e}],insertMode:[{key:"esc",then:"start"}]};b.Vim=new d(f)}),define("ace/keyboard/state_handler",function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(state in a)this.$buildBindingsRegex(a[state]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?(a.key=new RegExp("^"+a.regex[1]+"$"),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var d=[];b&1&&d.push("ctrl"),b&8&&d.push("command"),b&2&&d.push("option"),b&4&&d.push("shift"),c&&d.push(c);var e=d.join("-"),f=a.buffer+e;b!=2&&(a.buffer=f);return{bufferToUse:f,symbolicName:e}},$find:function(a,b,c,e,f){var g={};this.keymapping[a.state].some(function(h){var i;if(h.key&&!h.key.test(c))return!1;if(h.regex&&!(i=h.regex.exec(b)))return!1;if(h.match&&!h.match(b,e,f,c))return!1;if(h.disallowMatches)for(var j=0;j<h.disallowMatches.length;j++)if(!!i[h.disallowMatches[j]])return!1;if(h.exec){g.command=h.exec;if(h.params){var k;g.args={},h.params.forEach(function(a){a.match!=null&&i!=null?k=i[a.match]||a.defaultValue:k=a.defaultValue,a.type==="number"&&(k=parseInt(k)),g.args[a.name]=k})}a.buffer=""}h.then&&(a.state=h.then,a.buffer=""),g.command==null&&(g.command="null"),d&&console.log("KeyboardStateMapper#find",h);return!0});if(g.command)return g;a.buffer="";return!1},handleKeyboard:function(a,b,c){if(b!=0&&(c==""||String.fromCharCode(0)))return null;var e=this.$composeBuffer(a,b,c),f=e.bufferToUse,g=e.symbolicName;e=this.$find(a,f,g,b,c),d&&console.log("KeyboardStateMapper#match",f,g,e);return e}},b.matchCharacterOnly=function(a,b,c,d){return b==0?!0:b==4&&c.length==1?!0:!1},b.StateHandler=e})
|
||||||
|
|
@ -1 +1 @@
|
||||||
define("ace/theme/twilight",function(a,b,c){var d=a("pilot/dom"),e=".ace-twilight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-twilight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-twilight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-twilight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-twilight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-twilight .ace_print_margin {\n border-left: 1px solid #3C3C3C;\n width: 100%;\n background: #242424;\n}\n\n.ace-twilight .ace_scroller {\n background-color: #141414;\n}\n\n.ace-twilight .ace_text-layer {\n cursor: text;\n color: #F8F8F8;\n}\n\n.ace-twilight .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-twilight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n.ace-twilight.normal-mode .ace_cursor.ace_overwrite {\n border: 1px solid #FFE300;\n background: #766B13;\n}\n \n.ace-twilight .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-twilight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-twilight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-twilight .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_keyword {\n color:#CDA869;\n}\n\n.ace-twilight .ace_keyword.ace_operator {\n \n}\n\n.ace-twilight .ace_constant {\n color:#CF6A4C;\n}\n\n.ace-twilight .ace_constant.ace_language {\n \n}\n\n.ace-twilight .ace_constant.ace_library {\n \n}\n\n.ace-twilight .ace_constant.ace_numeric {\n \n}\n\n.ace-twilight .ace_invalid {\n \n}\n\n.ace-twilight .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-twilight .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-twilight .ace_support {\n color:#9B859D;\n}\n\n.ace-twilight .ace_support.ace_function {\n color:#DAD085;\n}\n\n.ace-twilight .ace_function.ace_buildin {\n \n}\n\n.ace-twilight .ace_string {\n color:#8F9D6A;\n}\n\n.ace-twilight .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-twilight .ace_comment {\n font-style:italic;\ncolor:#5F5A60;\n}\n\n.ace-twilight .ace_comment.ace_doc {\n \n}\n\n.ace-twilight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-twilight .ace_variable {\n color:#7587A6;\n}\n\n.ace-twilight .ace_variable.ace_language {\n \n}\n\n.ace-twilight .ace_xml_pe {\n color:#494949;\n}";d.importCssString(e),b.cssClass="ace-twilight"})
|
define("ace/theme/twilight",function(a,b,c){var d=a("pilot/dom"),e=".ace-twilight .ace_editor {\n border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-twilight .ace_editor.ace_focus {\n border: 2px solid #327fbd;\n}\n\n.ace-twilight .ace_gutter {\n width: 50px;\n background: #e8e8e8;\n color: #333;\n overflow : hidden;\n}\n\n.ace-twilight .ace_gutter-layer {\n width: 100%;\n text-align: right;\n}\n\n.ace-twilight .ace_gutter-layer .ace_gutter-cell {\n padding-right: 6px;\n}\n\n.ace-twilight .ace_print_margin {\n border-left: 1px solid #3C3C3C;\n width: 100%;\n background: #242424;\n}\n\n.ace-twilight .ace_scroller {\n background-color: #141414;\n}\n\n.ace-twilight .ace_text-layer {\n cursor: text;\n color: #F8F8F8;\n}\n\n.ace-twilight .ace_cursor {\n border-left: 2px solid #A7A7A7;\n}\n\n.ace-twilight .ace_cursor.ace_overwrite {\n border-left: 0px;\n border-bottom: 1px solid #A7A7A7;\n}\n.ace-twilight.normal-mode .ace_cursor.ace_overwrite {\n border: 1px solid #FFE300;\n background: #766B13;\n}\n.ace-twilight.normal-mode .ace_cursor-layer {\n z-index: 0;\n}\n \n.ace-twilight .ace_marker-layer .ace_selection {\n background: rgba(221, 240, 255, 0.20);\n}\n\n.ace-twilight .ace_marker-layer .ace_step {\n background: rgb(198, 219, 174);\n}\n\n.ace-twilight .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_marker-layer .ace_active_line {\n background: rgba(255, 255, 255, 0.031);\n}\n\n \n.ace-twilight .ace_invisible {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.ace-twilight .ace_keyword {\n color:#CDA869;\n}\n\n.ace-twilight .ace_keyword.ace_operator {\n \n}\n\n.ace-twilight .ace_constant {\n color:#CF6A4C;\n}\n\n.ace-twilight .ace_constant.ace_language {\n \n}\n\n.ace-twilight .ace_constant.ace_library {\n \n}\n\n.ace-twilight .ace_constant.ace_numeric {\n \n}\n\n.ace-twilight .ace_invalid {\n \n}\n\n.ace-twilight .ace_invalid.ace_illegal {\n color:#F8F8F8;\nbackground-color:rgba(86, 45, 86, 0.75);\n}\n\n.ace-twilight .ace_invalid.ace_deprecated {\n text-decoration:underline;\nfont-style:italic;\ncolor:#D2A8A1;\n}\n\n.ace-twilight .ace_support {\n color:#9B859D;\n}\n\n.ace-twilight .ace_support.ace_function {\n color:#DAD085;\n}\n\n.ace-twilight .ace_function.ace_buildin {\n \n}\n\n.ace-twilight .ace_string {\n color:#8F9D6A;\n}\n\n.ace-twilight .ace_string.ace_regexp {\n color:#E9C062;\n}\n\n.ace-twilight .ace_comment {\n font-style:italic;\ncolor:#5F5A60;\n}\n\n.ace-twilight .ace_comment.ace_doc {\n \n}\n\n.ace-twilight .ace_comment.ace_doc.ace_tag {\n \n}\n\n.ace-twilight .ace_variable {\n color:#7587A6;\n}\n\n.ace-twilight .ace_variable.ace_language {\n \n}\n\n.ace-twilight .ace_xml_pe {\n color:#494949;\n}";d.importCssString(e),b.cssClass="ace-twilight"})
|
||||||
Loading…
Add table
Add a link
Reference in a new issue