From b8a7b8ec90b4195e49aeeda389d692dd7e4409ab Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Mon, 2 Jul 2012 14:28:33 -0500 Subject: [PATCH 1/6] Extract packaged module loading --- lib/ace/config.js | 16 ++++++++++++++++ lib/ace/edit_session.js | 8 +++----- lib/ace/virtual_renderer.js | 4 +--- lib/ace/worker/worker_client.js | 2 +- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/lib/ace/config.js b/lib/ace/config.js index 0bdaf786..6b5b3765 100644 --- a/lib/ace/config.js +++ b/lib/ace/config.js @@ -71,6 +71,22 @@ exports.all = function() { return lang.copyObject(options); }; +exports.moduleUrl = function(name) { + var parts = name.split("/"); + if (parts[0] !== "ace") return; + + var component = parts[1]; + var base = parts[2]; + + if (component == "mode") { + return this.get("modePath") + "/mode-" + base + this.get("suffix"); + } else if (component === "theme") { + return this.get("themePath") + "/theme-" + base + this.get("suffix"); + } else if (component == "worker") { + return this.get("workerPath") + "/" + base + this.get("suffix"); + } +}; + exports.init = function() { options.packaged = require.packaged || module.packaged || (global.define && define.packaged); diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js index b7b0dead..1915991f 100644 --- a/lib/ace/edit_session.js +++ b/lib/ace/edit_session.js @@ -835,7 +835,7 @@ var EditSession = function(text, mode) { if (!this.$mode) this.$setModePlaceholder(); - fetch(function() { + fetch(mode, function() { require([mode], done); }); @@ -852,13 +852,11 @@ var EditSession = function(text, mode) { callback(_self.$modes[mode]); } - function fetch(callback) { + function fetch(name, callback) { if (!config.get("packaged")) return callback(); - var base = mode.split("/").pop(); - var filename = config.get("modePath") + "/mode-" + base + ".js"; - net.loadScript(filename, callback); + net.loadScript(config.moduleUrl(name), callback); } }; diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index eb6a17c7..632b944f 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -1288,9 +1288,7 @@ var VirtualRenderer = function(container, theme) { if (!config.get("packaged")) return callback(); - var base = name.split("/").pop(); - var filename = config.get("themePath") + "/theme-" + base + config.get("suffix"); - net.loadScript(filename, callback); + net.loadScript(config.moduleUrl(name), callback); }; /** diff --git a/lib/ace/worker/worker_client.js b/lib/ace/worker/worker_client.js index 609e981c..7b257d36 100644 --- a/lib/ace/worker/worker_client.js +++ b/lib/ace/worker/worker_client.js @@ -47,7 +47,7 @@ var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { this.changeListener = this.changeListener.bind(this); if (config.get("packaged")) { - this.$worker = new Worker(config.get("workerPath") + "/" + packagedJs); + this.$worker = new Worker(config.moduleUrl(mod)); } else { var workerUrl; From e4a3e795357634a8756053d1cc66972dc4369bdd Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Mon, 2 Jul 2012 14:33:33 -0500 Subject: [PATCH 2/6] Add worker suffix --- lib/ace/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ace/config.js b/lib/ace/config.js index 6b5b3765..15916002 100644 --- a/lib/ace/config.js +++ b/lib/ace/config.js @@ -83,7 +83,7 @@ exports.moduleUrl = function(name) { } else if (component === "theme") { return this.get("themePath") + "/theme-" + base + this.get("suffix"); } else if (component == "worker") { - return this.get("workerPath") + "/" + base + this.get("suffix"); + return this.get("workerPath") + "/worker-" + base + this.get("suffix"); } }; From fe6903595d59e122f601a95e187a7b020766a379 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Tue, 3 Jul 2012 08:51:13 -0500 Subject: [PATCH 3/6] Use triple equal --- lib/ace/config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ace/config.js b/lib/ace/config.js index 15916002..bfb9e797 100644 --- a/lib/ace/config.js +++ b/lib/ace/config.js @@ -78,11 +78,11 @@ exports.moduleUrl = function(name) { var component = parts[1]; var base = parts[2]; - if (component == "mode") { + if (component === "mode") { return this.get("modePath") + "/mode-" + base + this.get("suffix"); } else if (component === "theme") { return this.get("themePath") + "/theme-" + base + this.get("suffix"); - } else if (component == "worker") { + } else if (component === "worker") { return this.get("workerPath") + "/worker-" + base + this.get("suffix"); } }; From 13b572927b23f5134fba5757faecccf6159fb202 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Tue, 3 Jul 2012 13:26:24 -0500 Subject: [PATCH 4/6] Reduce moduleUrl conditional --- lib/ace/config.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/ace/config.js b/lib/ace/config.js index bfb9e797..66818587 100644 --- a/lib/ace/config.js +++ b/lib/ace/config.js @@ -78,13 +78,7 @@ exports.moduleUrl = function(name) { var component = parts[1]; var base = parts[2]; - if (component === "mode") { - return this.get("modePath") + "/mode-" + base + this.get("suffix"); - } else if (component === "theme") { - return this.get("themePath") + "/theme-" + base + this.get("suffix"); - } else if (component === "worker") { - return this.get("workerPath") + "/worker-" + base + this.get("suffix"); - } + return this.get(component + "Path") + "/" + component + "-" + base + this.get("suffix"); }; exports.init = function() { From 86f5c8b9610603a0fad29f317684a0be49927736 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Tue, 3 Jul 2012 13:27:43 -0500 Subject: [PATCH 5/6] Ignore ace namespacing for module urls --- lib/ace/config.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/ace/config.js b/lib/ace/config.js index 66818587..0d2366a9 100644 --- a/lib/ace/config.js +++ b/lib/ace/config.js @@ -73,8 +73,6 @@ exports.all = function() { exports.moduleUrl = function(name) { var parts = name.split("/"); - if (parts[0] !== "ace") return; - var component = parts[1]; var base = parts[2]; From d9eead8eca22abeb5738fb191120d6cefe3448f9 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Tue, 3 Jul 2012 13:35:03 -0500 Subject: [PATCH 6/6] Remove packagedJs from worker constructor --- Makefile.dryice.js | 2 +- lib/ace/mode/coffee.js | 2 +- lib/ace/mode/css.js | 2 +- lib/ace/mode/css_worker_test.js | 2 +- lib/ace/mode/javascript.js | 2 +- lib/ace/mode/javascript_worker_test.js | 2 +- lib/ace/mode/json.js | 2 +- lib/ace/mode/json_worker_test.js | 2 +- lib/ace/mode/xquery.js | 2 +- lib/ace/test/all_browser.js | 4 ++-- lib/ace/worker/worker_client.js | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Makefile.dryice.js b/Makefile.dryice.js index 3b53a2db..54eb7ed0 100755 --- a/Makefile.dryice.js +++ b/Makefile.dryice.js @@ -395,7 +395,7 @@ function buildAce(options) { 'ace/lib/fixoldbrowsers', 'ace/lib/event_emitter', 'ace/lib/oop', - 'ace/mode/' + mode + '_worker' + 'ace/worker/' + mode ] }], filter: filters, diff --git a/lib/ace/mode/coffee.js b/lib/ace/mode/coffee.js index 9d265b67..d511db96 100644 --- a/lib/ace/mode/coffee.js +++ b/lib/ace/mode/coffee.js @@ -100,7 +100,7 @@ oop.inherits(Mode, TextMode); }; 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.on("error", function(e) { diff --git a/lib/ace/mode/css.js b/lib/ace/mode/css.js index 2122ae9c..dc04cd09 100644 --- a/lib/ace/mode/css.js +++ b/lib/ace/mode/css.js @@ -83,7 +83,7 @@ oop.inherits(Mode, TextMode); }; 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.on("csslint", function(e) { diff --git a/lib/ace/mode/css_worker_test.js b/lib/ace/mode/css_worker_test.js index 3b2ec67b..50941a4c 100644 --- a/lib/ace/mode/css_worker_test.js +++ b/lib/ace/mode/css_worker_test.js @@ -43,7 +43,7 @@ define(function(require, exports, module) { "use strict"; var assert = require("../test/assertions"); -var Worker = require("./css_worker").Worker; +var Worker = require("./worker/css").Worker; module.exports = { diff --git a/lib/ace/mode/javascript.js b/lib/ace/mode/javascript.js index 9bbb1fda..66d59d3b 100644 --- a/lib/ace/mode/javascript.js +++ b/lib/ace/mode/javascript.js @@ -128,7 +128,7 @@ oop.inherits(Mode, TextMode); }; 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.on("jslint", function(results) { diff --git a/lib/ace/mode/javascript_worker_test.js b/lib/ace/mode/javascript_worker_test.js index dd66e2ec..6d462254 100644 --- a/lib/ace/mode/javascript_worker_test.js +++ b/lib/ace/mode/javascript_worker_test.js @@ -43,7 +43,7 @@ define(function(require, exports, module) { "use strict"; var assert = require("../test/assertions"); -var JavaScriptWorker = require("./javascript_worker").JavaScriptWorker; +var JavaScriptWorker = require("./worker/javascript").JavaScriptWorker; module.exports = { diff --git a/lib/ace/mode/json.js b/lib/ace/mode/json.js index d6dd98d7..537b3dc0 100644 --- a/lib/ace/mode/json.js +++ b/lib/ace/mode/json.js @@ -79,7 +79,7 @@ oop.inherits(Mode, TextMode); }; 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.on("error", function(e) { diff --git a/lib/ace/mode/json_worker_test.js b/lib/ace/mode/json_worker_test.js index 3dea50e6..f90cc401 100644 --- a/lib/ace/mode/json_worker_test.js +++ b/lib/ace/mode/json_worker_test.js @@ -43,7 +43,7 @@ define(function(require, exports, module) { "use strict"; var assert = require("../test/assertions"); -var Worker = require("./json_worker").JsonWorker; +var Worker = require("./worker/json").JsonWorker; module.exports = { diff --git a/lib/ace/mode/xquery.js b/lib/ace/mode/xquery.js index d2afde32..8ab859fd 100644 --- a/lib/ace/mode/xquery.js +++ b/lib/ace/mode/xquery.js @@ -120,7 +120,7 @@ oop.inherits(Mode, TextMode); this.createWorker = function(session) { 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; session.getDocument().on('change', function(evt){ diff --git a/lib/ace/test/all_browser.js b/lib/ace/test/all_browser.js index f1f68c81..031e95ea 100644 --- a/lib/ace/test/all_browser.js +++ b/lib/ace/test/all_browser.js @@ -27,12 +27,11 @@ var testNames = [ "ace/mode/coldfusion_test", "ace/mode/css_test", "ace/mode/css_highlight_rules_test", - "ace/mode/css_worker", + "ace/worker/css", "ace/mode/html_test", "ace/mode/html_highlight_rules_test", "ace/mode/javascript_test", "ace/mode/javascript_highlight_rules_test", - "ace/mode/javascript_worker_test", "ace/mode/python_test", "ace/mode/ruby_highlight_rules_test", "ace/mode/text_test", @@ -43,6 +42,7 @@ var testNames = [ "ace/mode/folding/pythonic_test", "ace/mode/folding/xml_test", "ace/mode/folding/coffee_test", + "ace/worker/javascript_test", "ace/multi_select_test", "ace/range_test", "ace/range_list_test", diff --git a/lib/ace/worker/worker_client.js b/lib/ace/worker/worker_client.js index 7b257d36..94df7fa6 100644 --- a/lib/ace/worker/worker_client.js +++ b/lib/ace/worker/worker_client.js @@ -42,7 +42,7 @@ var oop = require("../lib/oop"); var EventEmitter = require("../lib/event_emitter").EventEmitter; var config = require("../config"); -var WorkerClient = function(topLevelNamespaces, packagedJs, mod, classname) { +var WorkerClient = function(topLevelNamespaces, mod, classname) { this.changeListener = this.changeListener.bind(this);