This repository is a JetBrains theme plugin built with Gradle. Production code lives in src/main/java/com/vermouthx/xcodetheme/ and is organized by concern: activities/, listeners/, notifications/, settings/, and enums/. Theme definitions and plugin metadata live in src/main/resources/, including *.theme.json, editor schemes *.xml, and META-INF/plugin.xml. Marketing assets such as screenshots and logos are stored in assets/.
Use the Gradle wrapper from the repository root:
./gradlew buildbuilds the plugin and runs the default verification steps../gradlew verifyPluginruns JetBrains plugin verification against configured IDE targets../gradlew testruns tests if asrc/testsuite exists../gradlew taskslists available development tasks when adding new automation.
Use ./gradlew.bat on Windows.
Follow existing Java conventions: 4-space indentation, braces on the same line, and descriptive class names. Theme manager and settings classes use the XcT prefix, for example XcTManager and XcTMetaState. Keep theme resource names explicit and paired, such as XcodeDark.theme.json and IslandsXcodeDark.theme.json. Preserve key ordering and formatting in theme JSON files to keep diffs readable.
There is currently no committed test suite. When adding behavior in Java, prefer small unit tests under src/test/java/ and name them after the class under test, for example XcTManagerTest. For theme-only changes, validate JSON syntax locally and verify rendering in a JetBrains IDE before opening a PR.
Follow the repository's historical commit style: emoji-prefixed, imperative subjects such as 🎨 Update selection foreground color in Islands Xcode Light theme or 🎉 Release version 1.8.5. Keep each commit focused on one change. Pull requests should include a brief summary, note affected theme variants, link any related issue, and attach screenshots for UI or color changes.
Versioning and publishing settings are defined in gradle.properties and build.gradle.kts. Do not commit secrets; the publishing token is expected through the jetbrains.token system property.
When bumping to the next plugin version, update all release-related files in the same change:
CHANGELOG.mdsrc/main/java/com/vermouthx/xcodetheme/notifications/XcTNotification.javagradle.properties
Keep the version number and release notes consistent across all three files before committing.