summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Wiens <jordan@psifertex.com>2022-10-17 17:51:40 -0400
committerJordan Wiens <jordan@psifertex.com>2022-10-17 17:51:40 -0400
commitd41f2296da756d3f1916f70fb1db2f67f1549b7c (patch)
tree77cc12483d6a692bb98b5b951827463f51f06af0
parent5ca8304da6dfc67f2feda5888a3c84d2e0c2ef90 (diff)
few missed doc changes
-rw-r--r--docs/dev/plugins.md13
1 files changed, 8 insertions, 5 deletions
diff --git a/docs/dev/plugins.md b/docs/dev/plugins.md
index 981cb148..3de9f089 100644
--- a/docs/dev/plugins.md
+++ b/docs/dev/plugins.md
@@ -1,6 +1,9 @@
-# Writing Python Plugins
+# Writing Plugins
-## Creating the Plugin
+
+## Writing Python Plugins
+
+### Creating the Plugin
First, take a look at some of the [example](https://github.com/Vector35/binaryninja-api/tree/dev/python/examples) plugins, or some of the [community](https://github.com/Vector35/community-plugins) plugins to get a feel for different APIs you might be interested in. Of course, the full [API](https://api.binary.ninja/) docs are online and available offline via the `Help`/`Open Python API Reference...`.
@@ -11,7 +14,7 @@ To start, we suggest you download the [sample plugin](https://github.com/Vector3
- For small scripts, you can include all the code inside of `__init__.py`, though we recommend for most larger scripts that init just act as an initializer and call into functions organized appropriately in other files.
- If you have python dependencies, create a [requirements.txt](https://pip.pypa.io/en/latest/cli/pip_freeze/) listing any python dependencies.
-## Submitting to the Plugin Manager
+### Submitting to the Plugin Manager
If your plugin was created as described above, there's only two steps to get it submitted to the plugin manager!
@@ -20,14 +23,14 @@ If your plugin was created as described above, there's only two steps to get it
For future releases all you need to do is increment the version and create a new release.
-## Using Your Own Plugin Repository
+### Using Your Own Plugin Repository
The simplest way to run your own plugin repository is to duplicate the structure of [https://github.com/vector35/community-plugins](https://github.com/vector35/community-plugins). Specifically, the [plugins.json](https://github.com/Vector35/community-plugins/blob/master/plugins.json), as [listing.json](https://github.com/Vector35/community-plugins/blob/master/listing.json) is used along with [generate_index.py](https://github.com/Vector35/community-plugins/blob/master/generate_index.py) to create that file.
Once you've created your test repository, use the `pluginManager.unofficialName` and `pluginManager.unofficialUrl` settings to add your third-party repository.
The [`add_repository`](https://api.binary.ninja/binaryninja.pluginmanager-module.html#binaryninja.pluginmanager.RepositoryManager.add_repository) API can also be used to add the repository, though it [may require manual creation of the repository folder](https://github.com/Vector35/binaryninja-api/issues/2987).
-## Testing
+### Testing
It's useful to be able to reload your plugin during testing. On the Commercial edition of Binary Ninja, this is easily accomplished with a stand-alone headless install using `import binaryninja` after [installing the API](https://github.com/Vector35/binaryninja-api/blob/dev/scripts/install_api.py). (install_api.py is included in each platforms respective [installation folder](../guide/#binary-path))