From f9ea25ec4e169e57533bc402f44ad5b8f69d195d Mon Sep 17 00:00:00 2001 From: Enrico Date: Fri, 22 Feb 2013 10:48:56 -0300 Subject: [PATCH 1/3] Improved opening file in existing or new tab. --- plugin/jedi_vim.py | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/plugin/jedi_vim.py b/plugin/jedi_vim.py index 0610e1d..048b2a3 100644 --- a/plugin/jedi_vim.py +++ b/plugin/jedi_vim.py @@ -302,27 +302,9 @@ def rename(): def tabnew(path): + "Open a file in a new tab or switch to an existing one" path = os.path.abspath(path) - for tab_nr in range(int(vim.eval("tabpagenr('$')"))): - for buf_nr in vim.eval("tabpagebuflist(%i + 1)" % tab_nr): - buf_nr = int(buf_nr) - 1 - try: - buf_path = vim.buffers[buf_nr].name - except IndexError: - # Just do good old asking for forgiveness. - # don't know why this happens :-) - pass - else: - if buf_path == path: - # tab exists, just switch to that tab - vim.command('tabfirst | tabnext %i' % (tab_nr + 1)) - break - else: - continue - break - else: - # tab doesn't exist, add a new one. - vim.command('tabnew %s' % path) + vim.command('tab drop %s' % path) def escape_file_path(path): From 61f457b666e94f4ffdc61258030277dbb2595443 Mon Sep 17 00:00:00 2001 From: Enrico Date: Sat, 23 Feb 2013 15:57:09 -0300 Subject: [PATCH 2/3] Used `tab drop` only when gui is available. --- plugin/jedi_vim.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/plugin/jedi_vim.py b/plugin/jedi_vim.py index 048b2a3..9d1873f 100644 --- a/plugin/jedi_vim.py +++ b/plugin/jedi_vim.py @@ -304,7 +304,31 @@ def rename(): def tabnew(path): "Open a file in a new tab or switch to an existing one" path = os.path.abspath(path) - vim.command('tab drop %s' % path) + has_gui = vim.eval('has("gui")') == '1' + if has_gui: + vim.command('tab drop %s' % path) + return + + for tab_nr in range(int(vim.eval("tabpagenr('$')"))): + for buf_nr in vim.eval("tabpagebuflist(%i + 1)" % tab_nr): + buf_nr = int(buf_nr) - 1 + try: + buf_path = vim.buffers[buf_nr].name + except IndexError: + # Just do good old asking for forgiveness. + # don't know why this happens :-) + pass + else: + if buf_path == path: + # tab exists, just switch to that tab + vim.command('tabfirst | tabnext %i' % (tab_nr + 1)) + break + else: + continue + break + else: + # tab doesn't exist, add a new one. + vim.command('tabnew %s' % path) def escape_file_path(path): From 7577ddc7a7e679584d789198745ab7aef5133a5e Mon Sep 17 00:00:00 2001 From: Enrico Date: Sat, 23 Feb 2013 16:16:59 -0300 Subject: [PATCH 3/3] Removed `has_gui` variable. --- plugin/jedi_vim.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugin/jedi_vim.py b/plugin/jedi_vim.py index 9d1873f..e03f582 100644 --- a/plugin/jedi_vim.py +++ b/plugin/jedi_vim.py @@ -304,8 +304,7 @@ def rename(): def tabnew(path): "Open a file in a new tab or switch to an existing one" path = os.path.abspath(path) - has_gui = vim.eval('has("gui")') == '1' - if has_gui: + if vim.eval('has("gui")') == '1': vim.command('tab drop %s' % path) return