Merge master
This commit is contained in:
commit
1c5320f84e
406 changed files with 82454 additions and 34265 deletions
|
|
@ -45,6 +45,8 @@ var oop = require("./lib/oop");
|
|||
var dom = require("./lib/dom");
|
||||
var event = require("./lib/event");
|
||||
var useragent = require("./lib/useragent");
|
||||
var config = require("./config");
|
||||
var net = require("./lib/net");
|
||||
var GutterLayer = require("./layer/gutter").Gutter;
|
||||
var MarkerLayer = require("./layer/marker").Marker;
|
||||
var TextLayer = require("./layer/text").Text;
|
||||
|
|
@ -847,17 +849,23 @@ var VirtualRenderer = function(container, theme) {
|
|||
this.$cursorLayer.showCursor();
|
||||
};
|
||||
|
||||
this.scrollSelectionIntoView = function(anchor, lead) {
|
||||
// first scroll anchor into view then scroll lead into view
|
||||
this.scrollCursorIntoView(anchor);
|
||||
this.scrollCursorIntoView(lead);
|
||||
};
|
||||
|
||||
/**
|
||||
* VirtualRenderer.scrollCursorIntoView() -> Void
|
||||
*
|
||||
* Scrolls the cursor into the first visibile area of the editor
|
||||
**/
|
||||
this.scrollCursorIntoView = function() {
|
||||
this.scrollCursorIntoView = function(cursor) {
|
||||
// the editor is not visible
|
||||
if (this.$size.scrollerHeight === 0)
|
||||
return;
|
||||
|
||||
var pos = this.$cursorLayer.getPixelPosition();
|
||||
var pos = this.$cursorLayer.getPixelPosition(cursor);
|
||||
|
||||
var left = pos.left;
|
||||
var top = pos.top;
|
||||
|
|
@ -1122,6 +1130,15 @@ var VirtualRenderer = function(container, theme) {
|
|||
style.left = "-10000px";
|
||||
};
|
||||
|
||||
this._loadTheme = function(name, callback) {
|
||||
if (!config.get("packaged"))
|
||||
return callback();
|
||||
|
||||
var base = name.split("/").pop();
|
||||
var filename = config.get("themePath") + "/theme-" + base + config.get("suffix");
|
||||
net.loadScript(filename, callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* VirtualRenderer.setTheme(theme) -> Void
|
||||
* - theme (String): The path to a theme
|
||||
|
|
@ -1133,9 +1150,22 @@ var VirtualRenderer = function(container, theme) {
|
|||
|
||||
this.$themeValue = theme;
|
||||
if (!theme || typeof theme == "string") {
|
||||
theme = theme || "ace/theme/textmate";
|
||||
require([theme], function(theme) {
|
||||
afterLoad(theme);
|
||||
var moduleName = theme || "ace/theme/textmate";
|
||||
|
||||
var module;
|
||||
try {
|
||||
module = require(moduleName);
|
||||
} catch (e) {};
|
||||
if (module)
|
||||
return afterLoad(module);
|
||||
|
||||
_self._loadTheme(moduleName, function() {
|
||||
require([theme], function(module) {
|
||||
if (_self.$themeValue !== theme)
|
||||
return;
|
||||
|
||||
afterLoad(module);
|
||||
});
|
||||
});
|
||||
} else {
|
||||
afterLoad(theme);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue