mirror of
https://github.com/powerline/powerline.git
synced 2025-07-26 23:35:04 +02:00
Add documentation about creating listers
This commit is contained in:
parent
a3324134d1
commit
d1782d4aaf
@ -12,6 +12,8 @@ Listers appear in configuration as irregular segments having ``segment_list`` as
|
|||||||
their type and ``segments`` key with a list of segments (a bit more details in
|
their type and ``segments`` key with a list of segments (a bit more details in
|
||||||
:ref:`Themes section of configuration reference <config-themes-segments>`).
|
:ref:`Themes section of configuration reference <config-themes-segments>`).
|
||||||
|
|
||||||
|
More information in :ref:`Writing listers <dev-listers>` section.
|
||||||
|
|
||||||
Currently only Vim listers are available.
|
Currently only Vim listers are available.
|
||||||
|
|
||||||
Vim listers
|
Vim listers
|
||||||
|
@ -7,5 +7,6 @@ Developer guide
|
|||||||
:glob:
|
:glob:
|
||||||
|
|
||||||
develop/segments
|
develop/segments
|
||||||
|
develop/listers
|
||||||
develop/local-themes
|
develop/local-themes
|
||||||
develop/extensions
|
develop/extensions
|
||||||
|
45
docs/source/develop/listers.rst
Normal file
45
docs/source/develop/listers.rst
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
.. _dev-listers:
|
||||||
|
|
||||||
|
***************
|
||||||
|
Writing listers
|
||||||
|
***************
|
||||||
|
|
||||||
|
Listers allow you to show some segments multiple times: once per each entity
|
||||||
|
(buffer, tabpage, etc) lister knows. They are functions which receive the
|
||||||
|
following arguments:
|
||||||
|
|
||||||
|
``pl``
|
||||||
|
A :py:class:`powerline.PowerlineLogger` class instance. It must be used for
|
||||||
|
logging.
|
||||||
|
|
||||||
|
``segment_info``
|
||||||
|
Base segment info dictionary. Lister function or class must have
|
||||||
|
``powerline_requires_segment_info`` to receive this argument.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
Listers are close to useless if they do not have access to this
|
||||||
|
argument.
|
||||||
|
|
||||||
|
Refer to :ref:`segment_info detailed description <dev-segments-info>` for
|
||||||
|
further details.
|
||||||
|
|
||||||
|
And also any other argument(s) specified by user in :ref:`args key
|
||||||
|
<config-themes-seg-args>` (no additional arguments by default).
|
||||||
|
|
||||||
|
Listers must return a sequence of pairs. First item in the pair must contain
|
||||||
|
a ``segment_info`` dictionary specific to one of the listed entities.
|
||||||
|
|
||||||
|
Second item must contain another dictionary: it will be used to modify the
|
||||||
|
resulting segment. In addition to usual keys that describe segment the following
|
||||||
|
keys may be present (it is advised that *only* the following keys will be used):
|
||||||
|
|
||||||
|
``mode``
|
||||||
|
Segment-specific mode. Used to alter segment highlighting.
|
||||||
|
|
||||||
|
``priority_multiplier``
|
||||||
|
Value (usually a ``float``) used to multiply segment priority. It is useful
|
||||||
|
for finer-grained controlling which segments disappear first: e.g. when
|
||||||
|
listing tab pages make first disappear directory names of the tabpages which
|
||||||
|
are most far away from current tabpage, then (when all directory names
|
||||||
|
disappeared) buffer names. Check out existing listers implementation in
|
||||||
|
:file:`powerline/listers/vim.py`.
|
Loading…
x
Reference in New Issue
Block a user