I’m a Python newbie, so if you are at least that good :-D, you should be able to dive in and write useful Python plugins for your favourite editor too! This is the first in what I hope will be a series of notes and tutorials to help you along the way.
Where can I find examples
to steal from inspire me?
Any good developer knows that a good way to launch into a new area is to look at examples, so here is a list of places I’ve encountered.
- Plugins that came with Kate. These will be in the directory shown when you open the Python plugin configuration page, probably someplace like /usr/share/apps/kate/pate.
Remember to respect others’ copyrights, and give credit where it is due.
Where do I put my code?
The Pâté Python plugin looks in several places to find usable plugins, you should be able to use the Python console to find a directory you can use for your developments. Select it, and press “Reload”:
Launch it from the View menu, and then ask KDE where your files should go:
Or, if that’s a bit hard to read, like this:
>>> from PyKDE4.kdecore import *
>>> print KStandardDirs.locateLocal(“appdata”,”pate”)
Try the directory
If the given directory does not exist, create it. Press Reload, and the new directory should be visible:
You are ready to create your plugin in the new directory! This plugin directory will be added to the initial value of sys.path used for _all_ plugins.
Plugin structure and naming
Your plugin can be just a single .py file, such as “console.py”, or multiple files contained in a directory. A single .py file is useful for simple things, but if you want to use .ui files or multiple Python files, a directory is recommended. If you use this option, the main plugin file must be named after the directory, so:
- If the directory is called “console”
- The main plugin file must be named “console/console.py”
In the directory case, the directory is added to sys.path to load the main plugin file and other Python modules you may have. Since sys.path is _searched_ by Python in order to load modules, having the same plugin in multiple locations would be very confusing. Pâté supports this by refusing to load identically named plugins; instead they are highlighted as being hidden:
This also means you can just copy one of the plugins supplied with Kate to get started!