mirror of
https://github.com/powerline/powerline.git
synced 2025-07-30 01:05:42 +02:00
Add support for draw_inner_divider
in listers
This commit is contained in:
parent
6106e914e3
commit
a792fb0e1c
@ -23,6 +23,12 @@ following arguments:
|
|||||||
Refer to :ref:`segment_info detailed description <dev-segments-info>` for
|
Refer to :ref:`segment_info detailed description <dev-segments-info>` for
|
||||||
further details.
|
further details.
|
||||||
|
|
||||||
|
``draw_inner_divider``
|
||||||
|
If False (default) soft dividers between segments in the listed group will
|
||||||
|
not be drawn regardless of actual segment settings. If True they will be
|
||||||
|
drawn, again regardless of actual segment settings. Set it to ``None`` in
|
||||||
|
order to respect segment settings.
|
||||||
|
|
||||||
And also any other argument(s) specified by user in :ref:`args key
|
And also any other argument(s) specified by user in :ref:`args key
|
||||||
<config-themes-seg-args>` (no additional arguments by default).
|
<config-themes-seg-args>` (no additional arguments by default).
|
||||||
|
|
||||||
|
@ -10,13 +10,11 @@
|
|||||||
{
|
{
|
||||||
"name": "tabnr",
|
"name": "tabnr",
|
||||||
"after": " ",
|
"after": " ",
|
||||||
"draw_soft_divider": false,
|
|
||||||
"exclude_modes": ["tab", "buf", "buf_nc"],
|
"exclude_modes": ["tab", "buf", "buf_nc"],
|
||||||
"priority": 5
|
"priority": 5
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "file_directory",
|
"name": "file_directory",
|
||||||
"draw_soft_divider": false,
|
|
||||||
"priority": 40
|
"priority": 40
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -95,6 +95,8 @@ def get_attr_func(contents_func, key, args):
|
|||||||
|
|
||||||
def process_segment_lister(pl, segment_info, parsed_segments, side, lister, subsegments, patcher_args):
|
def process_segment_lister(pl, segment_info, parsed_segments, side, lister, subsegments, patcher_args):
|
||||||
for subsegment_info, subsegment_update in lister(pl=pl, segment_info=segment_info, **patcher_args):
|
for subsegment_info, subsegment_update in lister(pl=pl, segment_info=segment_info, **patcher_args):
|
||||||
|
draw_inner_divider = subsegment_update.pop('draw_inner_divider', False)
|
||||||
|
old_pslen = len(parsed_segments)
|
||||||
for subsegment in subsegments:
|
for subsegment in subsegments:
|
||||||
if subsegment_update:
|
if subsegment_update:
|
||||||
subsegment = subsegment.copy()
|
subsegment = subsegment.copy()
|
||||||
@ -102,6 +104,10 @@ def process_segment_lister(pl, segment_info, parsed_segments, side, lister, subs
|
|||||||
if subsegment_update['priority_multiplier'] and subsegment['priority']:
|
if subsegment_update['priority_multiplier'] and subsegment['priority']:
|
||||||
subsegment['priority'] *= subsegment_update['priority_multiplier']
|
subsegment['priority'] *= subsegment_update['priority_multiplier']
|
||||||
process_segment(pl, side, subsegment_info, parsed_segments, subsegment)
|
process_segment(pl, side, subsegment_info, parsed_segments, subsegment)
|
||||||
|
new_pslen = len(parsed_segments)
|
||||||
|
if new_pslen > old_pslen + 1 and draw_inner_divider is not None:
|
||||||
|
for i in range(old_pslen, new_pslen - 1) if side == 'left' else range(old_pslen + 1, new_pslen):
|
||||||
|
parsed_segments[i]['draw_soft_divider'] = draw_inner_divider
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user