diff --git a/.gitignore b/.gitignore
index b78137a0..c127a8a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
.settings/
.settings.xml
.c9settings.xml
+.c9revisions
.settings.xml.old
.*.gz
diff --git a/Makefile.dryice.js b/Makefile.dryice.js
index c7199a00..8007c8eb 100755
--- a/Makefile.dryice.js
+++ b/Makefile.dryice.js
@@ -43,7 +43,7 @@ var copy = require('dryice').copy;
var ACE_HOME = __dirname;
function main(args) {
- var target;
+ var target = "minimal";
if (args.length == 3) {
target = args[2];
// Check if 'target' contains some allowed value.
@@ -52,12 +52,13 @@ function main(args) {
}
}
- if (!target) {
+ if (target == "help") {
console.log("--- Ace Dryice Build Tool ---");
console.log("");
console.log("Options:");
+ console.log(" minimal Runs minimal build of Ace");
console.log(" normal Runs embedded build of Ace");
- console.log(" demo Runs demo build of Ace");
+ console.log(" demo Runs demo build of Ace");
console.log(" bm Runs bookmarklet build of Ace");
process.exit(0);
}
@@ -70,6 +71,15 @@ function main(args) {
textPluginPattern: /^ace\/requirejs\/text!/
};
+ if (target == "minimal") {
+ buildAce(aceProject, {
+ compress: false,
+ noconflict: false,
+ suffix: "",
+ compat: true,
+ name: "ace"
+ });
+ }
if (target == "normal") {
ace(aceProject);
}
@@ -113,14 +123,14 @@ function ace(aceProject) {
buildAce(aceProject, {
compress: false,
noconflict: false,
- suffix: "-uncompressed.js",
+ suffix: "-uncompressed",
compat: true,
name: "ace"
});
buildAce(aceProject, {
compress: false,
noconflict: true,
- suffix: "-uncompressed-noconflict.js",
+ suffix: "-uncompressed-noconflict",
compat: true,
name: "ace",
workers: []
@@ -130,7 +140,7 @@ function ace(aceProject) {
buildAce(aceProject, {
compress: true,
noconflict: false,
- suffix: ".js",
+ suffix: "",
compat: true,
name: "ace",
workers: []
@@ -138,7 +148,7 @@ function ace(aceProject) {
buildAce(aceProject, {
compress: true,
noconflict: true,
- suffix: "-noconflict.js",
+ suffix: "-noconflict",
compat: true,
name: "ace",
workers: []
@@ -199,7 +209,7 @@ function demo(aceProject) {
noconflict: false,
compat: false,
name: "kitchen-sink",
- suffix: "-uncompressed.js",
+ suffix: "",
keybindings: []
});
}
@@ -213,14 +223,14 @@ function buildAce(aceProject, options) {
requires: null,
compress: false,
noconflict: false,
- suffix: ".js",
+ suffix: "",
name: "ace",
compat: true,
modes: [
"css", "html", "javascript", "php", "coldfusion", "python", "lua", "xml", "ruby", "java", "c_cpp",
"coffee", "perl", "csharp", "haxe", "liquid", "svg", "clojure", "scss", "json", "groovy",
"ocaml", "scala", "textile", "scad", "markdown", "latex", "powershell", "sql",
- "text", "pgsql", "sh", "xquery", "less", "golang"
+ "text", "pgsql", "sh", "xquery", "less", "golang", "c9search"
],
themes: [
"chrome", "clouds", "clouds_midnight", "cobalt", "crimson_editor", "dawn",
@@ -252,6 +262,15 @@ function buildAce(aceProject, options) {
var exportFilter = exportAce(options.ns, options.exportModule);
}
+ // remove use strict
+ filters.push(function(text) {
+ return text.replace(/['"]use strict['"];/g, "");
+ })
+ // remove redundant comments
+ filters.push(function(text) {
+ return text.replace(/(;)\s*\/\*[\d\D]*?\*\//g, "$1");
+ })
+
if (options.compress)
filters.push(copy.filter.uglifyjs);
@@ -279,7 +298,7 @@ function buildAce(aceProject, options) {
copy({
source: ace,
filter: exportFilter ? filters.concat(exportFilter) : filters,
- dest: targetDir + '/' + name + suffix
+ dest: targetDir + suffix + '/' + name + ".js"
});
if (options.compat) {
@@ -292,7 +311,7 @@ function buildAce(aceProject, options) {
}
],
filter: filters,
- dest: targetDir + "/" + name + "-compat" + suffix
+ dest: targetDir + suffix + "/" + name + "-compat.js"
});
}
@@ -309,7 +328,7 @@ function buildAce(aceProject, options) {
}
],
filter: filters,
- dest: targetDir + "/mode-" + mode + suffix
+ dest: targetDir + suffix + "/mode-" + mode + ".js"
});
});
@@ -324,7 +343,7 @@ function buildAce(aceProject, options) {
require: ["ace/theme/" + theme]
}],
filter: filters,
- dest: targetDir + "/theme-" + theme + suffix
+ dest: targetDir + suffix + "/theme-" + theme + ".js"
});
});
@@ -373,11 +392,11 @@ function buildAce(aceProject, options) {
source: [
{
project: cloneProject(project),
- require: [ 'ace/keyboard/keybinding/' + keybinding ]
+ require: [ 'ace/keyboard/' + keybinding ]
}
],
filter: filters,
- dest: "build/src/keybinding-" + keybinding + suffix
+ dest: targetDir + suffix + "/keybinding-" + keybinding + ".js"
});
});
}
@@ -423,6 +442,7 @@ function exportAce(ns, module, requireBase) {
var template = function() {
(function() {
REQUIRE_NS.require(["MODULE"], function(a) {
+ a.config.init();
if (!window.NS)
window.NS = {};
for (var key in a) if (a.hasOwnProperty(key))
@@ -443,3 +463,5 @@ function exportAce(ns, module, requireBase) {
if (!module.parent)
main(process.argv);
+else
+ exports.buildAce = buildAce;
diff --git a/api/ace.html b/api/ace.html
index 0aca05f6..f917c97b 100644
--- a/api/ace.html
+++ b/api/ace.html
@@ -24,165 +24,163 @@
+