You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Islands editor-scheme mapping is now declared via the editorScheme
key in each theme JSON; the runtime listener no longer exists.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CLAUDE.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,7 @@ Three base variants and three "Islands" variants that wrap a JetBrains built-in
32
32
33
33
Each theme consists of two files in `src/main/resources/themes/`:
34
34
35
-
-**`*.theme.json`** β UI theme: named color palette under `colors`, component overrides under `ui`, icon color palette under `icons`. Islands variants add `"parentTheme": "Islands Dark"`.
35
+
-**`*.theme.json`** β UI theme: named color palette under `colors`, component overrides under `ui`, icon color palette under `icons`. Each declares its editor scheme via the `editorScheme` key. Islands variants add `"parentTheme": "Islands Dark"` and point `editorScheme` at the reused base XML (e.g. `IslandsDracula.theme.json` β `/themes/Dracula.xml`).
36
36
-**`*.xml`** β Editor color scheme (syntax highlighting, gutter colors, etc.)
37
37
38
38
Colors in `.theme.json` are first defined in the `colors` block as named tokens (e.g., `accentColor`), then referenced by name in `ui`. Hard-coded hex values are also allowed where the named palette doesn't apply.
@@ -45,9 +45,10 @@ All source lives in `src/main/kotlin/com/draculatheme/jetbrains/`:
45
45
-**`enums/DraculaVariant.kt`** β enum of all 6 variants with their display labels; used as the authoritative list throughout the plugin
46
46
-**`settings/DraculaSettings.kt` + `DraculaState.kt`** β persistent app-level settings (currently stores the last-seen version to detect upgrades)
47
47
-**`activities/DraculaStartupActivity.kt`** β runs on project open; compares stored version to current, fires install or upgrade notification
48
-
-**`listeners/DraculaThemeChangeListener.kt`** β listens to `LafManagerListener`; when an Islands variant is selected, maps it to the corresponding base editor scheme (`_@user_<SchemeName>`) because Islands variants share editor scheme XML files with their base counterparts
49
48
-**`notifications/DraculaNotification.kt`** β renders styled HTML notifications for first install and version upgrades
50
49
50
+
Islands variants share editor scheme XML with their base counterparts via the `editorScheme` key in their `.theme.json` (see [Theme file structure](#theme-file-structure)); there is no runtime listener performing the mapping.
51
+
51
52
### Release workflow
52
53
53
54
Releases are triggered by pushing any `v*` tag. CI (`build.yml`) builds the plugin, creates a GitHub Release with the zip artifact, then publishes to the JetBrains Marketplace using the `JETBRAINS_TOKEN` secret.
0 commit comments