Merge pull request +7346 from c9/revert-7345-revert-7308-salesforce_ace

[WIP] Fix, unrevert "add salesforce modes to cdn""
pull/43/merge
Harutyun Amirjanyan 2015-05-15 16:16:38 +04:00
commit 774a355022
1 zmienionych plików z 59 dodań i 18 usunięć

Wyświetl plik

@ -155,32 +155,73 @@ define(function(require, exports, module) {
process.exit(); process.exit();
} }
}); });
function listAceModules(pathConfig, cb) { function listAceModules(pathConfig, cb) {
// build async loaded ace modules var result = [
var aceModules = ["vim", "emacs", "sublime"].map(function(x) { "plugins/c9.ide.ace.keymaps/vim/keymap",
return "plugins/c9.ide.ace.keymaps/" + x + "/keymap"; "plugins/c9.ide.ace.keymaps/emacs/keymap",
}); "plugins/c9.ide.ace.keymaps/sublime/keymap",
var acePath = __dirname + "/../../node_modules/ace/lib/ace"; ];
function addAceModules(type, excludePattern) {
var files = fs.readdirSync(acePath + "/" + type); // FIXME: this could be resolved via pathConfig:
files.filter(function(p) { var pathMap = {
return !excludePattern.test(p) && !/[\s#]/.test(p) && /.*\.js$/.test(p); "ace": __dirname + "/../../node_modules/ace/lib/ace",
}).forEach(function(p) { "plugins": __dirname + "/../../plugins",
aceModules.push("ace/" + type + "/" + p.slice(0, -3)); };
var packages = [
"ace",
"plugins/c9.ide.salesforce/salesforce.language",
];
function readPackage(name, type, excludePattern) {
if (!excludePattern)
excludePattern = /_test/;
var prefix = name.split("/")[0];
var targetPath = name + "/" + type;
if (!pathMap[prefix])
throw new Error("Cannot map prefix " + prefix + " for package " + name);
var sourcePath = pathMap[prefix] + "/" + targetPath.substr(prefix.length);
try {
var files = fs.readdirSync(sourcePath);
} catch (e) {
if (e.code === "ENOENT") return;
else throw e;
}
files = files.filter(function(p) {
return !excludePattern.test(p)
&& !/[\s#]/.test(p)
&& /\.js$/.test(p);
});
files.forEach(function(p) {
result.push(targetPath + "/" + p.replace(/.js$/, ""));
}); });
} }
addAceModules("mode", /_highlight_rules|_test|_worker|xml_util|_outdent|behaviour|completions/);
addAceModules("theme", /_test/); packages.forEach(function(name) {
addAceModules("ext", /_test/); var isAce = (name === "ace");
addAceModules("snippets", /_test/); var modesExcludePattern = /_highlight_rules|_test|_worker|xml_util|_outdent|behaviour|completions/;
readPackage(name, (isAce ? "mode" : "modes"), modesExcludePattern);
readPackage(name, (isAce ? "theme" : "themes"));
readPackage(name, "ext");
readPackage(name, "snippets");
});
function take() { function take() {
var p = aceModules.pop(); var p = result.pop();
console.log("building ", p, aceModules.length); console.log("building ", p, result.length);
cb(p, aceModules.length && take); cb(p, result.length && take);
} }
take(); take();
} }
function copyStaticResources(usedPlugins, pathConfig, next) { function copyStaticResources(usedPlugins, pathConfig, next) {
var moduleDeps = require("architect-build/module-deps"); var moduleDeps = require("architect-build/module-deps");
var copy = require('architect-build/copy'); var copy = require('architect-build/copy');