fix loading of unpackaged workers
This commit is contained in:
parent
ccdb5c57c4
commit
fa4b5d5474
8 changed files with 29 additions and 19 deletions
|
|
@ -50,20 +50,21 @@ var options = {
|
|||
workerPath: "",
|
||||
modePath: "",
|
||||
themePath: "",
|
||||
suffix: ".js"
|
||||
suffix: ".js",
|
||||
$moduleUrls: {}
|
||||
};
|
||||
|
||||
exports.get = function(key) {
|
||||
if (!options.hasOwnProperty(key))
|
||||
throw new Error("Unknown config key: " + key);
|
||||
|
||||
|
||||
return options[key];
|
||||
};
|
||||
|
||||
exports.set = function(key, value) {
|
||||
if (!options.hasOwnProperty(key))
|
||||
throw new Error("Unknown config key: " + key);
|
||||
|
||||
|
||||
options[key] = value;
|
||||
};
|
||||
|
||||
|
|
@ -71,14 +72,23 @@ exports.all = function() {
|
|||
return lang.copyObject(options);
|
||||
};
|
||||
|
||||
exports.moduleUrl = function(name) {
|
||||
var parts = name.split("/");
|
||||
var component = parts[1];
|
||||
var base = parts[2];
|
||||
exports.moduleUrl = function(name, component) {
|
||||
if (options.$moduleUrls[name])
|
||||
return options.$moduleUrls[name];
|
||||
|
||||
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");
|
||||
};
|
||||
|
||||
exports.setModuleUrl = function(name, subst) {
|
||||
return options.$moduleUrls[name] = subst;
|
||||
};
|
||||
|
||||
exports.init = function() {
|
||||
options.packaged = require.packaged || module.packaged || (global.define && define.packaged);
|
||||
|
||||
|
|
@ -87,7 +97,7 @@ exports.init = function() {
|
|||
|
||||
var scriptOptions = {};
|
||||
var scriptUrl = "";
|
||||
|
||||
|
||||
var scripts = document.getElementsByTagName("script");
|
||||
for (var i=0; i<scripts.length; i++) {
|
||||
var script = scripts[i];
|
||||
|
|
@ -96,7 +106,7 @@ exports.init = function() {
|
|||
if (!src) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
var attributes = script.attributes;
|
||||
for (var j=0, l=attributes.length; j < l; j++) {
|
||||
var attr = attributes[j];
|
||||
|
|
@ -109,17 +119,17 @@ exports.init = function() {
|
|||
if (m)
|
||||
scriptUrl = m[1];
|
||||
}
|
||||
|
||||
|
||||
if (scriptUrl) {
|
||||
scriptOptions.base = scriptOptions.base || scriptUrl;
|
||||
scriptOptions.packaged = true;
|
||||
}
|
||||
|
||||
|
||||
scriptOptions.workerPath = scriptOptions.workerPath || scriptOptions.base;
|
||||
scriptOptions.modePath = scriptOptions.modePath || scriptOptions.base;
|
||||
scriptOptions.themePath = scriptOptions.themePath || scriptOptions.base;
|
||||
delete scriptOptions.base;
|
||||
|
||||
|
||||
for (var key in scriptOptions)
|
||||
if (typeof scriptOptions[key] !== "undefined")
|
||||
exports.set(key, scriptOptions[key]);
|
||||
|
|
|
|||
|
|
@ -856,7 +856,7 @@ var EditSession = function(text, mode) {
|
|||
if (!config.get("packaged"))
|
||||
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) {
|
||||
var worker = new WorkerClient(["ace"], "ace/worker/coffee", "Worker");
|
||||
var worker = new WorkerClient(["ace"], "ace/mode/coffee_worker", "Worker");
|
||||
worker.attachToDocument(session.getDocument());
|
||||
|
||||
worker.on("error", function(e) {
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ oop.inherits(Mode, TextMode);
|
|||
};
|
||||
|
||||
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.on("csslint", function(e) {
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ oop.inherits(Mode, TextMode);
|
|||
};
|
||||
|
||||
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.on("jslint", function(results) {
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ oop.inherits(Mode, TextMode);
|
|||
|
||||
this.createWorker = function(session) {
|
||||
this.$deltas = [];
|
||||
var worker = new WorkerClient(["ace"], "ace/worker/xquery", "XQueryWorker");
|
||||
var worker = new WorkerClient(["ace"], "ace/mode/xquery_worker", "XQueryWorker");
|
||||
var that = this;
|
||||
|
||||
session.getDocument().on('change', function(evt){
|
||||
|
|
|
|||
|
|
@ -1288,7 +1288,7 @@ var VirtualRenderer = function(container, theme) {
|
|||
if (!config.get("packaged"))
|
||||
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);
|
||||
|
||||
if (config.get("packaged")) {
|
||||
this.$worker = new Worker(config.moduleUrl(mod));
|
||||
this.$worker = new Worker(config.moduleUrl(mod, "worker"));
|
||||
}
|
||||
else {
|
||||
var workerUrl;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue