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 @@ } +