Reference plugins for CodeOnTheGo. Each folder is a fully self-contained Gradle project that builds to a .cgp installable plugin file.
See the official plugin documentation for concepts, the plugin API surface, and install workflow.
| Plugin | Purpose |
|---|---|
Beepy/ |
Plays a sound when a build starts, succeeds, or fails. |
apk-viewer/ |
Inspects an APK's contents and surfaces a structural breakdown. |
markdown-preview/ |
Renders Markdown files with a live preview pane in the editor. |
keystore-generator/ |
Generates signing keystores from inside the IDE. |
snippets/ |
Adds user-managed code snippets with prefix-triggered expansions. |
Every plugin is a standalone Gradle project that shares two jars from this repo's root libs/ folder.
cd Beepy
./gradlew assemblePluginThe resulting .cgp file lands under the plugin's build/plugin/ directory. Install it from inside CodeOnTheGo via the Plugin Manager.
Every plugin depends on two jars produced by the CodeOnTheGo source tree:
plugin-api.jar— the interface surface a plugin implements (IPlugin,BuildStatusListener, etc.). Used ascompileOnlyat build time; provided by the IDE at runtime.gradle-plugin.jar— the custom Gradle plugin (com.itsaky.androidide.plugins.build) that packages a compiled Android library into a.cgpfile. Applied viaclasspathin each plugin'ssettings.gradle.kts.
Both jars live in libs/ at the repo root; each plugin references them via ../libs/*.jar. This means a plugin folder is not standalone in isolation — copying just Beepy/ elsewhere will break its build until you also bring libs/ along. The expected workflow is: clone the whole repo, work inside one of the example folders.
Whenever CodeOnTheGo changes the plugin API or the build plugin, the jars need to be rebuilt. Two ways to do that:
Go to Actions → Update libs from CodeOnTheGo and click Run workflow. It will clone CodeOnTheGo at the branch or tag you specify (default: stage), build both jars, and commit them directly to the default branch.
./scripts/update-libs.sh # builds from github.com/appdevforall/CodeOnTheGo@stage
./scripts/update-libs.sh --ref v1.2.0 # pin to a tag or branch
./scripts/update-libs.sh --local ../CodeOnTheGo # use an existing local checkout instead of cloningFirst local run clones CodeOnTheGo into .cache/CodeOnTheGo/ (gitignored); subsequent runs git pull in place. Review the diff in libs/ and commit if you're happy with it.
- Copy
Beepy/to a new folder (e.g.MyPlugin/). - In
MyPlugin/settings.gradle.kts, changerootProject.nametoMyPlugin. - In
MyPlugin/build.gradle.kts, updatepluginBuilder { pluginName = ... }andandroid { namespace ... applicationId ... }. - In
MyPlugin/src/main/AndroidManifest.xml, update theplugin.id,plugin.name,plugin.main_class, and any other metadata. - Replace the source under
MyPlugin/src/main/kotlin/...with your implementation. - Add a row to the Examples table above.