diff --git a/Makefile.dryice.js b/Makefile.dryice.js
index c0ced1e1..932d516b 100755
--- a/Makefile.dryice.js
+++ b/Makefile.dryice.js
@@ -128,13 +128,6 @@ copy({
dest: data
});
-copy({
- source: [
- 'build_support/editor.html'
- ],
- dest: 'build/editor.html'
-});
-
// Create the compressed and uncompressed output files
copy({
source: data,
@@ -146,6 +139,14 @@ copy({
dest: 'build/ace-uncompressed.js'
});
+copy({
+ source: [
+ 'build_support/editor.html'
+ ],
+ dest: 'build/editor.html'
+});
+
+
// Create worker bootstrap code
copy({
source: "lib/ace/worker/worker.js",
@@ -155,7 +156,41 @@ copy({
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 2f18c4ab..5e3945b6 100644
--- a/build_support/boot.js
+++ b/build_support/boot.js
@@ -41,38 +41,43 @@ if (window.document) {
require("pilot/fixoldbrowsers");
require("pilot/settings");
- var catalog = require("pilot/plugin_manager").catalog;
var Event = require("pilot/event");
+ 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" ]);
+
var ace = {
edit: function(el) {
if (typeof(el) == "string") {
el = document.getElementById(el);
}
+
+ var doc = new EditSession(el.innerHTML);
+ 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();
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();
+ env.editor = env;
+ editor.resize();
Event.addListener(window, "resize", function() {
- env.editor.resize();
+ 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..bcfa964c 100644
--- a/build_support/editor.html
+++ b/build_support/editor.html
@@ -18,10 +18,12 @@
}
+