mirror of
https://github.com/powerline/powerline.git
synced 2025-07-25 23:05:32 +02:00
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):
|
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.default_module = default_module or 'powerline.segments.{0}'.format(ext)
|
||||||
self.path = path
|
self.path = path
|
||||||
self.colorscheme = colorscheme
|
|
||||||
|
|
||||||
def get_function(self, segment):
|
def get_function(self, segment):
|
||||||
oldpath = sys.path
|
oldpath = sys.path
|
||||||
@ -40,9 +39,7 @@ class Segment(object):
|
|||||||
'key': key,
|
'key': key,
|
||||||
'type': segment_type,
|
'type': segment_type,
|
||||||
'highlight_group': highlight_group,
|
'highlight_group': highlight_group,
|
||||||
'highlight': self.colorscheme.get_group_highlighting(highlight_group),
|
|
||||||
'divider_highlight_group': divider_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', ''),
|
'before': segment.get('before', ''),
|
||||||
'after': segment.get('after', ''),
|
'after': segment.get('after', ''),
|
||||||
'contents_func': contents_func,
|
'contents_func': contents_func,
|
||||||
|
@ -24,7 +24,7 @@ class Theme(object):
|
|||||||
'highlight': defaultdict(lambda: {'fg': False, 'bg': False, 'attr': 0})
|
'highlight': defaultdict(lambda: {'fg': False, 'bg': False, 'attr': 0})
|
||||||
}
|
}
|
||||||
self.segment_info = segment_info
|
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']:
|
for side in ['left', 'right']:
|
||||||
self.segments[side].extend((get_segment(segment, side) for segment in theme_config['segments'].get(side, [])))
|
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 segment divider.'''
|
||||||
return self.dividers[side][type]
|
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):
|
def get_segments(self, side=None):
|
||||||
'''Return all segments.
|
'''Return all segments.
|
||||||
|
|
||||||
@ -62,7 +70,7 @@ class Theme(object):
|
|||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
for segment in parsed_segments:
|
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'])\
|
segment['contents'] = (segment['before'] + unicode(segment['contents']) + segment['after'])\
|
||||||
.ljust(segment['ljust'])\
|
.ljust(segment['ljust'])\
|
||||||
.rjust(segment['rjust'])
|
.rjust(segment['rjust'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user