From 120a9cc8facf3fab0ff86be04cb80024f7e5fb62 Mon Sep 17 00:00:00 2001 From: ZyX Date: Sun, 3 Aug 2014 13:23:13 +0400 Subject: [PATCH] Add winnr segment Closes #705 --- .../config_files/colorschemes/vim/__main__.json | 1 + powerline/segments/vim.py | 12 ++++++++++++ tests/test_segments.py | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/powerline/config_files/colorschemes/vim/__main__.json b/powerline/config_files/colorschemes/vim/__main__.json index 9af73a9e..0294a5bb 100644 --- a/powerline/config_files/colorschemes/vim/__main__.json +++ b/powerline/config_files/colorschemes/vim/__main__.json @@ -15,6 +15,7 @@ "single_tab": "line_current", "many_tabs": "line_current", "bufnr": "information:unimportant", + "winnr": "information:unimportant", "tabnr": "file_directory" } } diff --git a/powerline/segments/vim.py b/powerline/segments/vim.py index 6951d0ca..ee69b782 100644 --- a/powerline/segments/vim.py +++ b/powerline/segments/vim.py @@ -516,6 +516,18 @@ def bufnr(pl, segment_info, show_current=False): return str(bufnr) +@requires_segment_info +def winnr(pl, segment_info, show_current=False): + '''Show window number + + :param bool show_current: + If False do not show current window number. + ''' + winnr = segment_info['winnr'] + if show_current or winnr != vim.current.window.number: + return str(winnr) + + def single_tab(pl, single_text='Bufs', multiple_text='Tabs'): '''Show one text if there is only one tab and another if there are many diff --git a/tests/test_segments.py b/tests/test_segments.py index 65ddabc8..58b2a52e 100644 --- a/tests/test_segments.py +++ b/tests/test_segments.py @@ -799,6 +799,12 @@ class TestVim(TestCase): self.assertEqual(vim.bufnr(pl=pl, segment_info=segment_info, show_current=True), str(segment_info['bufnr'])) self.assertEqual(vim.bufnr(pl=pl, segment_info=segment_info, show_current=False), None) + def test_winnr(self): + pl = Pl() + segment_info = vim_module._get_segment_info() + self.assertEqual(vim.winnr(pl=pl, segment_info=segment_info, show_current=True), str(segment_info['winnr'])) + self.assertEqual(vim.winnr(pl=pl, segment_info=segment_info, show_current=False), None) + def test_single_tab(self): pl = Pl() single_tab = partial(vim.single_tab, pl=pl)