fix loading of unpackaged workers

This commit is contained in:
nightwing 2012-07-10 09:59:17 +04:00
commit fa4b5d5474
8 changed files with 29 additions and 19 deletions

View file

@ -50,7 +50,8 @@ var options = {
workerPath: "", workerPath: "",
modePath: "", modePath: "",
themePath: "", themePath: "",
suffix: ".js" suffix: ".js",
$moduleUrls: {}
}; };
exports.get = function(key) { exports.get = function(key) {
@ -71,14 +72,23 @@ exports.all = function() {
return lang.copyObject(options); return lang.copyObject(options);
}; };
exports.moduleUrl = function(name) { exports.moduleUrl = function(name, component) {
var parts = name.split("/"); if (options.$moduleUrls[name])
var component = parts[1]; return options.$moduleUrls[name];
var base = parts[2];
var parts = name.split("/");
component = component || parts[1];
var base = parts[2].replace(component, "").replace(/(^[\-_])|([\-_]$)/, "");
if (!base)
base = parts[1];
return this.get(component + "Path") + "/" + component + "-" + base + this.get("suffix"); return this.get(component + "Path") + "/" + component + "-" + base + this.get("suffix");
}; };
exports.setModuleUrl = function(name, subst) {
return options.$moduleUrls[name] = subst;
};
exports.init = function() { exports.init = function() {
options.packaged = require.packaged || module.packaged || (global.define && define.packaged); options.packaged = require.packaged || module.packaged || (global.define && define.packaged);

View file

@ -856,7 +856,7 @@ var EditSession = function(text, mode) {
if (!config.get("packaged")) if (!config.get("packaged"))
return callback(); return callback();
net.loadScript(config.moduleUrl(name), callback); net.loadScript(config.moduleUrl(name, "mode"), callback);
} }
}; };

View file

@ -100,7 +100,7 @@ oop.inherits(Mode, TextMode);
}; };
this.createWorker = function(session) { this.createWorker = function(session) {
var worker = new WorkerClient(["ace"], "ace/worker/coffee", "Worker"); var worker = new WorkerClient(["ace"], "ace/mode/coffee_worker", "Worker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("error", function(e) { worker.on("error", function(e) {

View file

@ -83,7 +83,7 @@ oop.inherits(Mode, TextMode);
}; };
this.createWorker = function(session) { this.createWorker = function(session) {
var worker = new WorkerClient(["ace"], "ace/worker/css", "Worker"); var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("csslint", function(e) { worker.on("csslint", function(e) {

View file

@ -128,7 +128,7 @@ oop.inherits(Mode, TextMode);
}; };
this.createWorker = function(session) { this.createWorker = function(session) {
var worker = new WorkerClient(["ace"], "ace/worker/javascript", "JavaScriptWorker"); var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
worker.attachToDocument(session.getDocument()); worker.attachToDocument(session.getDocument());
worker.on("jslint", function(results) { worker.on("jslint", function(results) {

View file

@ -120,7 +120,7 @@ oop.inherits(Mode, TextMode);
this.createWorker = function(session) { this.createWorker = function(session) {
this.$deltas = []; this.$deltas = [];
var worker = new WorkerClient(["ace"], "ace/worker/xquery", "XQueryWorker"); var worker = new WorkerClient(["ace"], "ace/mode/xquery_worker", "XQueryWorker");
var that = this; var that = this;
session.getDocument().on('change', function(evt){ session.getDocument().on('change', function(evt){

View file

@ -1288,7 +1288,7 @@ var VirtualRenderer = function(container, theme) {
if (!config.get("packaged")) if (!config.get("packaged"))
return callback(); return callback();
net.loadScript(config.moduleUrl(name), callback); net.loadScript(config.moduleUrl(name, "theme"), callback);
}; };
/** /**

View file

@ -47,7 +47,7 @@ var WorkerClient = function(topLevelNamespaces, mod, classname) {
this.changeListener = this.changeListener.bind(this); this.changeListener = this.changeListener.bind(this);
if (config.get("packaged")) { if (config.get("packaged")) {
this.$worker = new Worker(config.moduleUrl(mod)); this.$worker = new Worker(config.moduleUrl(mod, "worker"));
} }
else { else {
var workerUrl; var workerUrl;