mirror of
				https://github.com/powerline/powerline.git
				synced 2025-10-31 11:34:53 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| ********************************
 | |
| 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:
 |