fix loading of unpackaged workers
This commit is contained in:
parent
ccdb5c57c4
commit
fa4b5d5474
8 changed files with 29 additions and 19 deletions
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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){
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue