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