From 21a48e997a1c7c69f0aa195db9e6955e2232c504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20Silkeb=C3=A6kken?= Date: Mon, 12 Nov 2012 13:11:19 +0100 Subject: [PATCH] Move vimscript hl statement generation to vim renderer --- lib/renderers/vim.py | 17 +++++++++++++++++ powerline-vim-example.py | 11 +---------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/renderers/vim.py b/lib/renderers/vim.py index 15f1ef9c..cefe9dd7 100644 --- a/lib/renderers/vim.py +++ b/lib/renderers/vim.py @@ -57,3 +57,20 @@ class VimSegmentRenderer(SegmentRenderer): self.hl_groups[hl_group_name] = hl_group return '%#{0}#'.format(hl_group_name) + + def get_hl_statements(self): + '''Return vimscript highlight statements. + + Returns a string with all the required highlight statements for vim. + Requires the statusline to be rendered using the Segment.render() + method first as this method generates all the necessary highlighting + information. + ''' + return '\n'.join(['hi {group} ctermfg={ctermfg} guifg={guifg} guibg={guibg} ctermbg={ctermbg} cterm={attr} gui={attr}'.format( + group=group, + ctermfg=hl['ctermfg'], + guifg='#{0:06x}'.format(hl['guifg']) if hl['guifg'] != 'NONE' else 'NONE', + ctermbg=hl['ctermbg'], + guibg='#{0:06x}'.format(hl['guibg']) if hl['guibg'] != 'NONE' else 'NONE', + attr=','.join(hl['attr']), + ) for group, hl in self.hl_groups.items()]) diff --git a/powerline-vim-example.py b/powerline-vim-example.py index 5103bf57..0cc302d5 100755 --- a/powerline-vim-example.py +++ b/powerline-vim-example.py @@ -29,14 +29,5 @@ powerline = Segment([ renderer = VimSegmentRenderer() stl = powerline.render(renderer) -for group, hl in renderer.hl_groups.items(): - print('hi {group} ctermfg={ctermfg} guifg={guifg} guibg={guibg} ctermbg={ctermbg} cterm={attr} gui={attr}'.format( - group=group, - ctermfg=hl['ctermfg'], - guifg='#{0:06x}'.format(hl['guifg']) if hl['guifg'] != 'NONE' else 'NONE', - ctermbg=hl['ctermbg'], - guibg='#{0:06x}'.format(hl['guibg']) if hl['guibg'] != 'NONE' else 'NONE', - attr=','.join(hl['attr']), - )) - +print(renderer.get_hl_statements()) print('let &stl = "{0}"'.format(stl))