diff --git a/.eslintrc b/.eslintrc index 21a2ea9c..56a3959f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -45,5 +45,8 @@ rules: default-case: 3 space-after-keywords: [1, "always"] + space-in-parens: [1, "never"] + space-return-throw-case: [1, "always"] + space-before-function-paren: [3, {"named": "never", "anonymous": "never"}] spaced-line-comment: 3 // valid-jsdoc: [1, { requireReturn: false, requireParamDescription: false, prefer: { "return": "return" } }] diff --git a/configs/client-default.js b/configs/client-default.js index 1ff9b389..6636557e 100644 --- a/configs/client-default.js +++ b/configs/client-default.js @@ -309,6 +309,7 @@ module.exports = function(options) { }, "plugins/c9.ide.language/keyhandler", "plugins/c9.ide.language/complete", + "plugins/c9.ide.language/quickfix", "plugins/c9.ide.language/marker", "plugins/c9.ide.language/refactor", "plugins/c9.ide.language/tooltip", @@ -644,7 +645,8 @@ module.exports = function(options) { staticPrefix: staticPrefix + "/plugins/c9.ide.help" }, { - packagePath: "plugins/c9.ide.configuration/configure" + packagePath: "plugins/c9.ide.configuration/configure", + dashboardUrl: options.dashboardUrl, }, "plugins/c9.ide.save/save", "plugins/c9.ide.recentfiles/recentfiles", diff --git a/node_modules/ace/lib/ace/mode/ejs.js b/node_modules/ace/lib/ace/mode/ejs.js index e3fc686f..5161c8a2 100644 --- a/node_modules/ace/lib/ace/mode/ejs.js +++ b/node_modules/ace/lib/ace/mode/ejs.js @@ -52,9 +52,7 @@ var EjsHighlightRules = function(start, end) { }); } - this.embedRules(JavaScriptHighlightRules, "ejs-"); - - this.$rules["ejs-start"].unshift({ + this.embedRules(JavaScriptHighlightRules, "ejs-", [{ token : "markup.list.meta.tag", regex : "-?" + end, next : "pop" @@ -62,17 +60,7 @@ var EjsHighlightRules = function(start, end) { token: "comment", regex: "//.*?" + end, next: "pop" - }); - - this.$rules["ejs-no_regex"].unshift({ - token : "markup.list.meta.tag", - regex : "-?" + end, - next : "pop" - }, { - token: "comment", - regex: "//.*?" + end, - next: "pop" - }); + }]); this.normalizeRules(); }; diff --git a/package.json b/package.json index b8622b39..a44fe219 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.0.2522", + "version": "3.0.2571", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", @@ -55,18 +55,18 @@ "c9" ], "c9plugins": { - "c9.ide.language": "#ad80d6943d", + "c9.ide.language": "#dbf94fff2e", "c9.ide.language.css": "#a649f2a710", "c9.ide.language.generic": "#77d43cfaf0", "c9.ide.language.html": "#0f4078c187", "c9.ide.language.html.diff": "#24f3608d26", - "c9.ide.language.javascript": "#8750399ce0", + "c9.ide.language.javascript": "#2b77bdb96a", "c9.ide.language.javascript.immediate": "#0535804ada", - "c9.ide.language.javascript.eslint": "#08e0af061f", - "c9.ide.language.javascript.tern": "#9bf164ec27", + "c9.ide.language.javascript.eslint": "#bad12e2395", + "c9.ide.language.javascript.tern": "#ad1d9b1b3a", "c9.ide.language.javascript.infer": "#8478e3c702", - "c9.ide.language.jsonalyzer": "#e0d94eda4f", - "c9.ide.collab": "#fd08d9a123", + "c9.ide.language.jsonalyzer": "#875571f514", + "c9.ide.collab": "#fa6d77524f", "c9.ide.local": "#a9703b630c", "c9.ide.find": "#e073bf251a", "c9.ide.find.infiles": "#c132ad243c", @@ -75,20 +75,20 @@ "c9.automate": "#47e2c429c9", "c9.ide.ace.emmet": "#6dc4585e02", "c9.ide.ace.gotoline": "#a8ff07c8f4", - "c9.ide.ace.keymaps": "#43445d6306", + "c9.ide.ace.keymaps": "#bf6d36213f", "c9.ide.ace.repl": "#f3a62c1f2a", "c9.ide.ace.split": "#0ae0151c78", "c9.ide.ace.statusbar": "#d95be89d53", "c9.ide.ace.stripws": "#cf0f42ac59", - "c9.ide.behaviors": "#98461756d9", - "c9.ide.closeconfirmation": "#a28bfd8272", - "c9.ide.configuration": "#a17478a2e5", + "c9.ide.behaviors": "#5e58269f29", + "c9.ide.closeconfirmation": "#cee4674141", + "c9.ide.configuration": "#382b61f4ab", "c9.ide.dialog.wizard": "#7667ec79a8", "c9.ide.fontawesome": "#781602c5d8", "c9.ide.format": "#b0bb91a623", "c9.ide.help.support": "#e95f98f87c", "c9.ide.imgeditor": "#66a9733dc1", - "c9.ide.immediate": "#6845a93705", + "c9.ide.immediate": "#627be383c0", "c9.ide.installer": "#be8d9aa07c", "c9.ide.mount": "#292b312b4b", "c9.ide.navigate": "#6e4efa5b25", @@ -102,7 +102,7 @@ "c9.ide.recentfiles": "#7c099abf40", "c9.ide.remote": "#301d2ab519", "c9.ide.processlist": "#bc11818bb5", - "c9.ide.run": "#db7ca8eb81", + "c9.ide.run": "#6c32e5de36", "c9.ide.run.build": "#ad45874c88", "c9.ide.run.debug.xdebug": "#61dcbd0180", "c9.ide.save": "#cc613b6ead", diff --git a/plugins/c9.ide.editors/tabmanager.js b/plugins/c9.ide.editors/tabmanager.js index c73bf2c7..51f8a51a 100644 --- a/plugins/c9.ide.editors/tabmanager.js +++ b/plugins/c9.ide.editors/tabmanager.js @@ -33,6 +33,7 @@ define(function(require, module, exports) { emit.setMaxListeners(100); var loadFilesAtInit = options.loadFilesAtInit; + var ideProviderName = options.ideProviderName || "Cloud9"; var PREFIX = "/////"; var XPREVIEW = /\.(gz|tar|tgz|zip|rar|jar|exe|pyc|pdf)$/; @@ -468,8 +469,8 @@ define(function(require, module, exports) { function updateTitle(tab) { document.title = tab && settings.getBool("user/tabs/@title") && tab.title - ? tab.title + " - Cloud9" - : c9.projectName + " - Cloud9"; + ? tab.title + " - " + ideProviderName + : c9.projectName + " - " + ideProviderName; } var lastCorner; diff --git a/plugins/c9.ide.help/help.js b/plugins/c9.ide.help/help.js index b4240dee..74716123 100644 --- a/plugins/c9.ide.help/help.js +++ b/plugins/c9.ide.help/help.js @@ -171,7 +171,10 @@ define(function(require, exports, module) { * @singleton **/ plugin.freezePublicAPI({ - + /** + * Shows Cloud9 about dialog + */ + showAbout: showAbout }); register(null, { diff --git a/plugins/c9.ide.help/help.xml b/plugins/c9.ide.help/help.xml index 0f848604..18bbdbc3 100644 --- a/plugins/c9.ide.help/help.xml +++ b/plugins/c9.ide.help/help.xml @@ -21,7 +21,7 @@

- Bas de Wachter, Fabian Jakobs, Harutyun Amirjanyan, + Arron Bailiss, Bas de Wachter, Fabian Jakobs, Harutyun Amirjanyan, Ivar Pruijn, Lennart Kats, Luca Cipriani, Mostafa Eweda, Matthijs van Henten, Nikolai Onken, Tim Robinson, Ruben Daniels

diff --git a/plugins/c9.ide.terminal/terminal.js b/plugins/c9.ide.terminal/terminal.js index 763e4947..d13279e9 100644 --- a/plugins/c9.ide.terminal/terminal.js +++ b/plugins/c9.ide.terminal/terminal.js @@ -65,6 +65,13 @@ define(function(require, exports, module) { "dark-gray" : ["#153649", "#FFFFFF", "#515D77", true] }; + var themeName; + if (options.defaults) { + for (themeName in options.defaults) { + defaults[themeName] = options.defaults[themeName]; + } + } + // Import the CSS ui.insertCss(require("text!./style.css"), options.staticPrefix, handle); diff --git a/plugins/c9.ide.ui/lib/menu/menu.js b/plugins/c9.ide.ui/lib/menu/menu.js index bfce4a33..8c786579 100644 --- a/plugins/c9.ide.ui/lib/menu/menu.js +++ b/plugins/c9.ide.ui/lib/menu/menu.js @@ -954,10 +954,19 @@ apf.menu = function(struct, tagName){ }; this.$initChildren = function() { - this.childNodes.forEach(function(amlNode) { + var ch = this.childNodes; + for (var i = 0; i < ch.length; i++) { + var amlNode = ch[i]; if (!amlNode.$amlLoaded) amlNode.dispatchEvent("DOMNodeInsertedIntoDocument"); - }); + // sometimes DOMNodeInsertedIntoDocument event handler puts $ext at the end of the popup + if (!amlNode.previousSibling || !amlNode.previousSibling.$ext || !amlNode.$ext) + continue; + if (amlNode.$ext.previousSibling == amlNode.previousSibling.$ext) + continue; + if (amlNode.$ext.parentNode == amlNode.previousSibling.$ext.parentNode) + amlNode.$ext.parentNode.insertBefore(amlNode.$ext, amlNode.previousSibling.$ext.nextSibling); + } }; var insertBefore = this.insertBefore; this.insertBefore = function(node, beforeNode) { diff --git a/plugins/c9.vfs.server/vfs.js b/plugins/c9.vfs.server/vfs.js index 4a08c342..46f6b6c5 100644 --- a/plugins/c9.vfs.server/vfs.js +++ b/plugins/c9.vfs.server/vfs.js @@ -128,6 +128,7 @@ Vfs.prototype._watchConnection = function(pid) { function onStderr(data) { // @todo collab stderr logs console.log("VFS stderr [" + pid + "]: " + data); + that.logger.log({message: data, pid: pid}); } master.on("disconnect", onError);