diff --git a/Makefile.dryice.js b/Makefile.dryice.js
index 74694852..ed148868 100755
--- a/Makefile.dryice.js
+++ b/Makefile.dryice.js
@@ -91,7 +91,7 @@ copy({
{
root: aceHome + '/lib',
include: /.*\.js$/,
- exclude: /tests?\/|theme\/|mode\/|ace\/worker\/host\.js/
+ exclude: /tests?\/|theme\/|mode\/|ace\/worker\/worker\.js/
},
{ base: aceHome + '/lib/', path: 'ace/theme/textmate.js' },
{ base: aceHome + '/lib/', path: 'ace/mode/text.js' },
@@ -128,6 +128,17 @@ copy({
dest: data
});
+// Create the compressed and uncompressed output files
+copy({
+ source: data,
+ //filter: copy.filter.uglifyjs,
+ dest: 'build/ace.js'
+});
+//copy({
+// source: data,
+// dest: 'build/ace-uncompressed.js'
+//});
+
copy({
source: [
'build_support/editor.html'
@@ -135,27 +146,51 @@ copy({
dest: 'build/editor.html'
});
-// Create the compressed and uncompressed output files
-copy({
- source: data,
- //filter: copy.filter.uglifyjs,
- dest: 'build/ace.js'
-});
-copy({
- source: data,
- dest: 'build/ace-uncompressed.js'
-});
// Create worker bootstrap code
copy({
- source: "lib/ace/worker/host.js",
+ source: "lib/ace/worker/worker.js",
filter: [function(data) {
- return data + "\nimportScripts('ace-uncompressed.js')";
+ return data + "\nimportScripts('ace.js')";
}],
- dest: 'build/host.js'
+ dest: 'build/worker.js'
});
+var eclipseTheme = copy.createDataObject();
+copy({
+ source: [{
+ root: aceHome + '/lib',
+ include: "ace/theme/eclipse.js"
+ }],
+ filter: [ copy.filter.moduleDefines ],
+ dest: eclipseTheme
+});
+copy({
+ source: [{
+ root: aceHome + '/lib',
+ include: "ace/theme/eclipse.css"
+ }],
+ filter: [ copy.filter.addDefines ],
+ dest: eclipseTheme
+});
+copy({
+ source: eclipseTheme,
+ dest: 'build/theme/eclipse.js'
+});
+[
+ "clouds", "clouds_midnight", "cobalt", "dawn", "idle_fingers", "kr_theme",
+ "mono_industrial", "monokai", "pastel_on_dark", "twilight"
+].forEach(function(theme) {
+ copy({
+ source: [{
+ root: aceHome + '/lib',
+ include: "ace/theme/" + theme + ".js"
+ }],
+ filter: [ copy.filter.moduleDefines ],
+ dest: "build/theme/" + theme + ".js"
+ });
+});
function internalRequire(ignore) {
var exports = {};
diff --git a/build_support/boot.js b/build_support/boot.js
index df2ab0ff..66733344 100644
--- a/build_support/boot.js
+++ b/build_support/boot.js
@@ -38,42 +38,47 @@
// don't define it in a worker.
if (window.document) {
- var deps = [ "pilot/fixoldbrowsers", "pilot/plugin_manager", "pilot/settings",
- "pilot/environment" ];
+ require("pilot/fixoldbrowsers");
+ require("pilot/settings");
+
+ var Event = require("pilot/event");
+ var Dom = require("pilot/dom");
+ var EditSession = require("ace/edit_session").EditSession;
+ var JavaScriptMode = require("ace/mode/javascript").Mode;
+ var UndoManager = require("ace/undomanager").UndoManager;
+ var Editor = require("ace/editor").Editor;
+ var Renderer = require("ace/virtual_renderer").VirtualRenderer;
+ var Theme = require("ace/theme/textmate");
+
+ var catalog = require("pilot/plugin_manager").catalog;
+ catalog.registerPlugins([ "pilot/index" ]);
- require(deps, function() {
- var catalog = require("pilot/plugin_manager").catalog;
- catalog.registerPlugins([ "pilot/index" ]);
- });
var ace = {
edit: function(el) {
if (typeof(el) == "string") {
el = document.getElementById(el);
}
+
+ var doc = new EditSession(Dom.getInnerText(el));
+ doc.setMode(new JavaScriptMode());
+ doc.setUndoManager(new UndoManager());
+ el.innerHTML = '';
+
+ var editor = new Editor(new Renderer(el, "ace/theme/textmate"));
+ editor.setSession(doc);
+
var env = require("pilot/environment").create();
- var catalog = require("pilot/plugin_manager").catalog;
catalog.startupPlugins({ env: env }).then(function() {
- var EditSession = require("ace/edit_session").EditSession;
- var JavaScriptMode = require("ace/mode/javascript").Mode;
- var UndoManager = require("ace/undomanager").UndoManager;
- var Editor = require("ace/editor").Editor;
- var Renderer = require("ace/virtual_renderer").VirtualRenderer;
- var theme = require("ace/theme/textmate");
-
- var doc = new EditSession(el.innerHTML);
- el.innerHTML = '';
- doc.setMode(new JavaScriptMode());
- doc.setUndoManager(new UndoManager());
env.document = doc;
- env.editor = new Editor(new Renderer(el, theme));
- env.editor.setSession(doc);
- env.editor.resize();
- window.addEventListener("resize", function() {
- env.editor.resize();
- }, false);
+ env.editor = env;
+ editor.resize();
+ Event.addListener(window, "resize", function() {
+ editor.resize();
+ });
el.env = env;
});
+ return editor;
}
};
}
\ No newline at end of file
diff --git a/build_support/editor.html b/build_support/editor.html
index 8ff3e8d9..e7c024e3 100644
--- a/build_support/editor.html
+++ b/build_support/editor.html
@@ -17,11 +17,13 @@
}
}
-
+
+