diff --git a/package.json b/package.json index 615d2938..4d0c955c 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "c9.ide.installer": "#38f5840924", "c9.ide.mount": "#cb45b621f1", "c9.ide.navigate": "#64156c7f4a", - "c9.ide.newresource": "#9a7464cc47", + "c9.ide.newresource": "#3b871089bc", "c9.ide.openfiles": "#28a4f5af16", "c9.ide.preview": "#dba2f4214d", "c9.ide.preview.browser": "#ac18aaf31d", diff --git a/plugins/c9.ide.ace/ace.js b/plugins/c9.ide.ace/ace.js index 996e7794..3fd12c5c 100644 --- a/plugins/c9.ide.ace/ace.js +++ b/plugins/c9.ide.ace/ace.js @@ -1575,7 +1575,7 @@ define(function(require, exports, module) { * @param {Object} syntax * @param {Object} syntax.caption Caption to display in the menu * @param {Number} syntax.order order in the menu - * @param {String} syntax.id The path to corresponding ace language mode. (if doesn't contain "/" assumed to be from "ace/mode/") + * @param {String} syntax.name The path to corresponding ace language mode. (if doesn't contain "/" assumed to be from "ace/mode/") * @param {String} syntax.extensions file extensions in the form "ext1|ext2|^filename". this is case-insensitive */ defineSyntax: defineSyntax, diff --git a/plugins/c9.ide.plugins/debug.js b/plugins/c9.ide.plugins/debug.js index 8a8b97f8..2f2c3e87 100644 --- a/plugins/c9.ide.plugins/debug.js +++ b/plugins/c9.ide.plugins/debug.js @@ -236,103 +236,62 @@ define(function(require, exports, module) { var filename = RegExp.$2; if (filename.indexOf("/") > -1) return; - switch (type) { - case "builders": - parallel.push(function(next){ - fs.readFile(join(path, filename), function(err, data){ - if (err) { - console.error(err); - return next(err); - } - + parallel.push(function(next){ + fs.readFile(join(path, filename), function(err, data){ + if (err) { + console.error(err); + return next(err); + } + + switch (type) { + case "builders": data = util.safeParseJson(data, next); if (!data) return; services.build.addBuilder(filename, data, placeholder); - next(); - }); - }); - break; - case "keymaps": - parallel.push(function(next){ - fs.readFile(join(path, filename), function(err, data){ - if (err) { - console.error(err); - return next(err); - } - + break; + case "keymaps": data = util.safeParseJson(data, next); if (!data) return; services["preferences.keybindings"].addCustomKeymap(filename, data, placeholder); - next(); - }); - }); - break; - case "modes": - parallel.push(function(next){ - - }); - break; - case "outline": - parallel.push(function(next){ - fs.readFile(join(path, filename), function(err, data){ - if (err) { - console.error(err); - return next(err); - } + break; + case "modes": + data = util.safeParseJson(data, next); + if (!data) return; + services.ace.defineSyntax({ + name: join(path, "modes", data.name), + caption: data.caption, + extensions: (data.extensions || []).join("|") + }); + break; + case "outline": data = util.safeParseJson(data, next); if (!data) return; services.outline.addOutlinePlugin(filename, data, placeholder); - next(); - }); - }); - break; - case "runners": - parallel.push(function(next){ - fs.readFile(join(path, filename), function(err, data){ - if (err) { - console.error(err); - return next(err); - } - + break; + case "runners": data = util.safeParseJson(data, next); if (!data) return; services.run.addRunner(filename, data, placeholder); - next(); - }); - }); - break; - case "snippets": - parallel.push(function(next){ - fs.readFile(join(path, filename), function(err, snippet){ - if (err) { - console.error(err); - return next(err); - } - - services.complete.addSnippet(snippet, plugin); - next(); - }); - }); - break; - case "themes": - parallel.push(function(next){ - fs.readFile(join(path, filename), function(err, theme){ - if (err) { - console.error(err); - return next(err); - } - - services.ace.addTheme(theme, placeholder); - next(); - }); - }); - break; - } + break; + case "snippets": + services.complete.addSnippet(data, plugin); + break; + case "themes": + services.ace.addTheme(data, placeholder); + break; + case "template": + services.newresource.addFileTemplate(data, placeholder); + break; + } + + next(); + }); + }); }); return parallel;