Make highlight_group optional if set in segment function
This commit is contained in:
parent
17639a9e25
commit
57876a87e9
|
@ -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,
|
||||
|
|
|
@ -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'])
|
||||
|
|
Loading…
Reference in New Issue