From 57876a87e9d35210979e6bdb16b9ce1fe1e435d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kim=20Silkeb=C3=A6kken?= Date: Mon, 28 Jan 2013 06:54:38 +0100 Subject: [PATCH] Make highlight_group optional if set in segment function --- powerline/segment.py | 5 +---- powerline/theme.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/powerline/segment.py b/powerline/segment.py index 9d634104..04202b5d 100644 --- a/powerline/segment.py +++ b/powerline/segment.py @@ -5,10 +5,9 @@ import sys class Segment(object): - def __init__(self, ext, path, colorscheme, default_module=None): + def __init__(self, ext, path, default_module=None): self.default_module = default_module or 'powerline.segments.{0}'.format(ext) self.path = path - self.colorscheme = colorscheme def get_function(self, segment): oldpath = sys.path @@ -40,9 +39,7 @@ class Segment(object): 'key': key, 'type': segment_type, 'highlight_group': highlight_group, - 'highlight': self.colorscheme.get_group_highlighting(highlight_group), 'divider_highlight_group': divider_highlight_group, - 'divider_highlight': self.colorscheme.get_group_highlighting(divider_highlight_group) if divider_highlight_group else None, 'before': segment.get('before', ''), 'after': segment.get('after', ''), 'contents_func': contents_func, diff --git a/powerline/theme.py b/powerline/theme.py index 3bf22ea5..f8516980 100644 --- a/powerline/theme.py +++ b/powerline/theme.py @@ -24,7 +24,7 @@ class Theme(object): 'highlight': defaultdict(lambda: {'fg': False, 'bg': False, 'attr': 0}) } self.segment_info = segment_info - get_segment = Segment(ext, common_config['paths'], colorscheme, theme_config.get('default_module')).get + get_segment = Segment(ext, common_config['paths'], theme_config.get('default_module')).get for side in ['left', 'right']: self.segments[side].extend((get_segment(segment, side) for segment in theme_config['segments'].get(side, []))) @@ -32,6 +32,14 @@ class Theme(object): '''Return segment divider.''' return self.dividers[side][type] + def add_highlight(self, segment): + segment['highlight'] = self.colorscheme.get_group_highlighting(segment['highlight_group']) + if segment['divider_highlight_group']: + segment['divider_highlight'] = self.colorscheme.get_group_highlighting(segment['divider_highlight_group']) + else: + segment['divider_highlight'] = None + return segment + def get_segments(self, side=None): '''Return all segments. @@ -62,7 +70,7 @@ class Theme(object): else: continue for segment in parsed_segments: - segment['highlight'] = self.colorscheme.get_group_highlighting(segment['highlight_group']) + segment = self.add_highlight(segment) segment['contents'] = (segment['before'] + unicode(segment['contents']) + segment['after'])\ .ljust(segment['ljust'])\ .rjust(segment['rjust'])