Plover uses Engine Hooks to allow plugins to listen to its steno engine events. This hybrid extension/GUI Tool plugin simply connects into all the known Engine Hooks, and logs out the given parameters to the Plover log, which can be handy during Plover plugin development.
- In the Plover application, open the Plugins Manager (either click the Plugins
Manager icon, or from the
Tools
menu, selectPlugins Manager
). - From the list of plugins, find
plover-steno-engine-hooks
- Click "Install/Update"
- When it finishes installing, restart Plover
- After re-opening Plover, open the Configuration screen (either click the
Configuration icon, or from the main Plover application menu, select
Preferences...
) - Open the Plugins tab
- Check the box next to
plover_steno_engine_hooks
to activate the extension
- After re-opening Plover, click the Steno Engine Hooks Logger button on the Plover application to enable GUI-related logging.
Since both the Extension and GUI Tool logging cover the same ground, you will likely only want to use one at a single time (the extension, or the GUI Tool, depending on what kind of plugin you are developing), otherwise the logs will get very noisy.
To view the logs, open up plover.log
, located under your Plover configuration
directory:
- Windows:
C:\Users\<your username>\AppData\Local\plover
- macOS:
~/Library/Application Support/plover
- Linux:
~/.config/plover
There, you should see entries there prefixed with [STENO ENGINE HOOK (EXTENSION)]
or [STENO ENGINE HOOK (GUI)]
.
If you ever find the logs getting too noisy, then comment out any of the hooks
you don't need to listen to in the _HOOKS
list under the Logger
class.
Clone from GitHub with git and install test-related dependencies with pip:
git clone git@github.com:paulfioravanti/plover-steno-engine-hooks-logger.git
cd plover-steno-engine-hooks-logger
python -m pip install --editable ".[test]"
If you are a Tmuxinator user, you may find my plover_steno_engine_hooks_logger project file of reference.
Plover's Python environment currently uses version 3.9 (see Plover's
workflow_context.yml
to confirm the current version).
So, in order to avoid unexpected issues, use your runtime version manager to make sure your local development environment also uses Python 3.9.x.
Since the only parts of the plugin able to be tested are ones that do not rely directly on Plover, automated testing has not been possible. But, at least there are some code quality checks performed:
Run type checking and linting with the following commands:
pylint plover_steno_engine_hooks_logger
mypy plover_steno_engine_hooks_logger
If you are a just
user, you may find the justfile
useful during
development in running multiple test commands. You can run the following command
from the project root directory:
just
After making any code changes, install the plugin into Plover with the following command:
plover --script plover_plugins install --editable .
When necessary, the plugin can be uninstalled via the command line with the following command:
plover --script plover_plugins uninstall plover-steno-engine-hooks-logger