diff --git a/.claude/skills/plugin-review/SKILL.md b/.claude/skills/plugin-review/SKILL.md index 33a6a8ba..78e1983a 100644 --- a/.claude/skills/plugin-review/SKILL.md +++ b/.claude/skills/plugin-review/SKILL.md @@ -1,6 +1,6 @@ --- name: cogo-plugin-review -description: Review a Code on the Go (CoGo or cotg) plugin project for submission readiness — verify the assemblePlugin build, audit actual security risks, and score the code against the submission rubric (compatibility, resource discipline, build reproducibility, native binaries, reflection ban, html documentation, tooltips and in-app help, manifest completeness, icons and imagery). Use when the user asks to review, audit, or check a Code On The Go plugin repo. +description: Review a Code on the Go (CoGo or cotg) plugin project for submission readiness — verify the assemblePlugin build, audit actual security risks, and score the code against the submission rubric (compatibility, resource discipline, build reproducibility, native binaries, reflection ban, html documentation, tooltips and in-app help, manifest completeness, icons and imagery). Use when the user asks to review, audit, or check a Code on the Go plugin repo. metadata: author: Hal Eisen keywords: @@ -100,7 +100,7 @@ Search the source tree: - Must be at the top-level of the plugin folder, named after the **plugin folder** (kebab-case) with a `.html` extension: `template-manager/` → `template-manager.html`. The short folder-name form is preferred; a `-documentation` suffix (`random-xkcd-documentation.html`) is also acceptable. Do **not** name it after the lowercase `pluginBuilder { pluginName }` when that differs from the folder (i.e. not `templatemanagerplugin.html`). #### 6.7 Tooltips and in-app help -Code On The Go has a three-tier in-IDE help model: Tier 1 (brief) and Tier 2 (more detail) are tooltips; Tier 3 is a full offline web page reached from a button on the tooltip. Plugins participate through `DocumentationExtension` (all symbols verifiable in `plugin-api.jar`). This is separate from the 6.6 install-decision page — grade them independently. +Code on the Go has a three-tier in-IDE help model: Tier 1 (brief) and Tier 2 (more detail) are tooltips; Tier 3 is a full offline web page reached from a button on the tooltip. Plugins participate through `DocumentationExtension` (all symbols verifiable in `plugin-api.jar`). This is separate from the 6.6 install-decision page — grade them independently. - **Implements the extension**: confirm the main class (or one of the plugin's classes) implements `DocumentationExtension`. `grep -rlE 'DocumentationExtension' src --include='*.kt' --include='*.java'`. Absent → **Fail** (no in-app help at all). - **Every UI element has a tooltip**: reuse the extension enumeration from *Manifest completeness* below. For each contributed `NavigationItem` / `MenuItem` / `TabItem` / FAB / toolbar action, confirm `tooltipTag` is set; for each `EditorTabItem`, confirm `tooltip` is set. Any custom `View` the plugin shows (dialog, fragment, bottom sheet) must be wired to the tooltip system (`IdeTooltipService.showTooltip(...)` or `View.displayTooltipOnLongPress(...)`). One or more contributed elements with no tooltip → **Fail** ("all UI elements" is the bar); a stray non-interactive view missing one → **Partial**. diff --git a/.claude/skills/plugin-review/references/RUBRIC.md b/.claude/skills/plugin-review/references/RUBRIC.md index b82a8a26..640ca6bf 100644 --- a/.claude/skills/plugin-review/references/RUBRIC.md +++ b/.claude/skills/plugin-review/references/RUBRIC.md @@ -31,7 +31,7 @@ Helps potential users of the plugin to decide if they want to download and insta ## 6.7 Tooltips and in-app help -Help must be available *inside* the running IDE, not only in the standalone 6.6 page. Code On The Go uses a three-tier help model and plugins are expected to participate fully: +Help must be available *inside* the running IDE, not only in the standalone 6.6 page. Code on the Go uses a three-tier help model and plugins are expected to participate fully: - **Tier 1 (brief)** and **Tier 2 (more detail)** are delivered as tooltips. A user long-presses any UI element and sees a brief summary, then "See More" for detail. - **Tier 3 (full)** is an exhaustive in-app web page reached from a button on the tooltip, served from the bundled documentation database — no network required. diff --git a/.githooks/pre-push b/.githooks/pre-push index 1164e383..56fd49cc 100755 --- a/.githooks/pre-push +++ b/.githooks/pre-push @@ -2,7 +2,7 @@ # # pre-push nudge (ADFA-4678) # -# Reminds the developer to run the Code On The Go plugin-review skill +# Reminds the developer to run the Code on the Go plugin-review skill # (/plugin-review) before finishing a PR, so peer review isn't spent on # issues the skill catches automatically. # diff --git a/README.md b/README.md index 6661aa5e..2fe33c32 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # plugin-examples -Reference plugins for [CodeOnTheGo](https://github.com/appdevforall/CodeOnTheGo). Each folder is a fully self-contained Gradle project that builds to a `.cgp` installable plugin file. +Reference plugins for [Code on the Go](https://github.com/appdevforall/CodeOnTheGo). Each folder is a fully self-contained Gradle project that builds to a `.cgp` installable plugin file. See the official [plugin documentation](https://www.appdevforall.org/codeonthego/help/exp-plugins-top.html) for concepts, the plugin API surface, and install workflow. @@ -11,7 +11,7 @@ See the official [plugin documentation](https://www.appdevforall.org/codeonthego | [`plugins/APK-Analyzer/`](plugins/APK-Analyzer/) | Inspects the structure of an APK file inside the editor. | | [`plugins/Bookshelf/`](plugins/Bookshelf/) | Offline reference textbooks inside the in-app help. | | [`plugins/Client-Time-Tracker/`](plugins/Client-Time-Tracker/) | Tracks billable time for each project and creates invoices. | -| [`plugins/Code-Suggestions/`](plugins/Code-Suggestions/) | Shows inline code completions as you type. | +| [`plugins/AI-Code-Suggestions/`](plugins/AI-Code-Suggestions/) | Shows inline code completions as you type. | | [`plugins/Code-Together/`](plugins/Code-Together/) | Pair programming between two devices on the same network. | | [`plugins/Favorite-Snippets/`](plugins/Favorite-Snippets/) | Saves your own code snippets and inserts them in the editor. | | [`plugins/Flutter-Templates/`](plugins/Flutter-Templates/) | Adds five Flutter starter projects to the New Project screen. | @@ -43,7 +43,7 @@ cd plugins/Voice-Alerts ./gradlew assemblePlugin ``` -The resulting `.cgp` file lands under the plugin's `build/plugin/` directory. Install it from inside CodeOnTheGo via the Plugin Manager. +The resulting `.cgp` file lands under the plugin's `build/plugin/` directory. Install it from inside Code on the Go via the Plugin Manager. ## Git hooks @@ -65,7 +65,7 @@ when your push doesn't touch any plugin folder. ## The `libs/` folder -Every plugin depends on two jars produced by the CodeOnTheGo source tree: +Every plugin depends on two jars produced by the Code on the Go source tree: - **`plugin-api.jar`** — the interface surface a plugin implements (`IPlugin`, `BuildStatusListener`, etc.). Used as `compileOnly` at 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 `.cgp` file. Applied via `classpath` in each plugin's `settings.gradle.kts`. @@ -74,11 +74,11 @@ Both jars live in `libs/` at the repo root; each plugin references them via `../ ## Refreshing `libs/` -Whenever CodeOnTheGo changes the plugin API or the build plugin, the jars need to be rebuilt. Two ways to do that: +Whenever Code on the Go changes the plugin API or the build plugin, the jars need to be rebuilt. Two ways to do that: ### GitHub Action (normal path) -Go to [Actions → **Update libs from CodeOnTheGo**](../../actions/workflows/update-libs.yml) 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. +Go to [Actions → **Update libs from CodeOnTheGo**](../../actions/workflows/update-libs.yml) and click **Run workflow**. It will clone Code on the Go at the branch or tag you specify (default: `stage`), build both jars, and commit them directly to the default branch. ### Locally @@ -88,7 +88,7 @@ Go to [Actions → **Update libs from CodeOnTheGo**](../../actions/workflows/upd ./scripts/update-libs.sh --local ../CodeOnTheGo # use an existing local checkout instead of cloning ``` -First 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. +First local run clones Code on the Go into `.cache/CodeOnTheGo/` (gitignored); subsequent runs `git pull` in place. Review the diff in `libs/` and commit if you're happy with it. ## Adding a new plugin example diff --git a/docs/process/learnings.md b/docs/process/learnings.md index bd0f7388..c545f624 100644 --- a/docs/process/learnings.md +++ b/docs/process/learnings.md @@ -9,9 +9,9 @@ Cross-session gotchas, discoveries, and patterns worth not re-deriving. ## Android / adb - Pulling SQLite databases out of an emulator-installed app: - - First try `adb -s shell run-as cat databases/ > local.db`. This only works if the app's APK has `android:debuggable="true"`. Code On The Go's release builds do not, so `run-as` returns "package not debuggable" and writes that error string to your output file. + - First try `adb -s shell run-as cat databases/ > local.db`. This only works if the app's APK has `android:debuggable="true"`. Code on the Go's release builds do not, so `run-as` returns "package not debuggable" and writes that error string to your output file. - On an emulator (root-capable), the fallback is `adb root` (one-time per boot) followed by `adb pull /data/data//databases/ .`. This bypasses the debuggable check entirely. Reach for `adb root` early when inspecting/clearing on-device app data — it's far more reliable than fighting `run-as`'s working-directory quirks. -- **Launching Code On The Go via adb — don't use `monkey`.** CoGo *debug* builds bundle **LeakCanary**, which registers its own launcher activity, so `adb shell monkey -p com.itsaky.androidide -c android.intent.category.LAUNCHER 1` (or any bare LAUNCHER intent) may open LeakCanary's "Leaks" screen or a disambiguation chooser instead of the IDE, and the IDE's own activities are not exported (direct `am start` on them is denied). Launch the explicit launcher component: `adb shell am start -n com.itsaky.androidide/.activities.SplashActivity`. +- **Launching Code on the Go via adb — don't use `monkey`.** CoGo *debug* builds bundle **LeakCanary**, which registers its own launcher activity, so `adb shell monkey -p com.itsaky.androidide -c android.intent.category.LAUNCHER 1` (or any bare LAUNCHER intent) may open LeakCanary's "Leaks" screen or a disambiguation chooser instead of the IDE, and the IDE's own activities are not exported (direct `am start` on them is denied). Launch the explicit launcher component: `adb shell am start -n com.itsaky.androidide/.activities.SplashActivity`. - **Plugin Manager icons are Glide-cached.** CoGo loads plugin icons through Glide's disk cache (`/data/data/com.itsaky.androidide/cache/image_manager_disk_cache`), keyed by path without mtime invalidation. Reinstalling a plugin under the same `plugin.id` with changed `icon_day/night.png` keeps showing the **old** icon (the on-disk extracted icon under `app_plugin_icons//` updates correctly, but the rendered bitmap is stale). Clear that cache dir (via `adb root`) and restart, or install on a clean device, to confirm an icon change. Template *thumbnails* are not affected — they're re-read from the `.cgt` each time. ## Plugin build & install gotchas diff --git a/docs/superpowers/plans/2026-09-04-addon-distribution.md b/docs/superpowers/plans/2026-09-04-addon-distribution.md index 35dcd185..7b1f37b5 100644 --- a/docs/superpowers/plans/2026-09-04-addon-distribution.md +++ b/docs/superpowers/plans/2026-09-04-addon-distribution.md @@ -2,7 +2,7 @@ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. -**Goal:** Publish Code On The Go addons to Cloudflare R2 directly from the build job, and stop all use of GitHub Actions artifact storage. +**Goal:** Publish Code on the Go addons to Cloudflare R2 directly from the build job, and stop all use of GitHub Actions artifact storage. **Architecture:** A small Python tool owns addon identity. It derives names from directory names, builds source tarballs, generates a catalog, and uploads to R2. The workflows only call the tool. The tool runs offline against test data, so a pull request can check names and metadata. @@ -21,7 +21,7 @@ Every task must obey this section. 3. Python version is 3.11 or later. 4. Do not change `plugin.id`, `namespace`, or `applicationId` in any addon. 5. The directory name is the only source of addon identity. Do not add an override. -6. Write "Code On The Go" in full in all text that a user reads. Do not write "CoGo", "CotG", or "CodeOnTheGo". +6. Write "Code on the Go" in full in all text that a user reads. Do not write "CoGo", "CotG", or "CodeOnTheGo". 7. Every catalog field is always present. Write `""` or `[]` for an empty value. Never write `null`. Never omit a field. 8. Upload `v1/catalog.json` last, after all other objects. 9. Do not add `actions/upload-artifact` or `actions/download-artifact` to any workflow. @@ -889,7 +889,7 @@ from addons import model README = """# {name} -Source for the {name} addon for Code On The Go. +Source for the {name} addon for Code on the Go. ## Build @@ -1328,11 +1328,11 @@ cat > site/page.template.html <<'EOF' -{{title}} — Code On The Go +{{title}} — Code on the Go -
Code On The Go addons
+
Code on the Go addons
{{body}}
@@ -1621,11 +1621,11 @@ cat > site/index.html <<'EOF' -Addons for Code On The Go +Addons for Code on the Go -

Addons for Code On The Go

+

Addons for Code on the Go

@@ -2151,7 +2151,7 @@ mkdir -p snippets cat > snippets/README.md <<'EOF' # Snippets -Snippet addons for Code On The Go. This directory is empty for now. +Snippet addons for Code on the Go. This directory is empty for now. EOF ``` diff --git a/docs/superpowers/specs/2026-08-27-addon-distribution-prd.md b/docs/superpowers/specs/2026-08-27-addon-distribution-prd.md index e6e489cc..5c05cef0 100644 --- a/docs/superpowers/specs/2026-08-27-addon-distribution-prd.md +++ b/docs/superpowers/specs/2026-08-27-addon-distribution-prd.md @@ -5,7 +5,7 @@ | **Status** | Draft for approval | | **Owner** | Hal Eisen, App Dev For All | | **Date** | 2026-08-27 | -| **Product** | Code On The Go — addon ecosystem | +| **Product** | Code on the Go — addon ecosystem | | **Repo** | `appdevforall/plugin-examples` | > **Scope of this document.** Requirements and behaviors only — what the system must do and why. Mechanism, file layouts, tooling choices, and work sequencing are deliberately absent; they belong in the design document that follows approval of this PRD. @@ -14,7 +14,7 @@ ## 1. Summary -Code On The Go's addons are built in `plugin-examples` and delivered to users through two pieces of infrastructure that are both failing us: +Code on the Go's addons are built in `plugin-examples` and delivered to users through two pieces of infrastructure that are both failing us: 1. **GitHub Actions artifact storage**, which the build consumes so fast that the quota is exhausted within a couple of release runs. 2. **A GreenGeeks WordPress host**, which serves every published `.cgp` and is unstable enough that downloads cannot be relied on. @@ -27,7 +27,7 @@ This PRD defines the requirements for moving addon delivery to a Cloudflare R2 b ### 2.1 What exists today -`plugin-examples` holds 31 independent Gradle projects, each producing a `.cgp` plugin installable through Code On The Go's Plugin Manager. A manually-triggered workflow rebuilds the shared libraries, builds every plugin, and copies the results to a directory on the GreenGeeks host. Users find and download plugins from a page on appdevforall.org. +`plugin-examples` holds 31 independent Gradle projects, each producing a `.cgp` plugin installable through Code on the Go's Plugin Manager. A manually-triggered workflow rebuilds the shared libraries, builds every plugin, and copies the results to a directory on the GreenGeeks host. Users find and download plugins from a page on appdevforall.org. ### 2.2 Measured problems @@ -39,7 +39,7 @@ This PRD defines the requirements for moving addon delivery to a Cloudflare R2 b | **P04** | Published downloads depend on a WordPress host outside our control, reached over SSH with long-lived credentials. | | **P05** | Addon names have drifted. The same plugin can carry one name in its directory, another in the Plugin Manager, a third in its `.cgp` filename, and a fourth in its documentation page. Directory names mix conventions; one plugin hardcodes a version the build is supposed to inject. | | **P06** | All 31 plugins sit at the repository root, leaving no room for the other addon types that are coming. | -| **P07** | **No addon's source is independently obtainable or buildable.** Every addon depends on a shared `libs/` directory one level up, so a single addon directory is not a standalone project — a user who wants to read, build, or modify one must clone the entire repository and infer the layout. Code On The Go is AGPL v3; publishing usable source alongside each binary is the point, not a bonus. | +| **P07** | **No addon's source is independently obtainable or buildable.** Every addon depends on a shared `libs/` directory one level up, so a single addon directory is not a standalone project — a user who wants to read, build, or modify one must clone the entire repository and infer the layout. Code on the Go is AGPL v3; publishing usable source alongside each binary is the point, not a bonus. | ### 2.3 P02 in detail — the publish fan-out @@ -92,7 +92,7 @@ The quota problem blocks releases outright, and the naming drift compounds with - Reducing the size of any addon. - Reducing CI build time or dependency-download cost. - Changing how GitHub Releases work. -- Changing any addon's runtime identity or its behavior inside Code On The Go. +- Changing any addon's runtime identity or its behavior inside Code on the Go. - Building templates, snippets, or code actions. This makes room for them; it does not create them. - User accounts, submissions, ratings, reviews, or download telemetry. - Installing addons directly from the catalog. The catalog links to a file; the Plugin Manager installs it. @@ -103,7 +103,7 @@ The quota problem blocks releases outright, and the naming drift compounds with | User | Need | |---|---| -| **Addon consumer** — a Code On The Go user, usually on an Android phone or tablet. | Find an addon, understand what it does well enough to decide, and download it reliably. | +| **Addon consumer** — a Code on the Go user, usually on an Android phone or tablet. | Find an addon, understand what it does well enough to decide, and download it reliably. | | **App Dev For All maintainer.** | Cut a release without hitting a quota wall, and add an addon without touching a central registry file. | | **Community contributor.** | Have their addon published and credited under their own name. | @@ -112,7 +112,7 @@ The quota problem blocks releases outright, and the naming drift compounds with 1. A user browses the catalog on a phone, searches for a capability, reads the description page, and downloads the addon. 2. A user filters to a single addon type, or to community-contributed addons only. 3. A maintainer triggers a release; every addon and its page publish and are immediately downloadable. -4. A maintainer builds one addon against a development branch of Code On The Go and installs the result on a device to test it. +4. A maintainer builds one addon against a development branch of Code on the Go and installs the result on a device to test it. 5. A contributor's addon appears in the catalog credited to them, linking to their source. --- @@ -186,7 +186,7 @@ Every addon has two HTML pages. They are **not duplicates** and must not be merg | Page | Audience | Answers | |---|---|---| | **Gallery page** — published to the catalog site. | Someone browsing who has never seen this addon. | *"Should I download this at all?"* Information scent: enough to decide, short enough to skim on a phone. | -| **In-app page** — bundled inside the addon, shown in Code On The Go. | Someone who has already installed it. | *"How do I use every feature of this?"* Complete reference documentation. | +| **In-app page** — bundled inside the addon, shown in Code on the Go. | Someone who has already installed it. | *"How do I use every feature of this?"* Complete reference documentation. | | ID | Requirement | |---|---| @@ -307,7 +307,7 @@ They are different products with a shared purpose. One ships now; one is held. | `ndk-installer-plugin` | First-party. Introduced 2026-04-23 by Joel Menchavez. | Ours and first. Becomes `NDK-Installer`, follows the naming standard. Ships. | | `cotg-ndk` | **Community — Aman Khan** (`github.com/aman-khan-786/cotgx-ndk`). | **Held out of the build** pending Q1. Not renamed, not relocated, not published, not in the catalog. | -**Provenance.** Aman Khan built and released a custom NDK engine for the Code On The Go community, announced in the project's Telegram discussion group. App Dev For All could not accept an outside pull request at the time, so a staff engineer implemented it on his behalf. The work is his; the commit authorship is an artifact of that process and must not be mistaken for origin. +**Provenance.** Aman Khan built and released a custom NDK engine for the Code on the Go community, announced in the project's Telegram discussion group. App Dev For All could not accept an outside pull request at the time, so a staff engineer implemented it on his behalf. The work is his; the commit authorship is an artifact of that process and must not be mistaken for origin. **Why it is held.** Publishing a contributor's work under a name and attribution we have not confirmed with them is the wrong order of operations. Holding it costs nothing — the first-party `NDK-Installer` still ships, so users are not left without the capability. The hold is released by answering Q1 with Aman, not by a technical change; the naming and attribution requirements (R36–R38) are already in place to receive the answer. diff --git a/docs/superpowers/specs/2026-09-04-addon-distribution-design.md b/docs/superpowers/specs/2026-09-04-addon-distribution-design.md index 9a7f38db..48739deb 100644 --- a/docs/superpowers/specs/2026-09-04-addon-distribution-design.md +++ b/docs/superpowers/specs/2026-09-04-addon-distribution-design.md @@ -34,7 +34,7 @@ Each was taken during design and is recorded with its rationale so a later reade | **D02** | Root routing by Cloudflare **Transform Rule**, not a Worker, not a redirect. | Configuration only — no deployable code, nothing to version. **Verified live** (§4, V01). A redirect would work but changes the visible URL to `/index.html`. | | **D03** | No cache purge. Bounded staleness via `Cache-Control` at upload. | Cloudflare does not edge-cache HTML or JSON by default, so the catalog, the pages, and the downloads are already current the instant a publish completes. Only icons and tarballs need bounding. This removes the second credential that C04 anticipated: the design needs exactly **one** bucket-scoped token. | | **D04** | Publishing is decoupled from the `libs/` rebuild. | Today shipping one fixed addon means a ~30-minute rebuild of everything. A separate publish workflow makes a one-addon hotfix a short job and gives R09 a natural home. | -| **D05** | A source tarball is **flat**: the archive root is the addon's project root, with the shared jars in its own `libs/`. | Code On The Go reads a folder as a plugin project only when `build.gradle.kts` and `libs/plugin-api.jar` sit in that same folder (`isPluginProject`, `ProjectValidations.kt`), and it picks `assemblePlugin` over `assembleDebug` by the same test (`ProjectManagerImpl.setup`). A two-level mini-repo mirroring this repository needs no path rewriting, but no level of it can be opened on a phone — so the addon that ships the source cannot build it. Rewriting is confined to `(../)+libs/` → `libs/` in the two Gradle files, and §9.6 refuses any archive where a parent reference survives. | +| **D05** | A source tarball is **flat**: the archive root is the addon's project root, with the shared jars in its own `libs/`. | Code on the Go reads a folder as a plugin project only when `build.gradle.kts` and `libs/plugin-api.jar` sit in that same folder (`isPluginProject`, `ProjectValidations.kt`), and it picks `assemblePlugin` over `assembleDebug` by the same test (`ProjectManagerImpl.setup`). A two-level mini-repo mirroring this repository needs no path rewriting, but no level of it can be opened on a phone — so the addon that ships the source cannot build it. Rewriting is confined to `(../)+libs/` → `libs/` in the two Gradle files, and §9.6 refuses any archive where a parent reference survives. | | **D06** | Gallery chrome is injected at publish time, not committed. | The 31 existing pages stay plain HTML that anyone can edit. The published site is still coherent, with no duplicated chrome in git and no manual cache-bust chore. | | **D07** | Icons publish as-is; CSS sizes the tile. | Ships icons now at no cost. The one 24×24 icon will look soft and gets a follow-up issue rather than blocking this work. | | **D08** | R04 is amended to bounded staleness. | Follows from D03. New text in §12.4. | @@ -262,7 +262,7 @@ keystore-generator-src/ Build instructions are then `./gradlew assemblePlugin` in the folder as unpacked. -This is the point of D05. Code On The Go tests for `build.gradle.kts` **and** `libs/plugin-api.jar` in the folder it is given, so only a flat archive can be opened on a phone at all. The cost is the one thing X2/R43 warns about — a rewrite — held to `(../)+libs/` → `libs/` in the two Gradle files, which are the only tracked files that reference the shared jars by path. §9.6 fails the run if any parent reference survives, so a missed rewrite cannot be published. +This is the point of D05. Code on the Go tests for `build.gradle.kts` **and** `libs/plugin-api.jar` in the folder it is given, so only a flat archive can be opened on a phone at all. The cost is the one thing X2/R43 warns about — a rewrite — held to `(../)+libs/` → `libs/` in the two Gradle files, which are the only tracked files that reference the shared jars by path. §9.6 fails the run if any parent reference survives, so a missed rewrite cannot be published. Flattening merges three sources into one directory: the addon's tracked files, the shared jars, and the Gradle wrapper. Every write claims its path first and a second claim is a hard error, so an addon's own `libs/` jar (`Code-Together/libs/shared.jar`) sits beside the shared ones, while a name clash with them stops the run instead of silently overwriting (X2). An addon that tracks its own wrapper keeps it; only the few without one get the repository's. @@ -298,7 +298,7 @@ After assembly and before upload, every tarball is checked: 2. no member path escapes the tarball root, and no path is absolute; 3. `gradlew` and `gradle/wrapper/gradle-wrapper.properties` are present; 4. no `local.properties`, no `.gradle/`, no `build/`, no file matching a credential pattern; -5. `build.gradle.kts` and `settings.gradle.kts` are present **at the archive root**, which is what makes the folder openable in Code On The Go; +5. `build.gradle.kts` and `settings.gradle.kts` are present **at the archive root**, which is what makes the folder openable in Code on the Go; 6. neither of those two files still references a parent directory — a `../` that survived the rewrite would resolve outside the archive and fail only once someone unpacked it and ran a build. Any failure aborts the run (R47). Nothing partial is uploaded. @@ -309,16 +309,16 @@ Any failure aborts the run (R47). Nothing partial is uploaded. ## 10. The catalog -The gallery reads this file. So, before long, will Code On The Go — and that second consumer is what makes the catalog different from every other object we publish. +The gallery reads this file. So, before long, will Code on the Go — and that second consumer is what makes the catalog different from every other object we publish. -The gallery ships from the same bucket as the catalog, so a mistake in the format costs one republish of both. A Code On The Go build cannot be fixed that way. Once a released build parses this document, that build exists in the field indefinitely and can never be corrected. **The catalog is therefore a public contract, not an implementation detail**, and everything below follows from that. +The gallery ships from the same bucket as the catalog, so a mistake in the format costs one republish of both. A Code on the Go build cannot be fixed that way. Once a released build parses this document, that build exists in the field indefinitely and can never be corrected. **The catalog is therefore a public contract, not an implementation detail**, and everything below follows from that. ### 10.1 Consumers | Consumer | Needs | Status | |---|---|---| | The gallery | Everything, rendered as cards. Same-origin. | Built here. | -| Code On The Go | To answer three questions: *what exists*, *do I already have it*, and *is mine current*. | **Nothing exists app-side yet** — see §10.8. | +| Code on the Go | To answer three questions: *what exists*, *do I already have it*, and *is mine current*. | **Nothing exists app-side yet** — see §10.8. | | Third-party tools | A documented, versioned, validatable document. | Enabled by publishing the schema. | A survey of the app found no remote catalog, no listing model, no version comparison, and no HTTP stack. The format is therefore entirely ours to define — with the corresponding obligation to define it well, because there is no prior art to inherit blame from. @@ -694,7 +694,7 @@ Carried from the PRD where still live, plus what the design introduces. | R37 | §7 — name and URL required, email only by consent | | R38 | §6 — a community addon's original naming is preserved | | R39 | §9 — a tarball per published addon | -| R40 | §9.1 — the flat archive root builds standalone, and opens in Code On The Go | +| R40 | §9.1 — the flat archive root builds standalone, and opens in Code on the Go | | R41 | §9.2 — jar set derived per addon by parsing build files | | R42 | §9.1 — root wrapper copied in | | R43 | §9.1 — one bounded rewrite, `(../)+libs/` → `libs/`, enforced by check 6 in §9.6 | diff --git a/plugins/Code-Suggestions/README.md b/plugins/AI-Code-Suggestions/README.md similarity index 53% rename from plugins/Code-Suggestions/README.md rename to plugins/AI-Code-Suggestions/README.md index 54be6251..b24bb949 100644 --- a/plugins/Code-Suggestions/README.md +++ b/plugins/AI-Code-Suggestions/README.md @@ -1,25 +1,30 @@ -# Code Suggestions plugin for CodeOnTheGo +# AI Code Suggestions plugin for Code on the Go + +**Requires the AI Core addon.** This plugin holds no model of its own. It asks +AI Core for every completion, so install AI Core first and select a model in +**AI Assistant → AI Settings**. Without it, this plugin shows no completions. Inline **ghost-text** code completions. As you type, the plugin debounces, asks an LLM for a completion at the cursor, and shows it as dimmed inline text via `IdeEditorService.showInlineSuggestion()`. -> This plugin has **no compile-time dependency** on `ai-core`; it resolves the -> inference service at runtime through the CodeOnTheGo plugin manager -> (SharedServices). Install **`ai-core` first**, then this plugin, and configure -> a model in **AI Assistant → AI Settings**. +> The dependency is at **runtime only** — there is no compile-time dependency +> on `ai-core`. This plugin resolves `LlmInferenceService` through the Code On +> The Go plugin manager (SharedServices), and binds lazily. Until AI Core is +> active it stays silent, then enables itself when the inference service +> appears. ## Architecture ``` -┌──────────────────────────┐ -│ code-suggestions (this) │ ← content-change listener, debounce, ghost text -└────────────┬─────────────┘ - │ SharedServices (runtime) → LlmInferenceService - ▼ -┌──────────────────────────┐ -│ ai-core │ ← LLM inference (local llama.cpp / Gemini) -└──────────────────────────┘ +┌─────────────────────────────┐ +│ ai-code-suggestions (this) │ ← content-change listener, debounce, ghost text +└──────────────┬──────────────┘ + │ SharedServices (runtime) → LlmInferenceService + ▼ +┌─────────────────────────────┐ +│ ai-core │ ← LLM inference (local llama.cpp / Gemini) +└─────────────────────────────┘ ``` ## Features @@ -47,18 +52,18 @@ Prerequisites: Android SDK (API 33+), JDK 17. Create `local.properties` with `sdk.dir=...`. No NDK or native toolchain. ```bash -cd Code-Suggestions -../gradlew assemblePlugin # release -> build/plugin/code-suggestions.cgp -../gradlew assemblePluginDebug # debug variant +cd plugins/AI-Code-Suggestions +./gradlew assemblePlugin # release -> build/plugin/ai-code-suggestions.cgp +./gradlew assemblePluginDebug # debug variant ``` -The build resolves `plugin-api.jar` from the repo-root `../libs/`. +The build resolves `plugin-api.jar` from the repo-root `../../libs/`. ## Installation 1. Build and install **`ai-core` first** (see [`../ai-core/README.md`](../ai-core/README.md)). -2. Build this plugin, install `build/plugin/code-suggestions.cgp` via - CodeOnTheGo's Plugin Manager, and restart the IDE. +2. Build this plugin, install `build/plugin/ai-code-suggestions.cgp` via + Code on the Go's Plugin Manager, and restart the IDE. 3. Configure a model in **AI Assistant → AI Settings**. ## Key classes @@ -68,4 +73,4 @@ The build resolves `plugin-api.jar` from the repo-root `../libs/`. ## License -GPL-3.0 — same as AndroidIDE / CodeOnTheGo. +GPL-3.0 — same as AndroidIDE / Code on the Go. diff --git a/plugins/Code-Suggestions/addon.json b/plugins/AI-Code-Suggestions/addon.json similarity index 82% rename from plugins/Code-Suggestions/addon.json rename to plugins/AI-Code-Suggestions/addon.json index df1c7402..193bfd09 100644 --- a/plugins/Code-Suggestions/addon.json +++ b/plugins/AI-Code-Suggestions/addon.json @@ -1,5 +1,5 @@ { - "summary": "Shows inline code completions as you type.", + "summary": "Inline code completions as you type. Requires the AI Core addon.", "description": "Adds grey ghost text to the editor that completes the line you are writing. The suggestions come from the on-device model that the AI Core addon provides.", "tags": [ "ai", diff --git a/plugins/Code-Suggestions/code-suggestions.html b/plugins/AI-Code-Suggestions/ai-code-suggestions.html similarity index 88% rename from plugins/Code-Suggestions/code-suggestions.html rename to plugins/AI-Code-Suggestions/ai-code-suggestions.html index 04443abe..f67af3b7 100644 --- a/plugins/Code-Suggestions/code-suggestions.html +++ b/plugins/AI-Code-Suggestions/ai-code-suggestions.html @@ -3,7 +3,7 @@ -Code Suggestions +AI Code Suggestions -

Code Suggestions Plugin

+

AI Code Suggestions Plugin

+ +
+ Requires the AI Core addon. This plugin holds no model of its own — + it asks AI Core for every completion. Install AI Core first and + select a model in AI Assistant → AI Settings. Until you do, this + plugin shows no completions. +

Executive overview

-

Code Suggestions adds inline ghost-text code completions to - the Code On The Go editor. As you type, it asks the on-device model provided by +

AI Code Suggestions adds inline ghost-text code completions to + the Code on the Go editor. As you type, it asks the on-device model provided by the companion AI Core plugin for a completion at the cursor and shows it as dimmed text you can accept or ignore.

It is a headless plugin — it has no screens of its own. It depends on @@ -82,7 +89,7 @@

Technical architecture

Usage

    -
  1. Install AI Core, then Code Suggestions, via the Plugin +
  2. Install AI Core, then AI Code Suggestions, via the Plugin Manager and restart the IDE.
  3. Select a local .gguf model in AI Assistant → AI Settings.
  4. diff --git a/plugins/Code-Suggestions/build.gradle.kts b/plugins/AI-Code-Suggestions/build.gradle.kts similarity index 87% rename from plugins/Code-Suggestions/build.gradle.kts rename to plugins/AI-Code-Suggestions/build.gradle.kts index feb78a59..2d77da07 100644 --- a/plugins/Code-Suggestions/build.gradle.kts +++ b/plugins/AI-Code-Suggestions/build.gradle.kts @@ -5,15 +5,15 @@ plugins { } pluginBuilder { - pluginName = "code-suggestions" + pluginName = "ai-code-suggestions" } android { - namespace = "com.itsaky.androidide.plugins.codesuggestions" + namespace = "com.itsaky.androidide.plugins.aicodesuggestions" compileSdk = 36 defaultConfig { - applicationId = "com.itsaky.androidide.plugins.codesuggestions" + applicationId = "com.itsaky.androidide.plugins.aicodesuggestions" minSdk = 33 targetSdk = 36 versionCode = 1 diff --git a/plugins/Code-Suggestions/gradle.properties b/plugins/AI-Code-Suggestions/gradle.properties similarity index 100% rename from plugins/Code-Suggestions/gradle.properties rename to plugins/AI-Code-Suggestions/gradle.properties diff --git a/plugins/Code-Suggestions/gradle/wrapper/gradle-wrapper.jar b/plugins/AI-Code-Suggestions/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from plugins/Code-Suggestions/gradle/wrapper/gradle-wrapper.jar rename to plugins/AI-Code-Suggestions/gradle/wrapper/gradle-wrapper.jar diff --git a/plugins/Code-Suggestions/gradle/wrapper/gradle-wrapper.properties b/plugins/AI-Code-Suggestions/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from plugins/Code-Suggestions/gradle/wrapper/gradle-wrapper.properties rename to plugins/AI-Code-Suggestions/gradle/wrapper/gradle-wrapper.properties diff --git a/plugins/Code-Suggestions/gradlew b/plugins/AI-Code-Suggestions/gradlew similarity index 100% rename from plugins/Code-Suggestions/gradlew rename to plugins/AI-Code-Suggestions/gradlew diff --git a/plugins/Code-Suggestions/gradlew.bat b/plugins/AI-Code-Suggestions/gradlew.bat similarity index 100% rename from plugins/Code-Suggestions/gradlew.bat rename to plugins/AI-Code-Suggestions/gradlew.bat diff --git a/plugins/Code-Suggestions/settings.gradle.kts b/plugins/AI-Code-Suggestions/settings.gradle.kts similarity index 93% rename from plugins/Code-Suggestions/settings.gradle.kts rename to plugins/AI-Code-Suggestions/settings.gradle.kts index e76dc209..f4a5a6d2 100644 --- a/plugins/Code-Suggestions/settings.gradle.kts +++ b/plugins/AI-Code-Suggestions/settings.gradle.kts @@ -17,4 +17,4 @@ dependencyResolutionManagement { repositories { google(); mavenCentral() } } -rootProject.name = "code-suggestions" +rootProject.name = "ai-code-suggestions" diff --git a/plugins/Code-Suggestions/src/main/AndroidManifest.xml b/plugins/AI-Code-Suggestions/src/main/AndroidManifest.xml similarity index 78% rename from plugins/Code-Suggestions/src/main/AndroidManifest.xml rename to plugins/AI-Code-Suggestions/src/main/AndroidManifest.xml index 907294bd..4abbf50b 100644 --- a/plugins/Code-Suggestions/src/main/AndroidManifest.xml +++ b/plugins/AI-Code-Suggestions/src/main/AndroidManifest.xml @@ -1,19 +1,19 @@ + package="com.itsaky.androidide.plugins.aicodesuggestions"> + android:value="com.itsaky.androidide.plugins.aicodesuggestions" /> + android:value="AI Code Suggestions" /> + android:value="com.itsaky.androidide.plugins.aicodesuggestions.CodeSuggestionsPlugin" /> -Code Suggestions — Guide +AI Code Suggestions — Guide -

    Code Suggestions — Guide

    +

    AI Code Suggestions — Guide

    -

    Code Suggestions offers inline ghost-text completions as you +

    AI Code Suggestions offers inline ghost-text completions as you type. Inference is served by the companion AI Core plugin, so install AI Core first and configure a model in AI Assistant → AI Settings.

    diff --git a/plugins/Code-Suggestions/src/main/assets/icon_day.png b/plugins/AI-Code-Suggestions/src/main/assets/icon_day.png similarity index 100% rename from plugins/Code-Suggestions/src/main/assets/icon_day.png rename to plugins/AI-Code-Suggestions/src/main/assets/icon_day.png diff --git a/plugins/Code-Suggestions/src/main/assets/icon_night.png b/plugins/AI-Code-Suggestions/src/main/assets/icon_night.png similarity index 100% rename from plugins/Code-Suggestions/src/main/assets/icon_night.png rename to plugins/AI-Code-Suggestions/src/main/assets/icon_night.png diff --git a/plugins/Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/codesuggestions/CodeSuggestionsPlugin.kt b/plugins/AI-Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/aicodesuggestions/CodeSuggestionsPlugin.kt similarity index 95% rename from plugins/Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/codesuggestions/CodeSuggestionsPlugin.kt rename to plugins/AI-Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/aicodesuggestions/CodeSuggestionsPlugin.kt index 2bb9c683..370c77ff 100644 --- a/plugins/Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/codesuggestions/CodeSuggestionsPlugin.kt +++ b/plugins/AI-Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/aicodesuggestions/CodeSuggestionsPlugin.kt @@ -1,4 +1,4 @@ -package com.itsaky.androidide.plugins.codesuggestions +package com.itsaky.androidide.plugins.aicodesuggestions import android.util.Log import com.itsaky.androidide.plugins.IPlugin @@ -23,7 +23,7 @@ private const val TAG = "CodeSuggestionsPlugin" private const val DEBOUNCE_MS = 800L /** - * Code Suggestions Plugin provides inline ghost-text completions. + * AI Code Suggestions Plugin provides inline ghost-text completions. * * Listens to editor content changes, debounces 800ms, calls LLM for suggestions, * and displays ghost text via IdeEditorService.showInlineSuggestion(). @@ -194,14 +194,14 @@ class CodeSuggestionsPlugin : IPlugin, DocumentationExtension { } // Strict convention: category is "plugin_" so host-derived tooltip lookups resolve. - override fun getTooltipCategory(): String = "plugin_com.itsaky.androidide.plugins.codesuggestions" + override fun getTooltipCategory(): String = "plugin_com.itsaky.androidide.plugins.aicodesuggestions" override fun getTooltipEntries(): List = listOf( PluginTooltipEntry( tag = TOOLTIP_TAG_PLUGIN, - summary = "Code Suggestions shows inline ghost-text completions while typing - tab accepts one.", + summary = "AI Code Suggestions shows inline ghost-text completions while typing - tab accepts one.", detail = """ -

    Code Suggestions listens to editor changes, debounces +

    AI Code Suggestions listens to editor changes, debounces typing, and asks AI Core for a completion at the cursor.

    Accept a suggestion with the key in the symbol row above the keyboard (or Tab on a hardware keyboard); @@ -212,7 +212,7 @@ class CodeSuggestionsPlugin : IPlugin, DocumentationExtension { """.trimIndent(), buttons = listOf( PluginTooltipButton( - description = "Code Suggestions guide", + description = "AI Code Suggestions guide", uri = "index.html", order = 0 ) diff --git a/plugins/Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/codesuggestions/SuggestionProvider.kt b/plugins/AI-Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/aicodesuggestions/SuggestionProvider.kt similarity index 99% rename from plugins/Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/codesuggestions/SuggestionProvider.kt rename to plugins/AI-Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/aicodesuggestions/SuggestionProvider.kt index 10fd524c..6f7f8cb7 100644 --- a/plugins/Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/codesuggestions/SuggestionProvider.kt +++ b/plugins/AI-Code-Suggestions/src/main/kotlin/com/itsaky/androidide/plugins/aicodesuggestions/SuggestionProvider.kt @@ -1,4 +1,4 @@ -package com.itsaky.androidide.plugins.codesuggestions +package com.itsaky.androidide.plugins.aicodesuggestions import android.util.Log import com.itsaky.androidide.plugins.services.LlmInferenceService diff --git a/plugins/Code-Suggestions/src/main/res/values/colors.xml b/plugins/AI-Code-Suggestions/src/main/res/values/colors.xml similarity index 100% rename from plugins/Code-Suggestions/src/main/res/values/colors.xml rename to plugins/AI-Code-Suggestions/src/main/res/values/colors.xml diff --git a/plugins/Code-Suggestions/src/main/res/values/styles.xml b/plugins/AI-Code-Suggestions/src/main/res/values/styles.xml similarity index 100% rename from plugins/Code-Suggestions/src/main/res/values/styles.xml rename to plugins/AI-Code-Suggestions/src/main/res/values/styles.xml diff --git a/plugins/APK-Analyzer/apk-analyzer.html b/plugins/APK-Analyzer/apk-analyzer.html index b07a2ffe..c3564358 100644 --- a/plugins/APK-Analyzer/apk-analyzer.html +++ b/plugins/APK-Analyzer/apk-analyzer.html @@ -90,7 +90,7 @@

    APK Analyzer

    -

    In-IDE APK structural analysis for Code On The Go

    +

    In-IDE APK structural analysis for Code on the Go

    Author: App Dev for All · Package: com.example.apkanalyzer
    @@ -112,7 +112,7 @@

    Contents

    1. Overview

    The APK Viewer Plugin is a comprehensive development tool for - Code On The Go that provides APK analysis capabilities directly within + Code on the Go that provides APK analysis capabilities directly within the IDE. Despite being labeled as a “sample plugin,” it actually implements a fully functional APK analyzer with detailed structural analysis. @@ -188,7 +188,7 @@

    5. Competitive Advantages

  5. IDE-native: no need to switch to external tools
  6. Comprehensive analysis: more detailed than basic APK viewers
  7. Developer-focused: optimized for development workflows
  8. -
  9. Extensible: built on Code On The Go's plugin architecture
  10. +
  11. Extensible: built on Code on the Go's plugin architecture
@@ -213,7 +213,7 @@

7. Technical Requirements

Project structure accessRequired

- This plugin transforms Code On The Go from a code editor into a + This plugin transforms Code on the Go from a code editor into a comprehensive Android development platform by adding essential APK analysis capabilities that developers typically need external tools for. diff --git a/plugins/Bookshelf/addon.json b/plugins/Bookshelf/addon.json index e2ebfa02..366c66c3 100644 --- a/plugins/Bookshelf/addon.json +++ b/plugins/Bookshelf/addon.json @@ -1,6 +1,6 @@ { "summary": "Offline reference textbooks inside the in-app help.", - "description": "Adds a shelf of reference books to the Code On The Go help system. The books are stored on the device, so they work with no network.", + "description": "Adds a shelf of reference books to the Code on the Go help system. The books are stored on the device, so they work with no network.", "tags": [ "docs", "reference", diff --git a/plugins/Bookshelf/bookshelf.html b/plugins/Bookshelf/bookshelf.html index fa7676f4..ab715a61 100644 --- a/plugins/Bookshelf/bookshelf.html +++ b/plugins/Bookshelf/bookshelf.html @@ -57,7 +57,7 @@

Bookshelf Plugin

-

Offline reference textbooks inside Code On The Go's in-IDE help

+

Offline reference textbooks inside Code on the Go's in-IDE help

Author: App Dev for All · Package: org.appdevforall.bookshelfplugin
@@ -78,7 +78,7 @@

1. Executive Overview

Bookshelf bundles a small curated library of programming reference textbooks — covering C, C++, Java, Kotlin, Android, and Pebble - templates — and installs them into Code On The Go's existing in-IDE + templates — and installs them into Code on the Go's existing in-IDE Bookshelf help page. Before the plugin is installed, the Bookshelf entries display a placeholder PDF; after installation, the same entries open the real book. Uninstalling restores the placeholders. @@ -93,7 +93,7 @@

1. Executive Overview

2. Core Functionality

- On install, Bookshelf swaps eight placeholder PDF rows in Code On The Go's + On install, Bookshelf swaps eight placeholder PDF rows in Code on the Go's documentation database for the corresponding compressed textbook. On uninstall, the rows revert to the placeholder. The books shipped today are: @@ -115,7 +115,7 @@

2. Core Functionality

Each book is delivered as a brotli-compressed PDF (.pdf.br) to - keep the bundled .cgp small; Code On The Go's documentation viewer + keep the bundled .cgp small; Code on the Go's documentation viewer decompresses on read.

@@ -156,7 +156,7 @@

3. Technical Architecture

deletes them, and recreates each one by copying the host's t/textbookPlaceholder.pdf row (and its fragments) back into the original path. This relies on the placeholder row already existing in the - schema, which is the case in Code On The Go's stock documentation.db. + schema, which is the case in Code on the Go's stock documentation.db.

getTier3DocsAssetPath() returns null on purpose: @@ -168,7 +168,7 @@

3. Technical Architecture

4. Usage

    -
  1. Open Code On The Go's Plugin Manager.
  2. +
  3. Open Code on the Go's Plugin Manager.
  4. Install the bookshelf.cgp artifact (either from a local file or from the plugin catalog if it has been published there).
  5. Open Help → Bookshelf in the IDE.
  6. @@ -188,7 +188,7 @@

    5. Key Benefits

    install or read time — everything ships inside the .cgp.
  7. Curated. Eight widely-cited free programming - textbooks, hand-picked for relevance to the languages most Code On The Go + textbooks, hand-picked for relevance to the languages most Code on the Go users write.
  8. Non-destructive. Uninstall restores the host's placeholder PDFs, leaving no orphan database state behind.
  9. @@ -210,13 +210,13 @@

    6. Attribution & License

    front matter of each book for the specific terms.

    - The plugin code itself is part of the Code On The Go plugin examples + The plugin code itself is part of the Code on the Go plugin examples repository.

- Bookshelf for Code On The Go · App Dev for All + Bookshelf for Code on the Go · App Dev for All
diff --git a/plugins/Bookshelf/src/main/AndroidManifest.xml b/plugins/Bookshelf/src/main/AndroidManifest.xml index ee1fa9cb..5ed83013 100644 --- a/plugins/Bookshelf/src/main/AndroidManifest.xml +++ b/plugins/Bookshelf/src/main/AndroidManifest.xml @@ -19,7 +19,7 @@ + android:value="Adds reference materials and textbooks that you can access from the Bookshelf page in Code on the Go's help." />

Client Time Tracker Plugin

-

Track billable coding time per project and generate invoices, inside Code On The Go

+

Track billable coding time per project and generate invoices, inside Code on the Go

Version 1.0.0 · Author: App Dev For All · Package: com.appdevforall.contractor.plugin
@@ -111,7 +111,7 @@

Contents

1. Executive Overview

- Client Time Tracker is a Code On The Go plugin for contractors who bill by the hour. + Client Time Tracker is a Code on the Go plugin for contractors who bill by the hour. It adds a Client Time Tracker editor tab, plus a matching side-menu entry, that records billable coding time automatically from editor activity against the projects you register. It turns those sessions into @@ -448,7 +448,7 @@

4.4 Host events (eventbus-events.jar)

Note: any plugin that subscribes to host events over EventBus needs eventbus-events.jar in the repo-root - libs/ folder. It is vendored from Code On The Go's + libs/ folder. It is vendored from Code on the Go's eventbus-events module and used compileOnly. The IDE provides the classes at runtime.
@@ -492,7 +492,7 @@

Building

./gradlew assemblePlugin

Produces plugins/Client-Time-Tracker/build/plugin/client-time-tracker.cgp, the bundle you - sideload into Code On The Go. + sideload into Code on the Go.

Before building: this plugin needs @@ -563,7 +563,7 @@

6. Key Benefits

7. Attribution & License

- Client Time Tracker is an open-source example plugin for Code On The Go. Its source is + Client Time Tracker is an open-source example plugin for Code on the Go. Its source is licensed per the surrounding plugin-examples repository (see LICENSE at the repo root).

diff --git a/plugins/Code-Together/README.md b/plugins/Code-Together/README.md index 36738107..0766d26e 100644 --- a/plugins/Code-Together/README.md +++ b/plugins/Code-Together/README.md @@ -1,6 +1,6 @@ # Code Together -A plugin for [CodeOnTheGo](https://github.com/appdevforall/CodeOnTheGo) that turns the IDE into a real-time collaborative editor. Two phones on the same WiFi share one editing session: one device **hosts**, others **join** by typing the host's `ip:port` or scanning its QR code, and from then on edits, cursors, and file opens flow between devices as they happen — no server, no cloud, no signup. +A plugin for [Code on the Go](https://github.com/appdevforall/CodeOnTheGo) that turns the IDE into a real-time collaborative editor. Two phones on the same WiFi share one editing session: one device **hosts**, others **join** by typing the host's `ip:port` or scanning its QR code, and from then on edits, cursors, and file opens flow between devices as they happen — no server, no cloud, no signup. It surfaces as a **Pair** tab in the editor. Host a session and an invite card shows the address and a QR code; join one and the peer list fills in. When the host types in `MainActivity.kt`, the guest sees the same file open and the text arrive keystroke by keystroke, with each peer's live position shown in the peer list. @@ -11,7 +11,7 @@ cd plugins/Code-Together ../../gradlew clean assemblePlugin ``` -The `.cgp` lands in `build/plugin/`. Install it from inside CodeOnTheGo via the Plugin Manager. Always `clean` first — the plugin builder copies the built APK into the `.cgp` and then deletes the source APK, so an incremental build can package an empty artifact. +The `.cgp` lands in `build/plugin/`. Install it from inside Code on the Go via the Plugin Manager. Always `clean` first — the plugin builder copies the built APK into the `.cgp` and then deletes the source APK, so an incremental build can package an empty artifact. ## How it works @@ -48,7 +48,7 @@ plugins/Code-Together/ Jetpack Compose is linked `compileOnly` (host-provided), not bundled. -> **Note:** Code Together requires an extended `plugin-api` beyond the current `stage` baseline — `IdeProjectService.openProject(File)` (open a project after a pull-model sync) and `IdeEditorService.showPeerCursor` / `hidePeerCursor` / `clearPeerCursors` (inline remote-cursor decoration). These land on the `feat/ADFA-4419-remote-peer-editor-decoration` branch. If `assemblePlugin` fails with unresolved references to those symbols, the shared `libs/` jars are older than the API Code Together needs; refresh them from a CodeOnTheGo build that includes the extensions (`../../scripts/update-libs.sh --local --ref feat/ADFA-4419-remote-peer-editor-decoration`). +> **Note:** Code Together requires an extended `plugin-api` beyond the current `stage` baseline — `IdeProjectService.openProject(File)` (open a project after a pull-model sync) and `IdeEditorService.showPeerCursor` / `hidePeerCursor` / `clearPeerCursors` (inline remote-cursor decoration). These land on the `feat/ADFA-4419-remote-peer-editor-decoration` branch. If `assemblePlugin` fails with unresolved references to those symbols, the shared `libs/` jars are older than the API Code Together needs; refresh them from a Code on the Go build that includes the extensions (`../../scripts/update-libs.sh --local --ref feat/ADFA-4419-remote-peer-editor-decoration`). ## License diff --git a/plugins/Code-Together/code-together.html b/plugins/Code-Together/code-together.html index 4823bea9..02556be4 100644 --- a/plugins/Code-Together/code-together.html +++ b/plugins/Code-Together/code-together.html @@ -365,7 +365,7 @@

4.4 EventBus subscription

feat/ADFA-4419-remote-peer-editor-decoration branch. If assemblePlugin fails with unresolved references to those symbols, the shared libs/ jars are older than the API Code Together needs — refresh - them from a Code On The Go build that includes the extensions + them from a Code on the Go build that includes the extensions (../../scripts/update-libs.sh --local <path> --ref feat/ADFA-4419-remote-peer-editor-decoration).
diff --git a/plugins/Favorite-Snippets/favorite-snippets.html b/plugins/Favorite-Snippets/favorite-snippets.html index d5c54739..9495b859 100644 --- a/plugins/Favorite-Snippets/favorite-snippets.html +++ b/plugins/Favorite-Snippets/favorite-snippets.html @@ -90,7 +90,7 @@

Favorite Snippets

-

User-managed code snippets for the Code On The Go editor

+

User-managed code snippets for the Code on the Go editor

Version 1.0.0 · Author: App Dev For All · Package: org.appdevforall.favoritesnippets
@@ -110,7 +110,7 @@

Contents

1. Executive Overview

- Favorite Snippets is a Code On The Go plugin that lets developers define, manage, + Favorite Snippets is a Code on the Go plugin that lets developers define, manage, and expand their own code snippets directly inside the editor. Snippets are stored per-project as JSON, contributed to the IDE's completion system via SnippetExtension, and managed through a dedicated editor tab @@ -527,7 +527,7 @@

4.7 Permissions

Integration summary

- Code On The Go IDE Host + Code on the Go IDE Host +----------------------------------------------------+ | | | IdeProjectService -- getCurrentProject().rootDir | @@ -568,7 +568,7 @@

Building

Installation

    -
  1. Open Code On The Go's plugin manager.
  2. +
  3. Open Code on the Go's plugin manager.
  4. Import the .cgp file.
  5. The IDE discovers SnippetsPlugin via the manifest metadata and activates it automatically.
  6. diff --git a/plugins/Flutter-Templates/addon.json b/plugins/Flutter-Templates/addon.json index b2b702b3..593387c9 100644 --- a/plugins/Flutter-Templates/addon.json +++ b/plugins/Flutter-Templates/addon.json @@ -1,6 +1,6 @@ { "summary": "Adds five Flutter starter projects to the New Project screen.", - "description": "Installs Flutter project templates so you can start a Flutter app from the New Project screen instead of building the structure by hand. Contributed to Code On The Go by RJ Ali, from an original idea by Raju Kumar.", + "description": "Installs Flutter project templates so you can start a Flutter app from the New Project screen instead of building the structure by hand. Contributed to Code on the Go by RJ Ali, from an original idea by Raju Kumar.", "tags": [ "flutter", "templates", diff --git a/plugins/Flutter-Templates/flutter-templates.html b/plugins/Flutter-Templates/flutter-templates.html index 342a57e7..8a0e6b1b 100644 --- a/plugins/Flutter-Templates/flutter-templates.html +++ b/plugins/Flutter-Templates/flutter-templates.html @@ -86,7 +86,7 @@

    Flutter Templates

    -

    Adds Flutter starter project templates to Code On The Go's New Project screen

    +

    Adds Flutter starter project templates to Code on the Go's New Project screen

    Version 2.0.0 · Author: RJ Ali · Package: com.ali.fluttertemplate
    @@ -106,7 +106,7 @@

    Contents

    1. Executive Overview

    - Flutter Template is a Code On The Go plugin that adds ready-to-use Flutter starter + Flutter Template is a Code on the Go plugin that adds ready-to-use Flutter starter project templates to the IDE's New Project screen, sitting alongside the built-in core (Android) templates. Instead of starting from an empty folder, a developer picks a Flutter template, enters an app name and package name, and the IDE generates a complete, @@ -169,7 +169,7 @@

    3. Technical Architecture

    Template system integration

    - Code On The Go discovers project templates by scanning a templates directory for .cgt + Code on the Go discovers project templates by scanning a templates directory for .cgt archives. A plugin adds its own by calling IdeTemplateService.registerTemplate(), which places the archive where the IDE will find it and reloads the template list — so the plugin's templates appear next to the core ones with no host changes. @@ -233,7 +233,7 @@

    Install

    1. Build the plugin: cd plugins/Flutter-Templates && ./gradlew clean assemblePlugin (produces build/plugin/flutter-templates.cgp).
    2. -
    3. In Code On The Go, open Preferences → Plugin Manager → + and select the +
    4. In Code on the Go, open Preferences → Plugin Manager → + and select the flutter-templates.cgp file.
    5. Enable the plugin. Its templates register automatically.
    @@ -248,7 +248,7 @@

    Create a project

- Building the generated project requires the Flutter SDK, which Code On The Go + Building the generated project requires the Flutter SDK, which Code on the Go does not yet provide on-device. Run flutter pub get / flutter run on a machine with Flutter installed, or once an on-device Flutter SDK becomes available.
@@ -275,7 +275,7 @@

6. Limitations & Scope

  • The plugin scaffolds project files only; it does not install the Flutter/Dart SDK or build/run Flutter projects on-device.
  • -
  • Code On The Go's editor does not currently provide Dart syntax highlighting, completion, or +
  • Code on the Go's editor does not currently provide Dart syntax highlighting, completion, or analysis — these templates create the files, but rich Dart editing is outside the IDE's current language support.
  • On-device Flutter toolchain support is a separate, larger effort tracked independently.
  • @@ -288,7 +288,7 @@

    7. Credits

  • Original idea: Raju Kumar (ADFA-2599).
  • Author / implementation: RJ Ali <rjali3232@gmail.com>, contributed via - the Code On The Go community submission process and rebuilt on the IDE's template system + the Code on the Go community submission process and rebuilt on the IDE's template system (ADFA-3857).
diff --git a/plugins/Get-AI-Models/README.md b/plugins/Get-AI-Models/README.md index e20e491c..d2ba62d6 100644 --- a/plugins/Get-AI-Models/README.md +++ b/plugins/Get-AI-Models/README.md @@ -1,6 +1,6 @@ # Get AI Models -A Code On The Go plugin that adds a **Get AI Models** tab to the project editor's bottom drawer. The +A Code on the Go plugin that adds a **Get AI Models** tab to the project editor's bottom drawer. The tab lists a bundled catalog of small GGUF language-model files; each row downloads one `.gguf` to `/sdcard/Download` and verifies its SHA-256. @@ -22,7 +22,7 @@ Uses the shared repo-root Gradle wrapper and the shared repo-root `libs/` jars wrapper or jars of its own. A `local.properties` containing `sdk.dir=` is required. -Install the resulting `.cgp` through Code On The Go's Plugin Manager, then open a project and look in +Install the resulting `.cgp` through Code on the Go's Plugin Manager, then open a project and look in the editor's bottom drawer. ## Supported IDE versions diff --git a/plugins/Get-AI-Models/get-ai-models.html b/plugins/Get-AI-Models/get-ai-models.html index 258ad465..1f80fae4 100644 --- a/plugins/Get-AI-Models/get-ai-models.html +++ b/plugins/Get-AI-Models/get-ai-models.html @@ -33,7 +33,7 @@

Get AI Models

-

A Code On The Go plugin that adds a "Get AI Models" tab to the project editor's +

A Code on the Go plugin that adds a "Get AI Models" tab to the project editor's bottom drawer, listing a curated catalog of small GGUF language-model files and downloading them to the device with a SHA-256 gate.

@@ -236,7 +236,7 @@

The tab UI

Technical architecture

Shape

-

A standard Code On The Go plugin: an Android application module that installs as a library, +

A standard Code on the Go plugin: an Android application module that installs as a library, applying com.itsaky.androidide.plugins.build and packaged by assemblePlugin into build/plugin/get-ai-models.cgp. The IDE API arrives as compileOnly(files("../../libs/plugin-api.jar")) from the shared repo-root @@ -418,7 +418,7 @@

Build

local.properties with sdk.dir= is required.

Install

-

Copy the .cgp to the device and install it through Code On The Go's Plugin Manager, +

Copy the .cgp to the device and install it through Code on the Go's Plugin Manager, then open a project.

Use

diff --git a/plugins/Icons-Repository/README.md b/plugins/Icons-Repository/README.md index 33bfe115..bb78dd0d 100644 --- a/plugins/Icons-Repository/README.md +++ b/plugins/Icons-Repository/README.md @@ -10,7 +10,7 @@ This plugin was originally created by [OMAR HAIDAR](https://github.com/omar-haid ### **Project overview** -A plugin to help add drawable icons to your Android project on the `CodeOnTheGo` IDE. +A plugin to help add drawable icons to your Android project on the Code on the Go IDE. ### **Requirements and dependencies** @@ -18,7 +18,7 @@ A plugin to help add drawable icons to your Android project on the `CodeOnTheGo` ### **Installation** -Install using the Plugin Manager in `CodeOnTheGo`. +Install using the Plugin Manager in Code on the Go. ### **Building from source** diff --git a/plugins/Icons-Repository/addon.json b/plugins/Icons-Repository/addon.json index bd6edb9e..10009ff8 100644 --- a/plugins/Icons-Repository/addon.json +++ b/plugins/Icons-Repository/addon.json @@ -1,6 +1,6 @@ { "summary": "Adds vector icons to a project from inside the editor.", - "description": "Browses a library of vector drawable icons and writes the one you pick straight into the project resources. Contributed to Code On The Go by Omar Haidar.", + "description": "Browses a library of vector drawable icons and writes the one you pick straight into the project resources. Contributed to Code on the Go by Omar Haidar.", "tags": [ "icons", "resources", diff --git a/plugins/Icons-Repository/icons-repository.html b/plugins/Icons-Repository/icons-repository.html index 1597552d..bd3bf7f4 100644 --- a/plugins/Icons-Repository/icons-repository.html +++ b/plugins/Icons-Repository/icons-repository.html @@ -51,14 +51,14 @@

Icons Repository

-

A Code On The Go plugin that adds vector drawable icons to Android projects directly from inside the IDE.

+

A Code on the Go plugin that adds vector drawable icons to Android projects directly from inside the IDE.

Executive overview

- Icons Repository is a sidebar extension for the Code On The Go IDE that lets developers browse a bundled library of Material-style icons and import any of them into the current Android project as a Vector Drawable XML. The plugin replaces the manual "find an SVG, convert it, copy it into res/drawable, fix the colors" loop with a single dialog: pick an icon, optionally pick a tint, hit Import. The result is committed-ready XML in the project's res/drawable directory with no external network calls and no SDK changes required. + Icons Repository is a sidebar extension for the Code on the Go IDE that lets developers browse a bundled library of Material-style icons and import any of them into the current Android project as a Vector Drawable XML. The plugin replaces the manual "find an SVG, convert it, copy it into res/drawable, fix the colors" loop with a single dialog: pick an icon, optionally pick a tint, hit Import. The result is committed-ready XML in the project's res/drawable directory with no external network calls and no SDK changes required.

- The plugin targets Code On The Go versions 26.17 through 26.22 and runs on Android API 26 and above. + The plugin targets Code on the Go versions 26.17 through 26.22 and runs on Android API 26 and above.

Originally created by OMAR HAIDAR (upstream repository) and included in this collection with attribution. @@ -76,7 +76,7 @@

Core functionality

Technical architecture

- The plugin is a standard Code On The Go plugin module built with the com.itsaky.androidide.plugins.build Gradle plugin. The output of ./gradlew assemblePlugin is a .cgp bundle (signed APK with the plugin metadata) ready for the IDE's Plugin Manager. + The plugin is a standard Code on the Go plugin module built with the com.itsaky.androidide.plugins.build Gradle plugin. The output of ./gradlew assemblePlugin is a .cgp bundle (signed APK with the plugin metadata) ready for the IDE's Plugin Manager.

Module layout

@@ -108,7 +108,7 @@

Lifecycle and resource discipline

Usage

Installation

    -
  1. Open Code On The Go.
  2. +
  3. Open Code on the Go.
  4. Open the Plugin Manager.
  5. Install Icons Repository.
diff --git a/plugins/Jetpack-Compose-Preview/README.md b/plugins/Jetpack-Compose-Preview/README.md index 3d274c4c..86f01a9e 100644 --- a/plugins/Jetpack-Compose-Preview/README.md +++ b/plugins/Jetpack-Compose-Preview/README.md @@ -1,6 +1,6 @@ # Jetpack Compose Preview -A plugin for [CodeOnTheGo](https://github.com/appdevforall/CodeOnTheGo) that renders Jetpack Compose `@Preview` composables **on-device** — it compiles and runs the previews inside the IDE, without a full app build-and-run. +A plugin for [Code on the Go](https://github.com/appdevforall/CodeOnTheGo) that renders Jetpack Compose `@Preview` composables **on-device** — it compiles and runs the previews inside the IDE, without a full app build-and-run. Surfaces as a preview action in the editor toolbar, shown only when a Kotlin file containing `@Preview` is open (on those files it also hides the built-in XML layout-preview action, so there's a single preview entry point). Tapping it opens a **Jetpack Compose Preview** screen that renders every `@Preview` in the file, honoring light/dark, `@PreviewParameter`, and per-preview background and size. @@ -11,7 +11,7 @@ cd Jetpack-Compose-Preview ./gradlew assemblePlugin ``` -The `.cgp` lands in `build/plugin/`. Install it from inside Code On The Go via the Plugin Manager. +The `.cgp` lands in `build/plugin/`. Install it from inside Code on the Go via the Plugin Manager. ## How it works @@ -29,4 +29,4 @@ The `.cgp` lands in `build/plugin/`. Install it from inside Code On The Go via t Unlike most example plugins, this one **bundles Jetpack Compose itself** (`compose-bom` as `implementation`) into the `.cgp` and ships the on-device compile toolchain under `assets/`. -> **Note:** this plugin requires the extended `plugin-api` — `IdeProjectService.getModuleContext`, `UIExtension.getHiddenToolbarActionIds`, `ToolbarAction.isVisibleProvider`, and `IdeBuildService.executeTasks`. If `assemblePlugin` fails with unresolved references to those, the shared `libs/` jars are older than the API this plugin needs; refresh them from a CodeOnTheGo build that includes the extensions (`../scripts/update-libs.sh --local `). +> **Note:** this plugin requires the extended `plugin-api` — `IdeProjectService.getModuleContext`, `UIExtension.getHiddenToolbarActionIds`, `ToolbarAction.isVisibleProvider`, and `IdeBuildService.executeTasks`. If `assemblePlugin` fails with unresolved references to those, the shared `libs/` jars are older than the API this plugin needs; refresh them from a Code on the Go build that includes the extensions (`../scripts/update-libs.sh --local `). diff --git a/plugins/Jetpack-Compose-Preview/jetpack-compose-preview.html b/plugins/Jetpack-Compose-Preview/jetpack-compose-preview.html index fc45f99b..63affd1b 100644 --- a/plugins/Jetpack-Compose-Preview/jetpack-compose-preview.html +++ b/plugins/Jetpack-Compose-Preview/jetpack-compose-preview.html @@ -111,7 +111,7 @@

Contents

1. Executive Overview

- Compose Preview is a Code On The Go plugin that renders Jetpack Compose + Compose Preview is a Code on the Go plugin that renders Jetpack Compose @Preview functions directly on the device. Open a Kotlin file that contains previews, tap the Compose preview action in the editor toolbar, and the plugin draws your composables on a screen-sized @@ -363,7 +363,7 @@

Building

./gradlew clean assemblePluginDebug # or assemblePlugin for release

Produces plugins/Jetpack-Compose-Preview/build/plugin/jetpack-compose-preview-debug.cgp, - the bundle you sideload into Code On The Go. + the bundle you sideload into Code on the Go.

Always clean first. The plugin builder copies the @@ -415,7 +415,7 @@

6. Key Benefits

7. Attribution & License

- Compose Preview is an open-source example plugin for Code On The Go. Its source + Compose Preview is an open-source example plugin for Code on the Go. Its source is licensed per the surrounding plugin-examples repository (see LICENSE at the repo root).

diff --git a/plugins/Keystore-Generator/keystore-generator.html b/plugins/Keystore-Generator/keystore-generator.html index 4305fd52..0a8e8fda 100644 --- a/plugins/Keystore-Generator/keystore-generator.html +++ b/plugins/Keystore-Generator/keystore-generator.html @@ -90,7 +90,7 @@

Keystore Generator Plugin

-

Generate Android release keystores directly from Code On The Go

+

Generate Android release keystores directly from Code on the Go

Version 1.0.3 · Author: App Dev for All · Package: com.appdevforall.keygen.plugin
@@ -113,7 +113,7 @@

Contents

1. Executive Overview

The Keystore Generator Plugin is a comprehensive - Code On The Go plugin that enables Android developers to + Code on the Go plugin that enables Android developers to generate secure keystores directly within their development environment. This plugin eliminates the need for external tools and command-line operations, providing a seamless, integrated solution @@ -309,7 +309,7 @@

Plugin packaging

- +
AttributeValue
Build targetAndroid application (APK)
Package format.cgp (Code On The Go plugin)
Package format.cgp (Code on the Go plugin)
DistributionRelease and debug variants available
DependenciesSelf-contained, including the BouncyCastle library
@@ -317,7 +317,7 @@

Plugin packaging

Installation

  1. Build the plugin: ./gradlew assemblePlugin
  2. -
  3. Install the resulting .cgp file in Code On The Go.
  4. +
  5. Install the resulting .cgp file in Code on the Go.
  6. Access via the sidebar, main menu, or editor tabs.
  7. Configure keystore details and generate.
diff --git a/plugins/Keystore-Generator/src/main/assets/docs/index.html b/plugins/Keystore-Generator/src/main/assets/docs/index.html index db430c1d..b4583206 100644 --- a/plugins/Keystore-Generator/src/main/assets/docs/index.html +++ b/plugins/Keystore-Generator/src/main/assets/docs/index.html @@ -9,7 +9,7 @@

Keystore Generator

-

Generate Android .jks keystores for signing release builds — directly from Code On The Go.

+

Generate Android .jks keystores for signing release builds — directly from Code on the Go.

Creating a keystore

diff --git a/plugins/Layout-Editor/layout-editor.html b/plugins/Layout-Editor/layout-editor.html index d750fba6..6645558f 100644 --- a/plugins/Layout-Editor/layout-editor.html +++ b/plugins/Layout-Editor/layout-editor.html @@ -111,7 +111,7 @@

Contents

1. Executive Overview

- Layout Editor is a Code On The Go plugin that builds Android XML layouts + Layout Editor is a Code on the Go plugin that builds Android XML layouts visually. Open a layout XML file, tap the Layout Editor action in the editor toolbar, and the plugin opens a full-screen editor where you drag widgets onto a canvas, arrange the view hierarchy, set attributes through typed @@ -349,7 +349,7 @@

Building

./gradlew clean assemblePluginDebug # or assemblePlugin for release

Produces plugins/Layout-Editor/build/plugin/layout-editor-debug.cgp, the - bundle you sideload into Code On The Go. + bundle you sideload into Code on the Go.

Always clean first. The plugin builder copies the @@ -400,7 +400,7 @@

6. Key Benefits

7. Attribution & License

- Layout Editor is an open-source example plugin for Code On The Go. Its source is + Layout Editor is an open-source example plugin for Code on the Go. Its source is licensed per the surrounding plugin-examples repository (see LICENSE at the repo root).

diff --git a/plugins/Markdown-Previewer/markdown-previewer.html b/plugins/Markdown-Previewer/markdown-previewer.html index 4608da75..31ffba75 100644 --- a/plugins/Markdown-Previewer/markdown-previewer.html +++ b/plugins/Markdown-Previewer/markdown-previewer.html @@ -90,7 +90,7 @@

Markdown Previewer Plugin

-

Preview Markdown and HTML files with live rendering, from the Code On The Go editor

+

Preview Markdown and HTML files with live rendering, from the Code on the Go editor

Author: App Dev for All · Package: org.appdevforall.markdownpreviewer
@@ -109,7 +109,7 @@

Contents

1. Overview

- A Code On The Go plugin for previewing Markdown and HTML files with + A Code on the Go plugin for previewing Markdown and HTML files with live rendering. Files can be selected from the project tree or directly from device storage.

diff --git a/plugins/NDK-Installer/ndk-installer.html b/plugins/NDK-Installer/ndk-installer.html index e8f93773..72ae8b3f 100644 --- a/plugins/NDK-Installer/ndk-installer.html +++ b/plugins/NDK-Installer/ndk-installer.html @@ -90,7 +90,7 @@

NDK Installer Plugin

-

Bundled NDK and CMake installer with NDK Activity project template for Code On The Go

+

Bundled NDK and CMake installer with NDK Activity project template for Code on the Go

Version 1.0.0 · Author: App Dev For All · Package: org.appdevforall.ndkinstaller
@@ -110,7 +110,7 @@

Contents

1. Executive Overview

- NDK Installer is a Code On The Go plugin that automatically installs a + NDK Installer is a Code on the Go plugin that automatically installs a bundled Android NDK (Native Development Kit) and CMake into the IDE's Android SDK directory when activated, and cleanly removes them when deactivated. Alongside the binary installation, it registers an "NDK Activity" project template that @@ -546,7 +546,7 @@

4.7 Permissions

Integration summary

- Code On The Go IDE Host + Code on the Go IDE Host +------------------------------------------------------+ | | | IdeEnvironmentService -- getAndroidHomeDirectory() | @@ -601,7 +601,7 @@

Building

Installation

    -
  1. Open Code On The Go's plugin manager.
  2. +
  3. Open Code on the Go's plugin manager.
  4. Import the .cgp file.
  5. The IDE discovers NdkInstallerPlugin via the manifest metadata and activates it automatically.
  6. @@ -611,7 +611,7 @@

    Installation

    Creating an NDK project

      -
    1. Open the new-project wizard in Code On The Go.
    2. +
    3. Open the new-project wizard in Code on the Go.
    4. Select the "NDK Activity" template.
    5. Enter the app name, package name, and save location.
    6. Optionally choose the language (Java or Kotlin) and minimum SDK.
    7. diff --git a/plugins/Project-to-Template/README.md b/plugins/Project-to-Template/README.md index c33167db..1f816061 100644 --- a/plugins/Project-to-Template/README.md +++ b/plugins/Project-to-Template/README.md @@ -1,6 +1,6 @@ # Project to Template -A [Code On The Go](https://github.com/appdevforall/CodeOnTheGo) plugin (`.cgp`) +A [Code on the Go](https://github.com/appdevforall/CodeOnTheGo) plugin (`.cgp`) that converts the Android project currently open in the IDE into a Code On The Go (`.cgt`) template bundle — driven entirely from a tab inside the IDE, with an option to install the result straight into the New Project template picker. The @@ -8,7 +8,7 @@ original project directory is never modified: the plugin copies it into a new bundle directory next to it and templatizes the copy. This started as a `templatize_project.py` desktop script, was ported to a -standalone Kotlin/Compose Android app, and is now a Code On The Go plugin so it +standalone Kotlin/Compose Android app, and is now a Code on the Go plugin so it runs inside the IDE with no separate app to install. ## UI @@ -94,7 +94,7 @@ From this directory, using the repo-root Gradle wrapper: ../gradlew assemblePluginDebug # debug .cgp -> build/plugin/project-to-template-debug.cgp ``` -Install the resulting `.cgp` through Code On The Go's Plugin Manager. A +Install the resulting `.cgp` through Code on the Go's Plugin Manager. A `local.properties` with `sdk.dir=` is required to build. ## Next steps diff --git a/plugins/Project-to-Template/addon.json b/plugins/Project-to-Template/addon.json index 5f784d27..8003347e 100644 --- a/plugins/Project-to-Template/addon.json +++ b/plugins/Project-to-Template/addon.json @@ -1,6 +1,6 @@ { "summary": "Turns the open project into a reusable template.", - "description": "Takes the project you have open and writes it out as a Code On The Go template, so you can start new projects from it.", + "description": "Takes the project you have open and writes it out as a Code on the Go template, so you can start new projects from it.", "tags": [ "templates", "project", diff --git a/plugins/Project-to-Template/project-to-template.html b/plugins/Project-to-Template/project-to-template.html index 20508ddb..cfaf813e 100644 --- a/plugins/Project-to-Template/project-to-template.html +++ b/plugins/Project-to-Template/project-to-template.html @@ -89,7 +89,7 @@

      Project to Template Plugin

      -

      Convert the open Android project into a reusable Code On The Go template

      +

      Convert the open Android project into a reusable Code on the Go template

      Version 1.0.0 · Author: App Dev For All · Package: org.appdevforall.projecttotemplate
      @@ -430,7 +430,7 @@

      6. Key Benefits

    8. Non-destructive. Works on a copy; the original project is never touched. A dry run previews everything with zero writes.
    9. End-to-end inside the IDE. Convert and install without - leaving Code On The Go — the result lands directly in the New + leaving Code on the Go — the result lands directly in the New Project picker.
    10. Safety-aware cleanup. Removes build output and keystores, and flags secret-bearing files (local.properties, diff --git a/plugins/Project-to-Template/src/main/AndroidManifest.xml b/plugins/Project-to-Template/src/main/AndroidManifest.xml index 2138ac48..d0e11a81 100644 --- a/plugins/Project-to-Template/src/main/AndroidManifest.xml +++ b/plugins/Project-to-Template/src/main/AndroidManifest.xml @@ -19,7 +19,7 @@ + android:value="Converts the open Android project into a Code on the Go (.cgt) template, and can install it directly into the IDE." />

      Project to Template

      -

      Turn the Android project you have open in Code On The Go into a +

      Turn the Android project you have open in Code on the Go into a reusable project template (a .cgt bundle) — and install it straight into the New Project template picker, all without leaving the IDE.

      @@ -59,13 +59,13 @@

      Project to Template

      What it does

      A template is a project with the machine-specific and app-specific details replaced by fill-in-the-blanks tokens. When someone later creates a new project -from your template, Code On The Go asks for values (app name, package name, SDK +from your template, Code on the Go asks for values (app name, package name, SDK levels…) and substitutes them back in. This plugin produces such a template from a working project automatically, so you don't have to hand-edit anything.

      How to use it

        -
      1. Open the project you want to turn into a template in Code On The Go.
      2. +
      3. Open the project you want to turn into a template in Code on the Go.
      4. Tap Project to Template in the sidebar (under tools). A tab opens.
      5. The Project field shows the currently open project (read-only).
      6. diff --git a/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/ProjectToTemplatePlugin.kt b/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/ProjectToTemplatePlugin.kt index 1e29dcb2..737d58ae 100644 --- a/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/ProjectToTemplatePlugin.kt +++ b/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/ProjectToTemplatePlugin.kt @@ -16,8 +16,8 @@ import androidx.fragment.app.Fragment import org.appdevforall.projecttotemplate.fragments.ProjectToTemplateFragment /** - * Converts the Android project currently open in Code On The Go into a - * Code On The Go (.cgt) template bundle, and optionally installs it directly + * Converts the Android project currently open in Code on the Go into a + * Code on the Go (.cgt) template bundle, and optionally installs it directly * into the IDE via IdeTemplateService. */ class ProjectToTemplatePlugin : IPlugin, UIExtension, EditorTabExtension, DocumentationExtension { @@ -106,7 +106,7 @@ class ProjectToTemplatePlugin : IPlugin, UIExtension, EditorTabExtension, Docume order = 0, isEnabled = true, isVisible = true, - tooltip = "Convert the open Android project into a Code On The Go template", + tooltip = "Convert the open Android project into a Code on the Go template", ) ) } @@ -127,14 +127,14 @@ class ProjectToTemplatePlugin : IPlugin, UIExtension, EditorTabExtension, Docume return listOf( PluginTooltipEntry( tag = TOOLTIP_TAG, - summary = "Project to Template
        Convert the project currently open in Code On The Go into a reusable (.cgt) template.", + summary = "Project to Template
        Convert the project currently open in Code on the Go into a reusable (.cgt) template.", detail = """

        Project to Template

        Enter a template name and tap Convert to Template. The plugin copies the open project, substitutes concrete values (Gradle/AGP/Kotlin versions, package name, app name, SDK levels) with Pebble tokens, writes template.json and a thumbnail, and zips the result into a .cgt file. You can then install it - directly into Code On The Go's New Project template picker.

        + directly into Code on the Go's New Project template picker.

        """.trimIndent(), buttons = listOf( PluginTooltipButton( diff --git a/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/Templatizer.kt b/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/Templatizer.kt index c2b26aba..a8fca7be 100644 --- a/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/Templatizer.kt +++ b/plugins/Project-to-Template/src/main/kotlin/org/appdevforall/projecttotemplate/Templatizer.kt @@ -7,7 +7,7 @@ import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream /** - * Turns an Android Studio project into a Code On The Go (.cgt) template + * Turns an Android Studio project into a Code on the Go (.cgt) template * bundle by substituting concrete values (versions, package name, app name, * SDK levels, Java compatibility levels) with Pebble tokens (${{ TOKEN }}), * then writing templates.json and template/template.json alongside a diff --git a/plugins/Python-Tools/README.md b/plugins/Python-Tools/README.md index 6098bcdc..e8531d08 100644 --- a/plugins/Python-Tools/README.md +++ b/plugins/Python-Tools/README.md @@ -1,8 +1,8 @@ # Python Tools -A Python + Flask plugin for Code On the Go +A Python + Flask plugin for Code on the Go -This plugin shows how to add languages and projects to Code On the Go. It contains a version of Python and Flask. +This plugin shows how to add languages and projects to Code on the Go. It contains a version of Python and Flask. ## What it adds diff --git a/plugins/Python-Tools/python-tools.html b/plugins/Python-Tools/python-tools.html index 6daff87b..8f2e3691 100644 --- a/plugins/Python-Tools/python-tools.html +++ b/plugins/Python-Tools/python-tools.html @@ -90,7 +90,7 @@

        Python Tools

        -

        Python and Flask project templates with a native run experience for Code On The Go

        +

        Python and Flask project templates with a native run experience for Code on the Go

        Version 1.0.0 · Author: App Dev For All · Package: com.appdevforall.python.plugin
        @@ -110,7 +110,7 @@

        Contents

        1. Executive Overview

        - Python Tools is a Code On The Go plugin that adds two new project types, + Python Tools is a Code on the Go plugin that adds two new project types, a Flask web app and a minimal Python starter, and makes them runnable on the device. It is a reference example of how a plugin adds a language and its project templates. @@ -281,7 +281,7 @@

        5. Deployment & Usage

        ./gradlew assemblePlugin

        The resulting .cgp lands under build/plugin/. - Install it from inside Code On The Go via the Plugin Manager. Then: + Install it from inside Code on the Go via the Plugin Manager. Then:

        1. Create a project from Python Flask App or diff --git a/plugins/Python-Tools/src/main/kotlin/com/appdevforall/python/plugin/PythonToolsDocumentation.kt b/plugins/Python-Tools/src/main/kotlin/com/appdevforall/python/plugin/PythonToolsDocumentation.kt index c0da3390..0ead792a 100644 --- a/plugins/Python-Tools/src/main/kotlin/com/appdevforall/python/plugin/PythonToolsDocumentation.kt +++ b/plugins/Python-Tools/src/main/kotlin/com/appdevforall/python/plugin/PythonToolsDocumentation.kt @@ -76,7 +76,7 @@ internal object PythonToolsDocumentation { order = 0, ), PluginTooltipButton( - description = "About Code On The Go plugins", + description = "About Code on the Go plugins", uri = "i/plugins-adfa.html", order = 1, directPath = true, diff --git a/plugins/Rainbow-Brackets/README.md b/plugins/Rainbow-Brackets/README.md index b3d57571..488e2e00 100644 --- a/plugins/Rainbow-Brackets/README.md +++ b/plugins/Rainbow-Brackets/README.md @@ -1,6 +1,6 @@ # Rainbow Brackets -A Code On The Go plugin that colors matching parentheses, brackets, and braces by +A Code on the Go plugin that colors matching parentheses, brackets, and braces by nesting depth — an opening delimiter and its match share a color, cycling through six colors (red, orange, yellow, green, blue, purple). Separate palettes are tuned for the editor's light and dark themes. @@ -11,7 +11,7 @@ and the editor merges them on top of the normal syntax highlighting. The IDE has knowledge of brackets; it just merges plugin-provided spans. The plugin adds no UI, requests no permissions, makes no network calls, and reads no files. -> **Note:** this plugin requires a build of Code On The Go that includes the +> **Note:** this plugin requires a build of Code on the Go that includes the > `EditorDecorationProvider` API and the editor-side decoration merge. All of the rainbow > logic lives in this plugin. @@ -23,7 +23,7 @@ cd Rainbow-Brackets ``` The plugin compiles against `../libs/plugin-api.jar`. If the `EditorDecorationProvider` API -was just added to Code On The Go, refresh the jars first from a local IDE checkout: +was just added to Code on the Go, refresh the jars first from a local IDE checkout: ```sh cd .. diff --git a/plugins/Rainbow-Brackets/rainbow-brackets.html b/plugins/Rainbow-Brackets/rainbow-brackets.html index 9887090b..8bd7d5fb 100644 --- a/plugins/Rainbow-Brackets/rainbow-brackets.html +++ b/plugins/Rainbow-Brackets/rainbow-brackets.html @@ -52,7 +52,7 @@

          Rainbow Brackets

          -

          Depth-colored parentheses, brackets, and braces for the Code On The Go editor.

          +

          Depth-colored parentheses, brackets, and braces for the Code on the Go editor.

        @@ -97,7 +97,7 @@

        2. Core Functionality

        3. Technical Architecture

        The plugin implements EditorDecorationProvider, a generic additive extension - in the Code On The Go plugin API. Its only method, decorate(text, start, end, isDark), + in the Code on the Go plugin API. Its only method, decorate(text, start, end, isDark), returns a list of foreground-color spans for a region of editor text; the IDE merges them on top of the existing highlighting. Because the only output is a list of colored ranges, a provider can never replace or suppress the editor's syntax highlighting — and the IDE has no knowledge of @@ -115,7 +115,7 @@

        3. Technical Architecture

        4. Usage

          -
        1. Install rainbow-brackets.cgp from the Code On The Go Plugin Manager.
        2. +
        3. Install rainbow-brackets.cgp from the Code on the Go Plugin Manager.
        4. Enable the plugin. Open editors repaint automatically.
        5. Open a Java or Kotlin file with nested brackets — each nesting level is a different color, and matching delimiters share a color. Other languages are left untouched.
        6. diff --git a/plugins/Rainbow-Brackets/src/main/AndroidManifest.xml b/plugins/Rainbow-Brackets/src/main/AndroidManifest.xml index a63c246a..2037b7c0 100644 --- a/plugins/Rainbow-Brackets/src/main/AndroidManifest.xml +++ b/plugins/Rainbow-Brackets/src/main/AndroidManifest.xml @@ -19,13 +19,13 @@ + android:value="Colors matching parentheses, brackets, and braces by nesting depth in Java and Kotlin files so you can see which delimiter pairs with which. Cycles through six colors (red, orange, yellow, green, blue, purple) with separate palettes tuned for the Code on the Go editor's light and dark themes. Other languages are left untouched." /> - + diff --git a/plugins/Rainbow-Brackets/src/main/assets/docs/index.html b/plugins/Rainbow-Brackets/src/main/assets/docs/index.html index 765b5b14..f75b635d 100644 --- a/plugins/Rainbow-Brackets/src/main/assets/docs/index.html +++ b/plugins/Rainbow-Brackets/src/main/assets/docs/index.html @@ -41,7 +41,7 @@

          Turning it off

          color. The change applies immediately to open editors.

          How it's built

          -

          Rainbow Brackets implements EditorDecorationProvider, a generic Code On The Go +

          Rainbow Brackets implements EditorDecorationProvider, a generic Code on the Go plugin API. Its decorate method scans a region of text for bracket characters, tracks the running nesting depth, skips brackets inside strings and comments, and returns a foreground-color span per bracket. The editor merges those spans on top of the normal diff --git a/plugins/Rainbow-Brackets/src/main/kotlin/org/appdevforall/rainbowbrackets/RainbowBracketsPlugin.kt b/plugins/Rainbow-Brackets/src/main/kotlin/org/appdevforall/rainbowbrackets/RainbowBracketsPlugin.kt index 027f5a7d..957785f7 100644 --- a/plugins/Rainbow-Brackets/src/main/kotlin/org/appdevforall/rainbowbrackets/RainbowBracketsPlugin.kt +++ b/plugins/Rainbow-Brackets/src/main/kotlin/org/appdevforall/rainbowbrackets/RainbowBracketsPlugin.kt @@ -15,7 +15,7 @@ import java.util.TreeMap /** * Rainbow Brackets — tints matching parentheses, brackets, and braces by nesting depth. * - * Implemented as a generic [EditorDecorationProvider]: the Code On The Go editor calls [decorate] + * Implemented as a generic [EditorDecorationProvider]: the Code on the Go editor calls [decorate] * for each analyzed region and merges the returned color spans on top of the normal syntax * highlighting. All of the logic — bracket detection, nesting-depth tracking, theme palettes, and * skipping brackets inside strings/comments — lives here in the plugin; the IDE is unaware that diff --git a/plugins/Random-XKCD/README.md b/plugins/Random-XKCD/README.md index 7052b8dd..c06e8096 100644 --- a/plugins/Random-XKCD/README.md +++ b/plugins/Random-XKCD/README.md @@ -6,7 +6,7 @@ URL / Copy image — mirror the xkcd.com control bar. Tap the image to copy URL, double-tap to copy image. Long-press the tab for in-IDE help. -Designed as a canonical "this is what a small CoGo plugin looks like" +Designed as a canonical "this is what a small Code on the Go plugin looks like" example. Under 300 lines of Kotlin, every plugin-specific concept called out where it shows up in the code. @@ -19,10 +19,10 @@ once the plugin is installed. To read it: -- **Inside CoGo** (the canonical path) — long-press the **XKCD** tab in +- **Inside Code on the Go** (the canonical path) — long-press the **XKCD** tab in the editor bottom sheet → tap **"See More"** → tap **"Code walkthrough"**. The IDE opens the page in an in-IDE WebView. -- **Outside CoGo** — open `src/main/assets/docs/index.html` directly +- **Outside Code on the Go** — open `src/main/assets/docs/index.html` directly in any browser. Renders identically. The tutorial covers the plugin in 7 steps: diff --git a/plugins/Random-XKCD/random-xkcd.html b/plugins/Random-XKCD/random-xkcd.html index b87ab4df..9280092a 100644 --- a/plugins/Random-XKCD/random-xkcd.html +++ b/plugins/Random-XKCD/random-xkcd.html @@ -90,7 +90,7 @@

          Random XKCD Plugin

          -

          Browse xkcd comics from the Code On The Go editor bottom sheet

          +

          Browse xkcd comics from the Code on the Go editor bottom sheet

          Version 1.0.0 · Author: App Dev For All · Package: org.appdevforall.randomxkcd
          @@ -111,7 +111,7 @@

          Contents

          1. Executive Overview

          - Random XKCD is a Code On The Go plugin that puts an xkcd-comic browser into + Random XKCD is a Code on the Go plugin that puts an xkcd-comic browser into the editor's bottom sheet. A new XKCD tab joins the built-in bottom-sheet tabs (Build Output, App Logs, …); inside it, a five-button navigation row mirrors the xkcd.com control bar — @@ -132,7 +132,7 @@

          1. Executive Overview

          The plugin spans three Kotlin source files and one XML layout (~600 lines of code total), declares only the network.access permission, and is deliberately written as a canonical “this is what a small - Code On The Go plugin looks like” example. Every extension point it touches + Code on the Go plugin looks like” example. Every extension point it touches — IPlugin, UIExtension, DocumentationExtension — is exercised once, in the simplest way that still tells the truth. @@ -502,13 +502,13 @@

          4.6 Permissions

          Writes to the plugin's own filesDir (the FileProvider hop) and access to the system clipboard are sandbox-allowed and need no - declaration. Code On The Go's filesystem.* permissions only gate the + declaration. Code on the Go's filesystem.* permissions only gate the host IDE's project-file services — not used here.

          Integration summary

          - Code On The Go IDE Host + Code on the Go IDE Host +----------------------------------------------------+ | | | bottom-sheet tab system | @@ -546,7 +546,7 @@

          Building

          ./gradlew assemblePlugin

          Produces plugins/Random-XKCD/build/plugin/random-xkcd.cgp — the - bundle you sideload into Code On The Go. + bundle you sideload into Code on the Go.

          Installation

          @@ -572,11 +572,11 @@

          Using the panel

          Reading the code walkthrough

            -
          • Inside Code On The Go (the canonical path) — long-press +
          • Inside Code on the Go (the canonical path) — long-press the XKCD tab → tap See More → tap Code walkthrough. The IDE opens the page in an in-IDE WebView.
          • -
          • Outside Code On The Go — open +
          • Outside Code on the Go — open src/main/assets/docs/index.html directly in any browser. Renders identically.
          @@ -619,7 +619,7 @@

          6. Key Benefits

        7. Sandbox-honest permissions. Declares only network.access and documents why the clipboard and plugin-private filesystem writes do not need declarations — - useful reference for understanding Code On The Go's permission surface.
        8. + useful reference for understanding Code on the Go's permission surface.
          diff --git a/plugins/Sketch-to-UI/sketch-to-ui.html b/plugins/Sketch-to-UI/sketch-to-ui.html index e5e60f06..1bc6c2ba 100644 --- a/plugins/Sketch-to-UI/sketch-to-ui.html +++ b/plugins/Sketch-to-UI/sketch-to-ui.html @@ -112,7 +112,7 @@

          Contents

          1. Executive Overview

          - Sketch to UI is a Code On The Go plugin that turns a picture of an + Sketch to UI is a Code on the Go plugin that turns a picture of an interface — a whiteboard sketch, a paper drawing, or a screenshot of another app — into a working Android XML layout. The user opens a layout XML file, picks an image, and the plugin runs a complete @@ -135,7 +135,7 @@

          1. Executive Overview

          requires filesystem.read, filesystem.write, project.structure, and native.code permissions (the last is for the TFLite GPU delegate), and demonstrates a fully - self-contained ML workflow embedded in a Code On The Go plugin. + self-contained ML workflow embedded in a Code on the Go plugin.

          @@ -333,7 +333,7 @@

          Source layout

          • plugins/Sketch-to-UI/
              -
            • build.gradle.kts — AGP application module, applies the Code On The Go plugin-builder
            • +
            • build.gradle.kts — AGP application module, applies the Code on the Go plugin-builder
            • src/main/
              • AndroidManifest.xml — plugin metadata, permissions, ML Kit OCR dependency
              • @@ -559,7 +559,7 @@

                5.6 Permissions

                Integration summary

                - Code On The Go IDE Host + Code on the Go IDE Host +----------------------------------------------------+ | | | IdeEditorService -- getCurrentFile / replaceRange| @@ -600,14 +600,14 @@

                Building

                Produces build/plugin/sketch-to-ui.cgp. The libs/plugin-api.jar at the repo root must exist; refresh it with ../../scripts/update-libs.sh if you have just synced the - upstream Code On The Go source. + upstream Code on the Go source.

                Installation

                  -
                1. Open Code On The Go's Plugin Manager.
                2. +
                3. Open Code on the Go's Plugin Manager.
                4. Import the .cgp file.
                5. -
                6. Code On The Go discovers SketchToUiPlugin via the manifest metadata +
                7. Code on the Go discovers SketchToUiPlugin via the manifest metadata and activates it automatically. The "Sketch to UI" entry appears in the main menu.
                diff --git a/plugins/Speech-to-Text/README.md b/plugins/Speech-to-Text/README.md index 24ae6b40..16a8d419 100644 --- a/plugins/Speech-to-Text/README.md +++ b/plugins/Speech-to-Text/README.md @@ -1,5 +1,9 @@ # Speech to Text plugin for Code on the Go +**The AI Core addon is optional.** Without it, this plugin is plain dictation — +it writes what you say at the cursor. With AI Core installed, it turns the +transcript into code instead. + Voice-to-code. Adds a **Voice to Code** button to the editor toolbar: tap it, speak, and the recognized text — or code generated from it — is inserted at the cursor. Speech recognition uses Android's `SpeechRecognizer` (on-device when @@ -9,8 +13,6 @@ available); code generation is delegated to the companion `ai-core` plugin. > service is resolved at runtime. Install **`ai-core` first** for voice→code. > Without it, the raw transcript is inserted instead. -Requires the AI Core plugin. - ## Architecture ``` @@ -61,19 +63,19 @@ Prerequisites: Android SDK (API 33+), JDK 17. Create `local.properties` with `sdk.dir=...`. ```bash -cd Speech-to-Text -../gradlew assemblePlugin # release -> build/plugin/speech-to-text.cgp -../gradlew assemblePluginDebug # debug variant +cd plugins/Speech-to-Text +./gradlew assemblePlugin # release -> build/plugin/speech-to-text.cgp +./gradlew assemblePluginDebug # debug variant ``` -The build resolves `plugin-api.jar` from the repo-root `../libs/`. +The build resolves `plugin-api.jar` from the repo-root `../../libs/`. ## Installation 1. (Optional but recommended) Build and install **`ai-core` first** for voice→code (see [`../ai-core/README.md`](../ai-core/README.md)). 2. Build this plugin, install `build/plugin/speech-to-text.cgp` via - CodeOnTheGo's Plugin Manager, and restart the IDE. + Code on the Go's Plugin Manager, and restart the IDE. 3. Open a file, tap the microphone in the editor toolbar, grant the microphone permission on first use, and speak. @@ -84,4 +86,4 @@ The build resolves `plugin-api.jar` from the repo-root `../libs/`. ## License -GPL-3.0 — same as AndroidIDE / CodeOnTheGo. +GPL-3.0 — same as AndroidIDE / Code on the Go. diff --git a/plugins/Speech-to-Text/speech-to-text.html b/plugins/Speech-to-Text/speech-to-text.html index b5732dfa..6973909c 100644 --- a/plugins/Speech-to-Text/speech-to-text.html +++ b/plugins/Speech-to-Text/speech-to-text.html @@ -40,7 +40,7 @@

                Speech to Text Plugin

                Executive overview

                -

                Speech to Text adds voice-to-code to the Code On The Go editor. It +

                Speech to Text adds voice-to-code to the Code on the Go editor. It contributes a Voice to Code button to the editor toolbar: tap it, speak, and the recognized text — or code generated from it — is inserted at the cursor.

                diff --git a/plugins/Vector-Search/README.md b/plugins/Vector-Search/README.md index e6de053d..926be704 100644 --- a/plugins/Vector-Search/README.md +++ b/plugins/Vector-Search/README.md @@ -1,4 +1,4 @@ -# Vector Search plugin for CodeOnTheGo +# Vector Search plugin for Code on the Go Semantic (meaning-based) code search. Files are chunked and embedded into vectors; a query is embedded the same way and ranked by cosine similarity. The @@ -62,7 +62,7 @@ The build resolves `plugin-api.jar` from the repo-root `../libs/`. 1. Build and install **`ai-core` first** for quality embeddings (see [`../ai-core/README.md`](../ai-core/README.md)). 2. Build this plugin, install `build/plugin/vector-search.cgp` via - CodeOnTheGo's Plugin Manager, and restart the IDE. + Code on the Go's Plugin Manager, and restart the IDE. 3. Run a query from the project search screen; look for the **Semantic Results** section. @@ -75,4 +75,4 @@ The build resolves `plugin-api.jar` from the repo-root `../libs/`. ## License -GPL-3.0 — same as AndroidIDE / CodeOnTheGo. +GPL-3.0 — same as AndroidIDE / Code on the Go. diff --git a/plugins/Vector-Search/vector-search.html b/plugins/Vector-Search/vector-search.html index c7f1f8fb..5e150530 100644 --- a/plugins/Vector-Search/vector-search.html +++ b/plugins/Vector-Search/vector-search.html @@ -41,7 +41,7 @@

                Vector Search Plugin

                Executive overview

                Vector Search adds semantic, meaning-based results to - Code On The Go's project search. Instead of matching only exact text, it ranks + Code on the Go's project search. Instead of matching only exact text, it ranks code by similarity of meaning, so a search for "read a file into a string" can surface the relevant method even when those exact words don't appear.

                It is a headless plugin — it has no screens of its own. It diff --git a/plugins/Voice-Alerts/README.md b/plugins/Voice-Alerts/README.md index f28fed4c..e292c1cf 100644 --- a/plugins/Voice-Alerts/README.md +++ b/plugins/Voice-Alerts/README.md @@ -1,6 +1,6 @@ # Voice Alerts -A Code On The Go plugin that plays a short sound on build start, success, and failure. Useful when your eyes are on the editor and you want an audible cue that the build has turned over. +A Code on the Go plugin that plays a short sound on build start, success, and failure. Useful when your eyes are on the editor and you want an audible cue that the build has turned over. ## Behaviour diff --git a/plugins/Voice-Alerts/voice-alerts.html b/plugins/Voice-Alerts/voice-alerts.html index a0873a09..ba208ada 100644 --- a/plugins/Voice-Alerts/voice-alerts.html +++ b/plugins/Voice-Alerts/voice-alerts.html @@ -90,7 +90,7 @@

                Voice Alerts

                -

                Audible build-status earcons for Code On The Go

                +

                Audible build-status earcons for Code on the Go

                Version 1.0.0 · Author: App Dev for All · Package: org.appdevforall.voicealerts
                @@ -110,7 +110,7 @@

                Contents

                1. Executive Overview

                - Voice Alerts is a lightweight Code On The Go plugin that delivers audible feedback + Voice Alerts is a lightweight Code on the Go plugin that delivers audible feedback during builds. It plays a distinct short sound (earcon) when a build starts, succeeds, or fails, letting developers keep their eyes on code while staying aware of build progress. @@ -341,7 +341,7 @@

                4.4 Permissions

                Integration summary

                +-----------------------------------+ - | Code On The Go IDE Host | + | Code on the Go IDE Host | | | | PluginContext | | +-- androidContext.resources | @@ -378,7 +378,7 @@

                Building

                Installation

                  -
                1. Open Code On The Go's plugin manager.
                2. +
                3. Open Code on the Go's plugin manager.
                4. Import the .cgp file.
                5. The IDE discovers VoiceAlertsPlugin via the manifest metadata and activates it automatically.
                6. @@ -424,7 +424,7 @@

                  6. Key Benefits

                7. Easily customisable. Swapping the three WAV files is the only step needed to personalise the audio cues.
                8. Good reference implementation. The plugin demonstrates - the core patterns needed to write a Code On The Go plugin — + the core patterns needed to write a Code on the Go plugin — implementing IPlugin, accessing the service registry, subscribing to events, and managing plugin lifecycle — in under 80 lines of code.
                9. diff --git a/scripts/check-toolchain.sh b/scripts/check-toolchain.sh index 06f98057..9cad412c 100755 --- a/scripts/check-toolchain.sh +++ b/scripts/check-toolchain.sh @@ -8,7 +8,7 @@ # # WHY THESE NUMBERS: they are not "latest". They track the toolchain that Code # On The Go itself ships on-device, because these plugins are meant to be built -# *with* Code On The Go (ADFA-4693). Verified against CoGo build C-d-0727-1613: +# *with* Code on the Go (ADFA-4693). Verified against CoGo build C-d-0727-1613: # # * android-36 is the ONLY installed platform in CoGo's bundled SDK # * AGP 8.11.0 is the ONLY AGP in CoGo's Gradle caches @@ -206,7 +206,7 @@ check_catalog_file() { # Walk # # Files under src/main/assets/ are shipped project *templates* -- skeletons that -# Code On The Go stamps out for the user's own app. They are not our builds and +# Code on the Go stamps out for the user's own app. They are not our builds and # must not be held to our toolchain. # --------------------------------------------------------------------------- while IFS= read -r -d '' f; do @@ -246,8 +246,8 @@ fi printf ' %s\n' "${failures[@]}" echo echo "The standard is defined at the top of scripts/check-toolchain.sh and tracks" - echo "Code On The Go's own on-device toolchain (ADFA-4907). Fix the files above, or" - echo "-- if Code On The Go itself has moved -- update the script's constants and say" + echo "Code on the Go's own on-device toolchain (ADFA-4907). Fix the files above, or" + echo "-- if Code on the Go itself has moved -- update the script's constants and say" echo "which CoGo build you verified against." echo } >&2 diff --git a/site/index.html b/site/index.html index 4b3bafe9..cfe7e398 100644 --- a/site/index.html +++ b/site/index.html @@ -3,8 +3,8 @@ -Add-ons for Code On The Go - +Add-ons for Code on the Go + @@ -26,7 +26,7 @@
                  -

                  Add-ons for Code On The Go

                  +

                  Add-ons for Code on the Go

                  Extend the editor with plugins, templates, snippets, and code actions. Every one is free and open source.

                  diff --git a/site/page.template.html b/site/page.template.html index 218e6426..38adb0e4 100644 --- a/site/page.template.html +++ b/site/page.template.html @@ -3,7 +3,7 @@ -{{title}} — Code On The Go add-ons +{{title}} — Code on the Go add-ons diff --git a/tools/addons/skip.txt b/tools/addons/skip.txt index 476a256e..d789f817 100644 --- a/tools/addons/skip.txt +++ b/tools/addons/skip.txt @@ -19,3 +19,4 @@ ai-agent-mcp other pull requests in flight; migrate later, do not touch ai-agent-openai other pull requests in flight; migrate later, do not touch ai-core other pull requests in flight; migrate later, do not touch ai-literacy-course other pull requests in flight; migrate later, do not touch +AI-Code-Suggestions needs ai-core, which is held back; publish the pair together diff --git a/tools/addons/src/addons/check.py b/tools/addons/src/addons/check.py index 6eaf30e2..21be8c1b 100644 --- a/tools/addons/src/addons/check.py +++ b/tools/addons/src/addons/check.py @@ -97,7 +97,7 @@ def check_names(root: Path) -> list[str]: if re.search(r"\b" + bad + r"\b", prose): problems.append( f"{directory}: the page says '{bad}'; write " - f"'Code On The Go' in full") + f"'Code on the Go' in full") heading = re.search(r"]*>(.*?)", html, re.S | re.I) if heading: text = " ".join(re.sub(r"<[^>]+>", "", heading.group(1)).split()) diff --git a/tools/addons/src/addons/model.py b/tools/addons/src/addons/model.py index 97e09a04..27423874 100644 --- a/tools/addons/src/addons/model.py +++ b/tools/addons/src/addons/model.py @@ -77,7 +77,7 @@ def version(addon: Path) -> str: def min_app_version(addon: Path) -> str: - """The lowest Code On The Go release this addon declares. + """The lowest Code on the Go release this addon declares. The app's release version is YY.ww. Thirteen addons still carry the legacy "1.0.0" placeholder, which states no real minimum, so it is diff --git a/tools/addons/src/addons/tarball.py b/tools/addons/src/addons/tarball.py index 12b2d7d6..3f044088 100644 --- a/tools/addons/src/addons/tarball.py +++ b/tools/addons/src/addons/tarball.py @@ -13,14 +13,14 @@ # and the one a reader wants first is the addon's, not this notice. NOTES = """# Building {name} -Source for the {name} addon for Code On The Go. +Source for the {name} addon for Code on the Go. - Origin: {origin} - Author: {author} - Comes from: {source}/tree/main/{directory} - License: {license}. The full text is in LICENSE beside this file. -This folder is the project root. Open it in Code On The Go, or build it from a +This folder is the project root. Open it in Code on the Go, or build it from a desktop: ./gradlew assemblePlugin @@ -31,7 +31,7 @@ sdk.dir=/path/to/your/Android/sdk -On a phone you do not need that file: Code On The Go puts `ANDROID_HOME` and +On a phone you do not need that file: Code on the Go puts `ANDROID_HOME` and `ANDROID_SDK_ROOT` in the build environment. """ @@ -91,7 +91,7 @@ def _stage(root: Path, addon: Path, out: Path, meta: dict) -> Path: files = tracked_files(root, addon) if not files: raise RuntimeError(f"{addon.name}: git tracks no file in this directory") - # The archive root IS the project root: Code On The Go reads a folder as a + # The archive root IS the project root: Code on the Go reads a folder as a # plugin project only when build.gradle.kts and libs/plugin-api.jar sit in # the folder it was given (isPluginProject in ProjectValidations.kt). for repo_path in files: diff --git a/tools/addons/tests/test_tarball.py b/tools/addons/tests/test_tarball.py index 71f60f59..222280d3 100644 --- a/tools/addons/tests/test_tarball.py +++ b/tools/addons/tests/test_tarball.py @@ -55,7 +55,7 @@ def build(tmp_path: Path, addon: Path, meta: dict | None = None) -> Path: def test_the_archive_root_is_the_project_root(tmp_path): - """Code On The Go accepts a folder only when build.gradle.kts and + """Code on the Go accepts a folder only when build.gradle.kts and libs/plugin-api.jar sit in that same folder (isPluginProject).""" names = names_in(build(tmp_path, make_repo(tmp_path))) top = "keystore-generator-src"