diff --git a/lib/main.js b/lib/main.js index 39f89d8..afe2c77 100644 --- a/lib/main.js +++ b/lib/main.js @@ -29,6 +29,10 @@ export default { return new TerminalSession(data.config); }, + provideTerminalSession() { + return (config={}) => atom.workspace.open(new TerminalSession(config)); + }, + handleOpen() { return atom.workspace.open(TERMINAL_TAB_URI); }, diff --git a/lib/terminal-session.js b/lib/terminal-session.js index 1cb8c7e..72d5642 100644 --- a/lib/terminal-session.js +++ b/lib/terminal-session.js @@ -116,6 +116,7 @@ export default class TerminalSession { // or the user's home directory. // _getWorkingDirectory() { + if (this.config.cwd) return this.config.cwd; if (this._workingDirectory) return this._workingDirectory; const activeItem = atom.workspace.getActivePaneItem(); diff --git a/package.json b/package.json index 6293220..8e39a55 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,14 @@ "deserializers": { "TerminalSession": "deserializeTerminalSession" }, + "providedServices": { + "terminal-tab": { + "description": "Create terminal-tab sessions", + "versions": { + "0.5.0": "provideTerminalSession" + } + } + }, "eslintConfig": { "env": { "browser": true,