Conflicts:
	Makefile.dryice.js
	build/demo/kitchen-sink/kitchen-sink-uncompressed.js
	build/kitchen-sink.html
	build/src/ace-noconflict.js
	build/src/ace.js
	demo/kitchen-sink/demo.js
This commit is contained in:
William Candillon 2012-03-31 10:00:21 +02:00
commit bdb21ff646
437 changed files with 65145 additions and 31979 deletions

View file

@ -51,7 +51,7 @@ function main(args) {
target = null;
}
}
if (!target) {
console.log("--- Ace Dryice Build Tool ---");
console.log("");
@ -61,7 +61,7 @@ function main(args) {
console.log(" bm Runs bookmarklet build of Ace");
process.exit(0);
}
var aceProject = {
roots: [
ACE_HOME + '/lib',
@ -69,7 +69,7 @@ function main(args) {
],
textPluginPattern: /^ace\/requirejs\/text!/
};
if (target == "normal") {
ace(aceProject);
}
@ -91,7 +91,7 @@ function bookmarklet(aceProject) {
source: "build_support/style.css",
dest: targetDir + '/style.css'
});
buildAce(aceProject, {
targetDir: targetDir + "/src",
ns: "__ace_shadowed__",
@ -125,7 +125,7 @@ function ace(aceProject) {
name: "ace",
workers: []
});
// compressed
buildAce(aceProject, {
compress: true,
@ -145,7 +145,7 @@ function ace(aceProject) {
});
console.log('# ace License | Readme | Changelog ---------');
copy({
source: "build_support/editor.html",
dest: "build/editor.html"
@ -175,7 +175,7 @@ function demo(aceProject) {
ref = "";
version = "";
}
copy({
source: "kitchen-sink.html",
dest: "build/kitchen-sink.html",
@ -190,7 +190,7 @@ function demo(aceProject) {
);
}]
});
buildAce(aceProject, {
targetDir: "build/demo/kitchen-sink",
ns: "ace",
@ -200,13 +200,12 @@ function demo(aceProject) {
compat: false,
name: "kitchen-sink",
suffix: "-uncompressed.js",
modes: [],
keybindings: []
});
}
function buildAce(aceProject, options) {
var defaults = {
targetDir: __dirname + "/build/src",
ns: "ace",
@ -220,10 +219,11 @@ function buildAce(aceProject, options) {
modes: [
"css", "html", "javascript", "php", "coldfusion", "python", "lua", "xml", "ruby", "java", "c_cpp",
"coffee", "perl", "csharp", "haxe", "svg", "clojure", "scss", "json", "groovy",
"ocaml", "scala", "textile", "scad", "markdown", "latex", "powershell", "sql", "pgsql", "xquery"
"ocaml", "scala", "textile", "scad", "markdown", "latex", "powershell", "sql",
"text", "pgsql", "sh", "xquery"
],
themes: [
"chrome", "clouds", "clouds_midnight", "cobalt", "crimson_editor", "dawn",
"chrome", "clouds", "clouds_midnight", "cobalt", "crimson_editor", "dawn",
"dreamweaver", "eclipse",
"idle_fingers", "kr_theme", "merbivore", "merbivore_soft",
"mono_industrial", "monokai", "pastel_on_dark", "solarized_dark",
@ -231,14 +231,14 @@ function buildAce(aceProject, options) {
"tomorrow_night_blue", "tomorrow_night_bright", "tomorrow_night_eighties",
"twilight", "vibrant_ink"
],
workers: ["javascript", "coffee", "css"],
workers: ["javascript", "coffee", "css", "json"],
keybindings: ["vim", "emacs"]
};
for(var key in defaults)
if (!options.hasOwnProperty(key))
options[key] = defaults[key];
if (!options.requires)
options.requires = [options.exportModule];
@ -247,18 +247,18 @@ function buildAce(aceProject, options) {
if (options.noconflict) {
filters.push(namespace(options.ns));
if (options.exportModule)
filters.push(exportAce(options.ns, options.exportModule, options.ns));
var exportFilter = exportAce(options.ns, options.exportModule, options.ns);
} else if (options.exportModule) {
filters.push(exportAce(options.ns, options.exportModule));
var exportFilter = exportAce(options.ns, options.exportModule);
}
if (options.compress)
filters.push(copy.filter.uglifyjs);
var suffix = options.suffix;
var targetDir = options.targetDir;
var name = options.name;
var project = copy.createCommonJsProject(aceProject);
var ace = copy.createDataObject();
copy({
@ -267,29 +267,29 @@ function buildAce(aceProject, options) {
});
copy({
source: [
copy.source.commonjs({
{
project: project,
require: options.requires
})
}
],
filter: [ copy.filter.moduleDefines ],
dest: ace
});
copy({
source: ace,
filter: filters,
filter: exportFilter ? filters.concat(exportFilter) : filters,
dest: targetDir + '/' + name + suffix
});
if (options.compat) {
project.assumeAllFilesLoaded();
copy({
source: [
copy.source.commonjs({
{
project: cloneProject(project),
require: [ "pilot/index" ]
})
}
],
filter: filters,
dest: targetDir + "/" + name + "-compat" + suffix
@ -297,38 +297,39 @@ function buildAce(aceProject, options) {
}
console.log('# ace modes ---------');
project.assumeAllFilesLoaded();
options.modes.forEach(function(mode) {
console.log("mode " + mode);
copy({
source: [
copy.source.commonjs({
{
project: cloneProject(project),
require: [ 'ace/mode/' + mode ]
})
}
],
filter: filters,
dest: targetDir + "/mode-" + mode + suffix
});
});
console.log('# ace themes ---------');
project.assumeAllFilesLoaded();
options.themes.forEach(function(theme) {
console.log("theme " + theme);
copy({
source: [{
root: ACE_HOME + '/lib',
include: "ace/theme/" + theme + ".js"
project: cloneProject(project),
require: ["ace/theme/" + theme]
}],
filter: filters,
dest: targetDir + "/theme-" + theme + suffix
});
});
console.log('# ace worker ---------');
options.workers.forEach(function(mode) {
console.log("worker for " + mode + " mode");
var worker = copy.createDataObject();
@ -340,7 +341,7 @@ function buildAce(aceProject, options) {
});
copy({
source: [
copy.source.commonjs({
{
project: workerProject,
require: [
'ace/lib/fixoldbrowsers',
@ -348,7 +349,7 @@ function buildAce(aceProject, options) {
'ace/lib/oop',
'ace/mode/' + mode + '_worker'
]
})
}
],
filter: [ copy.filter.moduleDefines, filterTextPlugin ],
dest: worker
@ -362,18 +363,18 @@ function buildAce(aceProject, options) {
dest: targetDir + "/worker-" + mode + ".js"
});
});
console.log('# ace key bindings ---------');
// copy key bindings
project.assumeAllFilesLoaded();
options.keybindings.forEach(function(keybinding) {
copy({
source: [
copy.source.commonjs({
{
project: cloneProject(project),
require: [ 'ace/keyboard/keybinding/' + keybinding ]
})
}
],
filter: filters,
dest: "build/src/keybinding-" + keybinding + suffix
@ -388,12 +389,12 @@ function cloneProject(project) {
ignores: project.ignoreRequires
});
Object.keys(project.currentFiles).forEach(function(module) {
clone.currentFiles[module] = project.currentFiles[module];
Object.keys(project.currentModules).forEach(function(module) {
clone.currentModules[module] = project.currentModules[module];
});
Object.keys(project.ignoredFiles).forEach(function(module) {
clone.ignoredFiles[module] = project.ignoredFiles[module];
Object.keys(project.ignoredModules).forEach(function(module) {
clone.ignoredModules[module] = project.ignoredModules[module];
});
return clone;
@ -409,7 +410,7 @@ function namespace(ns) {
.toString()
.replace('var ACE_NAMESPACE = "";', 'var ACE_NAMESPACE = "' + ns +'";')
.replace(/\bdefine\(/g, ns + ".define(");
return text;
};
}
@ -418,7 +419,7 @@ function exportAce(ns, module, requireBase) {
requireBase = requireBase || "window";
module = module || "ace/ace";
return function(text) {
var template = function() {
(function() {
REQUIRE_NS.require(["MODULE"], function(a) {
@ -429,7 +430,7 @@ function exportAce(ns, module, requireBase) {
});
})();
};
return (text + ";" + template
.toString()
.replace(/MODULE/g, module)