From 1192e283b25d6c966c73e1daf26d1647b8dd64b2 Mon Sep 17 00:00:00 2001 From: "Adam A. de Lima" Date: Thu, 1 Oct 2026 12:31:34 +0200 Subject: [PATCH] feat: enhance themes with Islands UI support and Docker build instructions --- README.md | 18 +++++++++++++ docker-compose.yml | 13 ++++++++++ gradle.properties | 4 +-- .../settings/DartColorSettingsPage.kt | 2 +- .../settings/KtColorSettingsPage.kt | 3 ++- .../resources/themes/vscode_dark.theme.json | 19 +++++++++++++- .../themes/vscode_dark_modern.theme.json | 17 ++++++++++++ .../resources/themes/vscode_light.theme.json | 26 +++++++++++++++++++ 8 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 docker-compose.yml diff --git a/README.md b/README.md index cb66c48..16529da 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,24 @@ This plugin aims to closely emulate the VSCode theme within the IDE, simplifying **For Best Viewing Experience:** - Plugins: VSCode Theme + Rainbow Brackets +#### Islands UI + +The VSCode Dark, VSCode Dark Modern, and VSCode Light Modern themes use the JetBrains Islands UI on IDE version 2025.2.3 and later. After installing the plugin, select the desired theme under Settings/Preferences > Appearance & Behavior > Appearance > Theme. You can optionally enable Different tool window background for stronger editor focus. + +### Build with Docker + +Docker and Docker Compose are enough; the Compose service provides JDK 21 and Gradle 8.13: + +```bash +docker compose run --rm build +``` + +The plugin ZIP is written to `build/distributions/`. To run other Gradle tasks, override the service command, for example: + +```bash +docker compose run --rm build ./gradlew test --no-daemon +``` + ### Supported Languages - Advance Syntax highlighting Support: - JavaScript, TypeScript, Java, Dart/Flutter, Rust, Python, Kotlin, C#/F#, Php, Go diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9708b83 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +services: + build: + image: gradle:8.13-jdk21 + working_dir: /workspace + volumes: + - .:/workspace + - gradle-cache:/home/gradle/.gradle + environment: + GRADLE_USER_HOME: /home/gradle/.gradle + command: ["./gradlew", "buildPlugin", "--no-daemon"] + +volumes: + gradle-cache: diff --git a/gradle.properties b/gradle.properties index 20249aa..2092bc6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,12 +7,12 @@ pluginName = VSCode Theme pluginVersion = 1.12.0 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html -pluginSinceBuild=251 +pluginSinceBuild=252 pluginUntilBuild = # IntelliJ Platform Properties -> https://github.com/JetBrains/gradle-intellij-plugin#intellij-platform-properties platformType = IU -platformVersion = 2025.1 +platformVersion = 2025.2.3 # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html #platformPlugins = JavaScript, com.intellij.java, io.flutter:75.1.4, Dart:232.9559.10, PsiViewer:232.2, \ diff --git a/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/DartColorSettingsPage.kt b/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/DartColorSettingsPage.kt index 725aad7..70eb4a0 100644 --- a/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/DartColorSettingsPage.kt +++ b/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/DartColorSettingsPage.kt @@ -38,7 +38,7 @@ class DartColorSettingsPage : BaseColorSettings() { } override fun getIcon(): Icon { - return DartFileType.INSTANCE.icon + return DartFileType.INSTANCE.icon ?: AllIcons.FileTypes.Any_type } diff --git a/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/KtColorSettingsPage.kt b/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/KtColorSettingsPage.kt index eb55371..fef5f53 100644 --- a/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/KtColorSettingsPage.kt +++ b/src/main/kotlin/com/github/dinbtechit/vscodetheme/annotators/settings/KtColorSettingsPage.kt @@ -2,6 +2,7 @@ package com.github.dinbtechit.vscodetheme.annotators.settings import com.github.dinbtechit.vscodetheme.annotators.JavaAnnotator +import com.intellij.icons.AllIcons import com.intellij.lang.Language import com.intellij.openapi.editor.colors.TextAttributesKey import com.intellij.openapi.fileTypes.SyntaxHighlighter @@ -38,7 +39,7 @@ class KtColorSettingsPage : BaseColorSettings() { } override fun getIcon(): Icon { - return KotlinFileType.INSTANCE.icon + return KotlinFileType.INSTANCE.icon ?: AllIcons.FileTypes.Any_type } diff --git a/src/main/resources/themes/vscode_dark.theme.json b/src/main/resources/themes/vscode_dark.theme.json index 6b55a37..c9eafcd 100644 --- a/src/main/resources/themes/vscode_dark.theme.json +++ b/src/main/resources/themes/vscode_dark.theme.json @@ -3,7 +3,18 @@ "dark": true, "author": "Dinesh Srinivasan", "editorScheme": "/themes/vscode_dark_brighter.xml", + "parentTheme": "Islands Dark", "ui": { + "Islands": 1, + "Island.arc": 20, + "Island.borderWidth": 5, + "Island.borderColor": "#1e1e1e", + "Island.inactiveAlpha": 0.44, + "MainWindow.background": "#323333", + "MainToolbar.borderColor": "#1e1e1e00", + "ToolWindow.Stripe.borderColor": "#1e1e1e00", + "StatusBar.borderColor": "#1e1e1e00", + "*": { "background": "#323333", "foreground": "#DFDFE0", @@ -121,7 +132,11 @@ }, "EditorTabs": { "tabInsets": true, + "background": "#1e1e1e", + "underlinedBorderColor": "#1D7BED", + "inactiveUnderlinedTabBorderColor": "#24648D", "underlinedTabBackground": "#1e1e1e", + "inactiveUnderlinedTabBackground": "#2A2B2B", "inactiveColoredFileBackground": "#2d281d" }, @@ -158,7 +173,9 @@ } }, "ToolWindow": { - "background": "#1e1e1e" + "background": "#1e1e1e", + "Header.background": "#1e1e1e", + "Header.inactiveBackground": "#1e1e1e" }, "Tree.background": "#252526", "WelcomeScreen": { diff --git a/src/main/resources/themes/vscode_dark_modern.theme.json b/src/main/resources/themes/vscode_dark_modern.theme.json index 62ff3b6..ca83bbd 100644 --- a/src/main/resources/themes/vscode_dark_modern.theme.json +++ b/src/main/resources/themes/vscode_dark_modern.theme.json @@ -3,7 +3,18 @@ "dark": true, "author": "Dinesh Srinivasan", "editorScheme": "/themes/vscode_dark_brighter.xml", + "parentTheme": "Islands Dark", "ui": { + "Islands": 1, + "Island.arc": 20, + "Island.borderWidth": 5, + "Island.borderColor": "#1e1e1e", + "Island.inactiveAlpha": 0.44, + "MainWindow.background": "#323333", + "MainToolbar.borderColor": "#1e1e1e00", + "ToolWindow.Stripe.borderColor": "#1e1e1e00", + "StatusBar.borderColor": "#1e1e1e00", + "*": { "background": "#1e1e1e", "foreground": "#DFDFE0", @@ -125,7 +136,11 @@ }, "EditorTabs": { "tabInsets": true, + "background": "#1f1f1f", + "underlinedBorderColor": "#1D7BED", + "inactiveUnderlinedTabBorderColor": "#24648D", "underlinedTabBackground": "#1f1f1f", + "inactiveUnderlinedTabBackground": "#2A2B2B", "inactiveColoredFileBackground": "#2d281d" }, @@ -178,6 +193,8 @@ }, "ToolWindow": { "background": "#1e1e1e", + "Header.background": "#1e1e1e", + "Header.inactiveBackground": "#1e1e1e", "Header.borderColor": "#ffffff12" }, "Tree": { diff --git a/src/main/resources/themes/vscode_light.theme.json b/src/main/resources/themes/vscode_light.theme.json index c41b4bf..d8008b9 100644 --- a/src/main/resources/themes/vscode_light.theme.json +++ b/src/main/resources/themes/vscode_light.theme.json @@ -3,6 +3,7 @@ "dark": false, "author": "Dinesh Srinivasan", "editorScheme": "/themes/vscode_light_modern.xml", + "parentTheme": "Islands Light", "colors": { "Grey1": "#000000", @@ -104,6 +105,16 @@ }, "ui": { + "Islands": 1, + "Island.arc": 20, + "Island.borderWidth": 5, + "Island.borderColor": "#F7F8FA", + "Island.inactiveAlpha": 0.44, + "MainWindow.background": "#EBECF0", + "MainToolbar.borderColor": "#F7F8FA00", + "ToolWindow.Stripe.borderColor": "#F7F8FA00", + "StatusBar.borderColor": "#F7F8FA00", + "*": { "selectionBackground": "Blue11", "lightSelectionBackground": "Blue11", @@ -115,6 +126,7 @@ }, "Editor": { + "background": "Grey14", "SearchField" : { "background": "Grey14" }, @@ -135,6 +147,14 @@ } }, + "EditorTabs": { + "background": "Grey14", + "underlinedBorderColor": "Blue4", + "inactiveUnderlinedTabBorderColor": "Blue7", + "underlinedTabBackground": "Grey14", + "inactiveUnderlinedTabBackground": "Grey13" + }, + "SearchMatch": { "startBackground": "#f5bc2d", "endBackground": "#e9b32b" @@ -155,6 +175,12 @@ "Projects.actions.background": "#225DA1" }, + "ToolWindow": { + "background": "Grey13", + "Header.background": "Grey13", + "Header.inactiveBackground": "Grey13" + }, + "RecentProject": { "Color1": { "MainToolbarGradientStart": "#F5D4C1",