diff --git a/.eslintrc b/.eslintrc index e6595427..21a2ea9c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,3 +1,6 @@ +ecmaFeatures: + jsx: true + env: node: true browser: true @@ -5,6 +8,7 @@ env: builtin: true mocha: true jasmine: false + es6: false rules: handle-callback-err: 1 diff --git a/node_modules/connect-architect/connect.render.ejs/render-ejs.js b/node_modules/connect-architect/connect.render.ejs/render-ejs.js index 708745fe..9a544416 100644 --- a/node_modules/connect-architect/connect.render.ejs/render-ejs.js +++ b/node_modules/connect-architect/connect.render.ejs/render-ejs.js @@ -7,7 +7,7 @@ module.exports = function(options, imports, register) { imports["connect.render"].registerEngine("ejs", createView); ejs.filters.JSONToJS = function(obj, indent) { - return JSON.stringify(obj, null, indent).replace(/<\/?script|[\u2028\u2029]/g, function(a) { + return JSON.stringify(obj, null, indent).replace(/<\/?script|[\u2028\u2029]/ig, function(a) { var h = a.charCodeAt(0).toString(16); return (h.length == 2 ? "\\x" : "\\u") + h + a.substr(1); }); diff --git a/package.json b/package.json index 0a942d39..6bbf9ed8 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "emmet": "git://github.com/cloud9ide/emmet-core.git#2ff6dc06ad", "engine.io": "~1.5.1", "engine.io-client": "~1.5.1", - "eslint": "git://github.com/cloud9ide/eslint.git#e2d052aafd81ea0aa6d1d4fd9f88f3613e386160", + "eslint": "git://github.com/cloud9ide/eslint.git#dc500e81162bf0cb4747a4a415c121b0c46975cb", "http-error": "~0.0.5", "less": "^2.4.0", "mime": "~1.2.9", @@ -49,17 +49,17 @@ }, "licenses": [], "c9plugins": { - "c9.ide.language": "#8ef952c6c2", + "c9.ide.language": "#77f75c7635", "c9.ide.language.css": "#ef8a28943e", "c9.ide.language.generic": "#32986699ac", "c9.ide.language.html": "#bbe81afed1", "c9.ide.language.html.diff": "#a7311cfc9f", "c9.ide.language.javascript": "#8479d0a9c1", "c9.ide.language.javascript.immediate": "#9a2cce9121", - "c9.ide.language.javascript.eslint": "#8832423ad1", + "c9.ide.language.javascript.eslint": "#129a16dafb", "c9.ide.language.javascript.tern": "#7aab8b0b6a", "c9.ide.language.javascript.infer": "#cfec494a3c", - "c9.ide.language.jsonalyzer": "#21b64e5820", + "c9.ide.language.jsonalyzer": "#dab3edfca5", "c9.ide.collab": "#da4d09ae6a", "c9.ide.local": "#2bfd7ff051", "c9.ide.find": "#6cc6d3379d", diff --git a/plugins/c9.cli.publish/install.js b/plugins/c9.cli.publish/install.js index ce82d09c..56af7af3 100644 --- a/plugins/c9.cli.publish/install.js +++ b/plugins/c9.cli.publish/install.js @@ -351,7 +351,11 @@ define(function(require, exports, module) { // Untargz package proc.spawn(TAR, { - args: ["-C", normalizePath(packagePath), "-zxvf", normalizePath(gzPath)] + args: [ + (verbose ? "-v" : ""), + "-C", normalizePath(packagePath), + "-zxf", normalizePath(gzPath) + ] }, function(err, p){ if (err) return callback(err); diff --git a/plugins/c9.fs/mock/test_es6.js b/plugins/c9.fs/mock/test_es6.js index dc01bb65..f73b6ab7 100644 --- a/plugins/c9.fs/mock/test_es6.js +++ b/plugins/c9.fs/mock/test_es6.js @@ -45,6 +45,10 @@ array; var qux = {left}; qux; var {p,q} = { p: 1, q: 2}; +p; +q; + +class Blie {} class Model extends Blie { constructor(properties) { diff --git a/plugins/c9.ide.ace/ace.js b/plugins/c9.ide.ace/ace.js index a06b159e..d8f6d7a0 100644 --- a/plugins/c9.ide.ace/ace.js +++ b/plugins/c9.ide.ace/ace.js @@ -149,7 +149,7 @@ define(function(require, exports, module) { // fixes a problem with Ace architect loading /lib/ace // creating a conflict with themes - if (theme.isDark === undefined) + if (!theme || theme.isDark === undefined) throw new Error(); } catch (e) { diff --git a/plugins/c9.ide.dialog.common/question.js b/plugins/c9.ide.dialog.common/question.js index 3c9686a0..705331ce 100644 --- a/plugins/c9.ide.dialog.common/question.js +++ b/plugins/c9.ide.dialog.common/question.js @@ -42,29 +42,31 @@ define(function(require, module, exports) { plugin.allowClose = cancel; - var gotYes = false; + var gotYesNo = false; plugin.once("hide", function(){ - !gotYes && cancel && onNo(false, true, metadata); + !gotYesNo && cancel && onNo(false, true, metadata); }); plugin.update([ { id: "cancel", visible: cancel, onclick: function(){ plugin.hide(); } }, { id: "dontask", visible: showDontAsk }, { id: "yestoall", visible: all, onclick: function(){ - gotYes = true; + gotYesNo = true; plugin.hide(); onYes(true, metadata); }}, { id: "notoall", visible: all, onclick: function(){ + gotYesNo = true; plugin.hide(); onNo(true, false, metadata); }}, { id: "yes", onclick: function(){ - gotYes = true; + gotYesNo = true; plugin.hide(); onYes(false, metadata); }}, { id: "no", onclick: function(){ + gotYesNo = true; plugin.hide(); onNo(false, false, metadata); }} diff --git a/plugins/c9.ide.plugins/installer.js b/plugins/c9.ide.plugins/installer.js index 152e1824..957380c8 100644 --- a/plugins/c9.ide.plugins/installer.js +++ b/plugins/c9.ide.plugins/installer.js @@ -85,9 +85,12 @@ define(function(require, exports, module) { var found = {}, packages = []; config.forEach(function(item){ - if (!found[item.name]) - found[item.name] = true; - else return; + if (typeof item === "string") { + item = { name: item, version: null }; + } + + if (found[item.name]) return; + found[item.name] = true; packages.push({ name: item.name, version: item.version }); }); @@ -110,9 +113,21 @@ define(function(require, exports, module) { function installPlugin(name, version, callback){ // Headless installation of the plugin installer.createSession(name, version, function(session, options){ + var cmd = [ + "c9", + "install", + "--local", + "--force", + "--accessToken=" + auth.accessToken, + ]; + + if (version == null) + cmd.push(escapeShell(name)); + else + cmd.push(escapeShell(name + "@" + version)); + session.install({ - "bash": "c9 install --local --force --accessToken=" + auth.accessToken - + " " + escapeShell(name) + "@" + escapeShell(version) + "bash": cmd.join(" ") }); // Force to start immediately