diff --git a/node_modules/vfs-local/localfs.js b/node_modules/vfs-local/localfs.js index ca64fc3c..6aefc38f 100644 --- a/node_modules/vfs-local/localfs.js +++ b/node_modules/vfs-local/localfs.js @@ -1828,8 +1828,13 @@ module.exports = function setup(fsOptions) { if (options.idle) options.command = "echo '[Idle]'"; - if (options.terminal) - args.push("export ISOUTPUTPANE=0; export EDITOR='`which c9` open --wait'; " + BASH + " -l"); + if (options.terminal) { + args.push("export ISOUTPUTPANE=0;" + + (options.defaultEditor + ? " export EDITOR='`which c9` open --wait'; " + : "") + + BASH + " -l"); + } else if (options.command) args.push((BASH + " -l -c '" diff --git a/plugins/c9.cli.bridge/bridge_commands.js b/plugins/c9.cli.bridge/bridge_commands.js index 52a29f0f..f21b5934 100644 --- a/plugins/c9.cli.bridge/bridge_commands.js +++ b/plugins/c9.cli.bridge/bridge_commands.js @@ -1,8 +1,8 @@ define(function(require, exports, module) { main.consumes = [ - "Plugin", "bridge", "tabManager", "panels", - "tree.favorites", "tree", "fs" + "Plugin", "bridge", "tabManager", "panels", "tree.favorites", "tree", + "fs", "preferences", "settings" ]; main.provides = ["bridge.commands"]; return main; @@ -13,8 +13,10 @@ define(function(require, exports, module) { var tabManager = imports.tabManager; var panels = imports.panels; var tree = imports.tree; + var settings = imports.settings; var favs = imports["tree.favorites"]; var fs = imports.fs; + var prefs = imports.preferences; var async = require("async"); @@ -41,6 +43,24 @@ define(function(require, exports, module) { break; } }, plugin); + + settings.on("read", function(e) { + settings.setDefaults("user/terminal", [ + ["defaultEditor", "true"] + ]); + }, plugin); + + prefs.add({ + "Editors" : { + "Terminal" : { + "Use Cloud9 as the Default Editor" : { + type: "checkbox", + path: "user/terminal/@defaultEditor", + position: 14000 + } + } + } + }, plugin); } /***** Methods *****/ diff --git a/plugins/c9.ide.terminal/terminal.js b/plugins/c9.ide.terminal/terminal.js index dcc8e9a0..05954eb6 100644 --- a/plugins/c9.ide.terminal/terminal.js +++ b/plugins/c9.ide.terminal/terminal.js @@ -750,6 +750,9 @@ define(function(require, exports, module) { session.__defineGetter__("tab", function(){ return doc.tab }); session.__defineGetter__("doc", function(){ return doc }); + session.__defineGetter__("defaultEditor", function(){ + return settings.getBool("user/terminal/@defaultEditor"); + }); session.attach = function(){ if (session.aceSession && aceterm) { diff --git a/plugins/c9.ide.terminal/tmux_connection.js b/plugins/c9.ide.terminal/tmux_connection.js index fafcfadb..1576ee80 100644 --- a/plugins/c9.ide.terminal/tmux_connection.js +++ b/plugins/c9.ide.terminal/tmux_connection.js @@ -157,6 +157,7 @@ module.exports = function(c9, proc, installPath, shell) { options.output = false; options.terminal = true; options.detachOthers = !session.hasConnected; + options.defaultEditor = session.defaultEditor; } // Connect to backend and start tmux session