From 9b393e80f1a818719abf1590d302725c8d46d72b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Andr=C3=A9s=20Margffoy=20Tuay?= Date: Tue, 11 Apr 2017 17:54:20 -0500 Subject: [PATCH 1/3] New terminals inherit Spyder current working directory --- spyder_terminal/server/static/js/main.js | 20 +++++++++++++++++++- spyder_terminal/terminalplugin.py | 5 ++++- spyder_terminal/widgets/terminalgui.py | 7 ++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/spyder_terminal/server/static/js/main.js b/spyder_terminal/server/static/js/main.js index de565220..c18419a8 100644 --- a/spyder_terminal/server/static/js/main.js +++ b/spyder_terminal/server/static/js/main.js @@ -4,7 +4,8 @@ var term, socket, pid, charWidth, - charHeight; + charHeight, + path; var terminalContainer = document.getElementById('terminal-container'); @@ -98,6 +99,20 @@ function fitFont(font) { setFont(font); } +function setcwd(cwd) { + console.log(cwd); + path = cwd; +} + +function chdir(path) { + term.send('cd '+path+'\n'); +} + +function clearTerm() +{ + term.send('clear\n'); +} + function closeTerm() { console.log("Closed via server"); term.writeln("Pipe closed") @@ -107,4 +122,7 @@ function runRealTerminal() { term.attach(socket); console.log("Am I Alive?"); term._initialized = true; + term.writeln("Loading..."); + chdir(path); + clearTerm(); } diff --git a/spyder_terminal/terminalplugin.py b/spyder_terminal/terminalplugin.py index 3d8b4e7a..92c8926f 100644 --- a/spyder_terminal/terminalplugin.py +++ b/spyder_terminal/terminalplugin.py @@ -35,6 +35,8 @@ from spyder.py3compat import is_text_string, to_text_string from spyder.utils.misc import select_port +from spyder.py3compat import getcwd + LOCATION = osp.realpath(osp.join(os.getcwd(), osp.dirname(__file__))) @@ -185,7 +187,8 @@ def get_current_term(self): def create_new_term(self, name=None, give_focus=True): """Add a new terminal tab.""" font = self.get_plugin_font() - term = TerminalWidget(self, self.port, font=font.family()) + term = TerminalWidget(self, self.port, path=getcwd(), + font=font.family()) self.add_tab(term) def close_term(self, index=None, term=None): diff --git a/spyder_terminal/widgets/terminalgui.py b/spyder_terminal/widgets/terminalgui.py index dd0de2d4..dfebc547 100644 --- a/spyder_terminal/widgets/terminalgui.py +++ b/spyder_terminal/widgets/terminalgui.py @@ -26,12 +26,13 @@ class TerminalWidget(QFrame): """Terminal widget.""" - def __init__(self, parent, port, font=None): + def __init__(self, parent, port, path='~', font=None): """Frame main constructor.""" QWidget.__init__(self, parent) url = 'http://127.0.0.1:{0}'.format(port) self.view = TermView(self, term_url=url) self.font = font + self.initial_path = path layout = QVBoxLayout() layout.addWidget(self.view) @@ -61,6 +62,7 @@ def setup_term(self, finished): # This forces to display the black background print("\0", end='') self.set_font(self.font) + self.set_dir(self.initial_path) def eval_javascript(self, script): """Evaluate Javascript instructions inside view.""" @@ -69,6 +71,9 @@ def eval_javascript(self, script): else: return self.body.evaluateJavaScript("{}".format(script)) + def set_dir(self, path): + self.eval_javascript('setcwd("{0}")'.format(path)) + def set_font(self, font): """Set terminal font via CSS.""" self.font = font From ead369c069b82e7090a3b727ba2a559f5c7171c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Andr=C3=A9s=20Margffoy=20Tuay?= Date: Tue, 11 Apr 2017 17:57:14 -0500 Subject: [PATCH 2/3] Test timeout increase --- spyder_terminal/tests/test_terminal.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spyder_terminal/tests/test_terminal.py b/spyder_terminal/tests/test_terminal.py index aa30cc3f..0d24d2b0 100644 --- a/spyder_terminal/tests/test_terminal.py +++ b/spyder_terminal/tests/test_terminal.py @@ -21,7 +21,7 @@ LOCATION = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) -TERM_UP = 10000 +TERM_UP = 15000 def check_pwd(termwidget): From 54ba74454552c083c4aeda6745052bb733792e2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Andr=C3=A9s=20Margffoy=20Tuay?= Date: Tue, 11 Apr 2017 18:09:00 -0500 Subject: [PATCH 3/3] Minor pydocstyle corrections --- spyder_terminal/widgets/terminalgui.py | 1 + 1 file changed, 1 insertion(+) diff --git a/spyder_terminal/widgets/terminalgui.py b/spyder_terminal/widgets/terminalgui.py index dfebc547..85a29ea7 100644 --- a/spyder_terminal/widgets/terminalgui.py +++ b/spyder_terminal/widgets/terminalgui.py @@ -72,6 +72,7 @@ def eval_javascript(self, script): return self.body.evaluateJavaScript("{}".format(script)) def set_dir(self, path): + """Set terminal initial current working directory.""" self.eval_javascript('setcwd("{0}")'.format(path)) def set_font(self, font):