fix worker loading for requirejs

This commit is contained in:
Fabian Jakobs 2011-02-07 10:37:04 +01:00
commit 81bafa346a
4 changed files with 6 additions and 10 deletions

View file

@ -124,7 +124,7 @@ oop.inherits(Mode, TextMode);
this.createWorker = function(session) { this.createWorker = function(session) {
var doc = session.getDocument(); var doc = session.getDocument();
var worker = new WorkerClient("../..", ["ace", "pilot"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker"); var worker = new WorkerClient(["ace", "pilot"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker");
worker.call("setValue", [doc.getValue()]); worker.call("setValue", [doc.getValue()]);
doc.on("change", function(e) { doc.on("change", function(e) {

View file

@ -44,7 +44,6 @@ var Tokenizer = require("ace/tokenizer").Tokenizer;
var RubyHighlightRules = require("ace/mode/ruby_highlight_rules").RubyHighlightRules; var RubyHighlightRules = require("ace/mode/ruby_highlight_rules").RubyHighlightRules;
var MatchingBraceOutdent = require("ace/mode/matching_brace_outdent").MatchingBraceOutdent; var MatchingBraceOutdent = require("ace/mode/matching_brace_outdent").MatchingBraceOutdent;
var Range = require("ace/range").Range; var Range = require("ace/range").Range;
var WorkerClient = require("ace/worker/worker_client").WorkerClient;
var Mode = function() { var Mode = function() {
this.$tokenizer = new Tokenizer(new RubyHighlightRules().getRules()); this.$tokenizer = new Tokenizer(new RubyHighlightRules().getRules());

View file

@ -19,7 +19,7 @@ var require = function(id) {
var chunks = id.split("/"); var chunks = id.split("/");
chunks[0] = require.tlns[chunks[0]] || chunks[0]; chunks[0] = require.tlns[chunks[0]] || chunks[0];
path = /*require.baseUrl + "/" +*/ chunks.join("/") + ".js"; path = chunks.join("/") + ".js";
require.id = id; require.id = id;
// console.log("require " + path + " " + id) // console.log("require " + path + " " + id)
@ -29,7 +29,6 @@ var require = function(id) {
require.modules = {}; require.modules = {};
require.tlns = {}; require.tlns = {};
require.baseUrl = "";
var define = function(id, factory) { var define = function(id, factory) {
if (!factory) { if (!factory) {
@ -52,8 +51,7 @@ var define = function(id, factory) {
}; };
}; };
function initBaseUrls(baseUrl, topLevelNamespaces) { function initBaseUrls(topLevelNamespaces) {
require.baseUrl = baseUrl;
require.tlns = topLevelNamespaces; require.tlns = topLevelNamespaces;
} }
@ -98,7 +96,7 @@ onmessage = function(e) {
main[msg.command].apply(main, msg.args); main[msg.command].apply(main, msg.args);
} }
else if (msg.init) { else if (msg.init) {
initBaseUrls(msg.base, msg.tlns); initBaseUrls(msg.tlns);
require("pilot/fixoldbrowsers"); require("pilot/fixoldbrowsers");
sender = initSender(); sender = initSender();
var clazz = require(msg.module)[msg.classname]; var clazz = require(msg.module)[msg.classname];

View file

@ -11,7 +11,7 @@ define(function(require, exports, module) {
var oop = require("pilot/oop"); var oop = require("pilot/oop");
var EventEmitter = require("pilot/event_emitter").EventEmitter; var EventEmitter = require("pilot/event_emitter").EventEmitter;
var WorkerClient = function(baseUrl, topLevelNamespaces, packagedJs, module, classname) { var WorkerClient = function(topLevelNamespaces, packagedJs, module, classname) {
this.callbacks = []; this.callbacks = [];
@ -25,14 +25,13 @@ var WorkerClient = function(baseUrl, topLevelNamespaces, packagedJs, module, cla
var tlns = {}; var tlns = {};
for (var i=0; i<topLevelNamespaces.length; i++) { for (var i=0; i<topLevelNamespaces.length; i++) {
var ns = topLevelNamespaces[i]; var ns = topLevelNamespaces[i];
tlns[ns] = require.nameToUrl(ns, null, "_").replace(/.js$/, "").replace(require.config.baseUrl, ""); tlns[ns] = require.nameToUrl(ns, null, "_").replace(/.js$/, "");
} }
} }
this.$worker.postMessage({ this.$worker.postMessage({
init : true, init : true,
tlns: tlns, tlns: tlns,
base: baseUrl,
module: module, module: module,
classname: classname classname: classname
}); });