blob: 2ddf2234b29bb321e9a9681bc26bba17e7793d9a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
********************************
Creating new powerline extension
********************************
Powerline extension is a code that tells powerline how to highlight and display
segments in some set of applications. Specifically this means
#. Creating a :py:class:`powerline.Powerline` subclass that knows how to obtain
:ref:`local configuration overrides <local-configuration-overrides>`. It also
knows how to load local themes, but not when to apply them.
Instance of this class is the only instance that interacts directly with
bindings code, so it has a proxy :py:meth:`powerline.Powerline.render` and
:py:meth:`powerline.Powerline.shutdown` methods and other methods which may
be useful for bindings.
This subclass must be placed directly in :file:`powerline` directory (e.g. in
:file:`powerline/vim.py`) and named like ``VimPowerline`` (version of the
file name without directory and extension and first capital letter
+ ``Powerline``). There is no technical reason for naming classes like this.
#. Creating a :py:class:`powerline.renderer.Renderer` subclass that knows how to
highlight a segment or reset highlighting to the default value (only makes
sense in prompts). It is also responsible for selecting local themes and
computing text width.
This subclass must be placed directly in :file:`powerline/renderers`
directory (for powerline extensions developed for a set of applications use
:file:`powerline/renderers/{ext}/*.py`) and named like ``ExtRenderer`` or
``AppPromptRenderer``. For technical reasons the class itself must be
referenced in ``renderer`` module attribute thus allowing only one renderer
per one module.
#. Creating an extension bindings. These are to be placed in
:file:`powerline/bindings/{ext}` and may contain virtually anything which may
be required for powerline to work inside given applications, assuming it does
not fit in other places.
Powerline class
===============
.. autoclass:: powerline.Powerline
:members:
Renderer class
==============
.. autoclass:: powerline.renderer.Renderer
:members:
|