Make highlight_group optional if set in segment function

This commit is contained in:
Kim Silkebækken 2013-01-28 06:54:38 +01:00
parent 17639a9e25
commit 57876a87e9
2 changed files with 11 additions and 6 deletions

View File

@ -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,

View File

@ -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'])