Create empty segment for single-side statuslines
This commit is contained in:
parent
9104d92555
commit
203a32e778
|
@ -2,14 +2,14 @@
|
|||
|
||||
|
||||
class Colorscheme(object):
|
||||
default_mode_key = '__default__'
|
||||
DEFAULT_MODE_KEY = '__default__'
|
||||
|
||||
def __init__(self, colorscheme):
|
||||
'''Initialize a colorscheme.
|
||||
'''
|
||||
self.colors = {}
|
||||
self.modes_groups = {
|
||||
self.default_mode_key: {}
|
||||
self.DEFAULT_MODE_KEY: {}
|
||||
}
|
||||
|
||||
# Create a dict of color tuples with both a cterm and hex value
|
||||
|
@ -23,7 +23,7 @@ class Colorscheme(object):
|
|||
for group_name, group_props in colorscheme['groups'].items():
|
||||
group_attr_flag = self._get_attr_flag(group_props.get('attr', []))
|
||||
|
||||
self.modes_groups[self.default_mode_key][group_name] = {
|
||||
self.modes_groups[self.DEFAULT_MODE_KEY][group_name] = {
|
||||
'fg': self.colors[group_props['fg']],
|
||||
'bg': self.colors[group_props['bg']],
|
||||
'attr': group_attr_flag,
|
||||
|
@ -73,7 +73,7 @@ class Colorscheme(object):
|
|||
the default mode is returned.
|
||||
'''
|
||||
if not mode or mode not in self.modes_groups:
|
||||
mode = self.default_mode_key
|
||||
mode = self.DEFAULT_MODE_KEY
|
||||
|
||||
try:
|
||||
return self.modes_groups[mode][group]
|
||||
|
|
|
@ -63,11 +63,11 @@ class Renderer(object):
|
|||
'''
|
||||
rendered_highlighted = u''
|
||||
segments_len = len(self.segments)
|
||||
mode = mode if mode in self.segments[0]['highlight'] else Colorscheme.default_mode_key
|
||||
mode = mode if mode in self.segments[0]['highlight'] else Colorscheme.DEFAULT_MODE_KEY
|
||||
|
||||
for index, segment in enumerate(self.segments):
|
||||
prev_segment = self.segments[index - 1] if index > 0 else None
|
||||
next_segment = self.segments[index + 1] if index < segments_len - 1 else None
|
||||
prev_segment = self.segments[index - 1] if index > 0 else self.theme.EMPTY_SEGMENT
|
||||
next_segment = self.segments[index + 1] if index < segments_len - 1 else self.theme.EMPTY_SEGMENT
|
||||
compare_segment = next_segment if segment['side'] == 'left' else prev_segment
|
||||
|
||||
segment['rendered_raw'] = u''
|
||||
|
|
|
@ -9,6 +9,11 @@ class Theme(object):
|
|||
self.dividers = theme_config.get('dividers', common_config['dividers'])
|
||||
self.segments = []
|
||||
|
||||
self.EMPTY_SEGMENT = {
|
||||
'contents': None,
|
||||
'highlight': {self.colorscheme.DEFAULT_MODE_KEY: {'fg': (False, False), 'bg': (False, False), 'attr': 0}}
|
||||
}
|
||||
|
||||
for side in ['left', 'right']:
|
||||
for segment in theme_config['segments'].get(side, []):
|
||||
contents = None
|
||||
|
|
Loading…
Reference in New Issue