Merge pull request #830 from josh/extract-packaged-module-loading
Extract packaged module loading
This commit is contained in:
commit
167d7f89fa
14 changed files with 25 additions and 21 deletions
|
|
@ -395,7 +395,7 @@ function buildAce(options) {
|
||||||
'ace/lib/fixoldbrowsers',
|
'ace/lib/fixoldbrowsers',
|
||||||
'ace/lib/event_emitter',
|
'ace/lib/event_emitter',
|
||||||
'ace/lib/oop',
|
'ace/lib/oop',
|
||||||
'ace/mode/' + mode + '_worker'
|
'ace/worker/' + mode
|
||||||
]
|
]
|
||||||
}],
|
}],
|
||||||
filter: filters,
|
filter: filters,
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,14 @@ exports.all = function() {
|
||||||
return lang.copyObject(options);
|
return lang.copyObject(options);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.moduleUrl = function(name) {
|
||||||
|
var parts = name.split("/");
|
||||||
|
var component = parts[1];
|
||||||
|
var base = parts[2];
|
||||||
|
|
||||||
|
return this.get(component + "Path") + "/" + component + "-" + base + this.get("suffix");
|
||||||
|
};
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -835,7 +835,7 @@ var EditSession = function(text, mode) {
|
||||||
if (!this.$mode)
|
if (!this.$mode)
|
||||||
this.$setModePlaceholder();
|
this.$setModePlaceholder();
|
||||||
|
|
||||||
fetch(function() {
|
fetch(mode, function() {
|
||||||
require([mode], done);
|
require([mode], done);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -852,13 +852,11 @@ var EditSession = function(text, mode) {
|
||||||
callback(_self.$modes[mode]);
|
callback(_self.$modes[mode]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetch(callback) {
|
function fetch(name, callback) {
|
||||||
if (!config.get("packaged"))
|
if (!config.get("packaged"))
|
||||||
return callback();
|
return callback();
|
||||||
|
|
||||||
var base = mode.split("/").pop();
|
net.loadScript(config.moduleUrl(name), callback);
|
||||||
var filename = config.get("modePath") + "/mode-" + base + ".js";
|
|
||||||
net.loadScript(filename, callback);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ oop.inherits(Mode, TextMode);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.createWorker = function(session) {
|
this.createWorker = function(session) {
|
||||||
var worker = new WorkerClient(["ace"], "worker-coffee.js", "ace/mode/coffee_worker", "Worker");
|
var worker = new WorkerClient(["ace"], "ace/worker/coffee", "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"], "worker-css.js", "ace/mode/css_worker", "Worker");
|
var worker = new WorkerClient(["ace"], "ace/worker/css", "Worker");
|
||||||
worker.attachToDocument(session.getDocument());
|
worker.attachToDocument(session.getDocument());
|
||||||
|
|
||||||
worker.on("csslint", function(e) {
|
worker.on("csslint", function(e) {
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ define(function(require, exports, module) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var assert = require("../test/assertions");
|
var assert = require("../test/assertions");
|
||||||
var Worker = require("./css_worker").Worker;
|
var Worker = require("./worker/css").Worker;
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ oop.inherits(Mode, TextMode);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.createWorker = function(session) {
|
this.createWorker = function(session) {
|
||||||
var worker = new WorkerClient(["ace"], "worker-javascript.js", "ace/mode/javascript_worker", "JavaScriptWorker");
|
var worker = new WorkerClient(["ace"], "ace/worker/javascript", "JavaScriptWorker");
|
||||||
worker.attachToDocument(session.getDocument());
|
worker.attachToDocument(session.getDocument());
|
||||||
|
|
||||||
worker.on("jslint", function(results) {
|
worker.on("jslint", function(results) {
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ define(function(require, exports, module) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var assert = require("../test/assertions");
|
var assert = require("../test/assertions");
|
||||||
var JavaScriptWorker = require("./javascript_worker").JavaScriptWorker;
|
var JavaScriptWorker = require("./worker/javascript").JavaScriptWorker;
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ oop.inherits(Mode, TextMode);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.createWorker = function(session) {
|
this.createWorker = function(session) {
|
||||||
var worker = new WorkerClient(["ace"], "worker-json.js", "ace/mode/json_worker", "JsonWorker");
|
var worker = new WorkerClient(["ace"], "ace/worker/json", "JsonWorker");
|
||||||
worker.attachToDocument(session.getDocument());
|
worker.attachToDocument(session.getDocument());
|
||||||
|
|
||||||
worker.on("error", function(e) {
|
worker.on("error", function(e) {
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ define(function(require, exports, module) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var assert = require("../test/assertions");
|
var assert = require("../test/assertions");
|
||||||
var Worker = require("./json_worker").JsonWorker;
|
var Worker = require("./worker/json").JsonWorker;
|
||||||
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
||||||
|
|
@ -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"], "worker-xquery.js", "ace/mode/xquery_worker", "XQueryWorker");
|
var worker = new WorkerClient(["ace"], "ace/worker/xquery", "XQueryWorker");
|
||||||
var that = this;
|
var that = this;
|
||||||
|
|
||||||
session.getDocument().on('change', function(evt){
|
session.getDocument().on('change', function(evt){
|
||||||
|
|
|
||||||
|
|
@ -27,12 +27,11 @@ var testNames = [
|
||||||
"ace/mode/coldfusion_test",
|
"ace/mode/coldfusion_test",
|
||||||
"ace/mode/css_test",
|
"ace/mode/css_test",
|
||||||
"ace/mode/css_highlight_rules_test",
|
"ace/mode/css_highlight_rules_test",
|
||||||
"ace/mode/css_worker",
|
"ace/worker/css",
|
||||||
"ace/mode/html_test",
|
"ace/mode/html_test",
|
||||||
"ace/mode/html_highlight_rules_test",
|
"ace/mode/html_highlight_rules_test",
|
||||||
"ace/mode/javascript_test",
|
"ace/mode/javascript_test",
|
||||||
"ace/mode/javascript_highlight_rules_test",
|
"ace/mode/javascript_highlight_rules_test",
|
||||||
"ace/mode/javascript_worker_test",
|
|
||||||
"ace/mode/python_test",
|
"ace/mode/python_test",
|
||||||
"ace/mode/ruby_highlight_rules_test",
|
"ace/mode/ruby_highlight_rules_test",
|
||||||
"ace/mode/text_test",
|
"ace/mode/text_test",
|
||||||
|
|
@ -43,6 +42,7 @@ var testNames = [
|
||||||
"ace/mode/folding/pythonic_test",
|
"ace/mode/folding/pythonic_test",
|
||||||
"ace/mode/folding/xml_test",
|
"ace/mode/folding/xml_test",
|
||||||
"ace/mode/folding/coffee_test",
|
"ace/mode/folding/coffee_test",
|
||||||
|
"ace/worker/javascript_test",
|
||||||
"ace/multi_select_test",
|
"ace/multi_select_test",
|
||||||
"ace/range_test",
|
"ace/range_test",
|
||||||
"ace/range_list_test",
|
"ace/range_list_test",
|
||||||
|
|
|
||||||
|
|
@ -1288,9 +1288,7 @@ var VirtualRenderer = function(container, theme) {
|
||||||
if (!config.get("packaged"))
|
if (!config.get("packaged"))
|
||||||
return callback();
|
return callback();
|
||||||
|
|
||||||
var base = name.split("/").pop();
|
net.loadScript(config.moduleUrl(name), callback);
|
||||||
var filename = config.get("themePath") + "/theme-" + base + config.get("suffix");
|
|
||||||
net.loadScript(filename, callback);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -42,12 +42,12 @@ var oop = require("../lib/oop");
|
||||||
var EventEmitter = require("../lib/event_emitter").EventEmitter;
|
var EventEmitter = require("../lib/event_emitter").EventEmitter;
|
||||||
var config = require("../config");
|
var config = require("../config");
|
||||||
|
|
||||||
var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) {
|
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.get("workerPath") + "/" + packagedJs);
|
this.$worker = new Worker(config.moduleUrl(mod));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var workerUrl;
|
var workerUrl;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue