From e60dcb67001a266adf44967fcf35d35be850c96d Mon Sep 17 00:00:00 2001 From: bruschill <621389+bruschill@users.noreply.github.com> Date: Wed, 29 Jul 2026 11:30:06 -0500 Subject: [PATCH] Package protan/tritan variants in the JetBrains plugin Audit found every port already ships its protan/tritan source files (#12), but the JetBrains plugin only packaged the base theme: build.sh copied one .icls/.theme.json pair and plugin.xml registered a single themeProvider, so plugin installs never saw the variants. - build.sh: loop over all three variants, rewriting each editorScheme to its in-plugin path - plugin.xml: register the protan/tritan themeProviders, bump to 1.1.0 - README: reflect the bundled variants and new zip name Verified: build.sh produces a zip whose jar contains all six theme resources, each theme.json pointing at its own bundled .icls. --- README.md | 10 +++++----- jetbrains/plugin/build.sh | 13 +++++++------ .../plugin/src/main/resources/META-INF/plugin.xml | 15 ++++++++++++--- 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 584a2c1..04a7cd6 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ The editor scheme is dark (parented on Darcula), so it inherits Darcula for any #### IDE theme (Appearance) — installable plugin -The UI theme in `jetbrains/madeofcode.theme.json` recolors the whole IDE chrome to match, and references the editor scheme above so both stay in sync. JetBrains loads UI themes from plugins, so `jetbrains/plugin/` packages it as one you can install directly. +The UI theme in `jetbrains/madeofcode.theme.json` recolors the whole IDE chrome to match, and references the editor scheme above so both stay in sync. JetBrains loads UI themes from plugins, so `jetbrains/plugin/` packages it as one you can install directly. The plugin bundles all three variants — **madeofcode**, **madeofcode-protan**, and **madeofcode-tritan** — each with its matching editor scheme. Build the plugin zip (no Gradle needed — a theme is pure resources, so it just needs a JDK on your `PATH` for `jar`): @@ -83,15 +83,15 @@ cd jetbrains/plugin ./build.sh ``` -This produces `jetbrains/plugin/dist/madeofcode-theme-1.0.0.zip`. To install it: +This produces `jetbrains/plugin/dist/madeofcode-theme-1.1.0.zip`. To install it: 1. **Settings → Plugins** 2. Click the gear icon → **Install Plugin from Disk…** -3. Select `jetbrains/plugin/dist/madeofcode-theme-1.0.0.zip` +3. Select `jetbrains/plugin/dist/madeofcode-theme-1.1.0.zip` 4. Restart the IDE when prompted. -5. Choose **madeofcode** under **Settings → Appearance & Behavior → Appearance → Theme**. +5. Choose **madeofcode** (or **madeofcode-protan** / **madeofcode-tritan**) under **Settings → Appearance & Behavior → Appearance → Theme**. -Selecting the theme automatically applies the matching editor color scheme (via the `editorScheme` field in the theme). The build script regenerates the theme resources from the source `madeofcode.theme.json` and `madeofcode.icls`, so those two files remain the single source of truth. +Selecting a theme automatically applies its matching editor color scheme (via the `editorScheme` field in the theme). The build script regenerates the theme resources from the source `*.theme.json` and `*.icls` files in `jetbrains/`, so those remain the single source of truth. ### VS Code diff --git a/jetbrains/plugin/build.sh b/jetbrains/plugin/build.sh index 054a229..62c9fe7 100755 --- a/jetbrains/plugin/build.sh +++ b/jetbrains/plugin/build.sh @@ -22,12 +22,13 @@ echo "Building ${PLUGIN_NAME} theme plugin v${VERSION}" rm -rf "$BUILD" "$DIST" mkdir -p "$RES/theme" "$BUILD/lib" "$DIST" -# Copy the editor color scheme verbatim. -cp "$SRC/madeofcode.icls" "$RES/theme/madeofcode.icls" - -# Copy the UI theme, pointing editorScheme at the in-plugin resource path. -sed 's#"editorScheme": *"[^"]*"#"editorScheme": "/theme/madeofcode.icls"#' \ - "$SRC/madeofcode.theme.json" > "$RES/theme/madeofcode.theme.json" +# For each variant: copy the editor color scheme verbatim, and copy the UI +# theme with editorScheme rewritten to the in-plugin resource path. +for variant in madeofcode madeofcode-protan madeofcode-tritan; do + cp "$SRC/${variant}.icls" "$RES/theme/${variant}.icls" + sed "s#\"editorScheme\": *\"[^\"]*\"#\"editorScheme\": \"/theme/${variant}.icls\"#" \ + "$SRC/${variant}.theme.json" > "$RES/theme/${variant}.theme.json" +done # Jar the resources (plugin.xml + theme files). jar --create --file "$BUILD/lib/${PLUGIN_NAME}-theme.jar" -C "$RES" . diff --git a/jetbrains/plugin/src/main/resources/META-INF/plugin.xml b/jetbrains/plugin/src/main/resources/META-INF/plugin.xml index 7cff605..44d6244 100644 --- a/jetbrains/plugin/src/main/resources/META-INF/plugin.xml +++ b/jetbrains/plugin/src/main/resources/META-INF/plugin.xml @@ -1,19 +1,24 @@ com.madeofcode.theme madeofcode - 1.0.0 + 1.1.0 madeofcode madeofcode — a dark theme on a deep indigo background with vivid, high-contrast accents. Reproduces the TextMate theme madeofcode across JetBrains IDEs, theming both the editor syntax and the full IDE UI.

-

After installing, select madeofcode under +

Ships three variants: madeofcode, plus colorblind-safe + madeofcode-protan and madeofcode-tritan.

+

After installing, select one under Settings → Appearance & Behavior → Appearance → Theme.

]]>
  • 1.0.0 — Initial release: IDE theme + matching editor color scheme.
  • + ]]>
    @@ -24,5 +29,9 @@ + +