diff --git a/build.gradle b/build.gradle deleted file mode 100644 index e807037..0000000 --- a/build.gradle +++ /dev/null @@ -1,56 +0,0 @@ -buildscript { - repositories { - maven { url 'http://dl.bintray.com/jetbrains/intellij-plugin-service' } - maven { url "https://plugins.gradle.org/m2/" } - } - - dependencies { - classpath "gradle.plugin.org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.4.2" - } -} - -plugins { - id 'java' - id 'org.jetbrains.intellij' version '0.4.1' -} - -sourceCompatibility = JavaVersion.VERSION_1_8 -targetCompatibility = JavaVersion.VERSION_1_8 - -repositories { - mavenCentral() -} - -dependencies { - testCompile group: 'junit', name: 'junit', version: '4.12' - compile ('com.tinify:tinify:1.6.2') { -// exclude group: 'com.google.code.gson', module: 'gson' -// exclude group: 'com.squareup.okhttp3', module: 'okhttp' -// exclude group: 'com.squareup.okio', module: 'okio' - } - compile ('io.sentry:sentry:1.7.16') { - exclude group: 'org.slf4j', module: 'slf4j-api' - exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core' - } -} - -intellij { - version ideVersion - updateSinceUntilBuild false - plugins = [ - "coverage", - "java-i18n", - "remote-run", - "properties", - ] -} - -group 'com.nvlad' -version '1.0.9' - -patchPluginXml { - changeNotes """ -- Update "Usage this month" value on Open plugin settings or press Apply -- Catch TinyPNG service errors. -""" -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..986d12c --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,53 @@ +plugins { + id("java") + id("org.jetbrains.kotlin.jvm") version "1.9.23" + id("org.jetbrains.intellij") version "1.17.4" +} + +group = "com.nvlad" +version = "1.0.10" + +repositories { + mavenCentral() +} + +// Configure Gradle IntelliJ Plugin +// Read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html +intellij { + version.set("2024.1.7") +} + +tasks { + // Set the JVM compatibility versions + withType { + sourceCompatibility = "17" + targetCompatibility = "17" + } + withType { + kotlinOptions.jvmTarget = "17" + } + + patchPluginXml { + sinceBuild.set("232") + untilBuild.set("260") + } + + signPlugin { + certificateChain.set(System.getenv("CERTIFICATE_CHAIN")) + privateKey.set(System.getenv("PRIVATE_KEY")) + password.set(System.getenv("PRIVATE_KEY_PASSWORD")) + } + + publishPlugin { + token.set(System.getenv("PUBLISH_TOKEN")) + } +} + + +dependencies { + implementation("com.tinify:tinify:1.8.8") + implementation("io.sentry:sentry:1.7.16") { + exclude(group = "org.slf4j", module = "org.slf4j") + exclude(group = "com.fasterxml.jackson.core", module = "jackson-core") + } +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 21f7da1..68a2d9d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Jan 21 05:15:54 MSK 2019 +#Fri Apr 11 07:32:57 CST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip +zipStorePath=wrapper/dists \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 001d561..c71e3ad 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,9 @@ +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + } +} + rootProject.name = 'tinypng-optimizer' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..2b89e63 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,8 @@ +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + } +} + +rootProject.name = "tinypng-optimizer" diff --git a/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java b/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java index a9a687b..0e9b204 100644 --- a/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java +++ b/src/main/java/com/nvlad/tinypng/actions/BaseCompressAction.java @@ -1,9 +1,6 @@ package com.nvlad.tinypng.actions; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.PlatformDataKeys; -import com.intellij.openapi.actionSystem.Presentation; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; @@ -16,7 +13,7 @@ import java.util.List; public abstract class BaseCompressAction extends AnAction { - private static final String[] supportedExtensions = {"png", "jpg", "jpeg"}; + private static final String[] SUPPORTED_EXTENSIONS = {"png", "jpg", "jpeg"}; @Override public void actionPerformed(AnActionEvent e) { @@ -34,18 +31,6 @@ public void actionPerformed(AnActionEvent e) { } } - @Override - public void update(AnActionEvent e) { - PluginGlobalSettings settings = PluginGlobalSettings.getInstance(); - if (!settings.checkSupportedFiles) { - return; - } - - final List list = getSupportedFileList(PlatformDataKeys.VIRTUAL_FILE_ARRAY.getData(e.getDataContext()), true); - final Presentation presentation = e.getPresentation(); - presentation.setEnabled(!list.isEmpty()); - } - @Override public boolean isDumbAware() { return true; @@ -59,6 +44,7 @@ List getSupportedFileList(VirtualFile[] files, boolean breakOnFirst for (VirtualFile file : files) { if (file.isDirectory()) { + //noinspection UnsafeVfsRecursion result.addAll(getSupportedFileList(file.getChildren(), breakOnFirstFound)); if (breakOnFirstFound && !result.isEmpty()) { break; @@ -68,7 +54,7 @@ List getSupportedFileList(VirtualFile[] files, boolean breakOnFirst } final String extension = file.getExtension(); - if (extension != null && ArrayUtil.contains(extension.toLowerCase(), supportedExtensions)) { + if (extension != null && ArrayUtil.contains(extension.toLowerCase(), SUPPORTED_EXTENSIONS)) { result.add(file); if (breakOnFirstFound) { break; diff --git a/src/main/java/com/nvlad/tinypng/actions/CompressDialogAction.java b/src/main/java/com/nvlad/tinypng/actions/CompressDialogAction.java index b58d96d..86f5e69 100644 --- a/src/main/java/com/nvlad/tinypng/actions/CompressDialogAction.java +++ b/src/main/java/com/nvlad/tinypng/actions/CompressDialogAction.java @@ -13,6 +13,7 @@ import java.util.List; public class CompressDialogAction extends BaseCompressAction { + @Override public void actionPerformed(AnActionEvent e) { Project project = e.getProject(); diff --git a/src/main/java/com/nvlad/tinypng/diagnostic/ErrorReportHandler.java b/src/main/java/com/nvlad/tinypng/diagnostic/ErrorReportHandler.java index d6bd246..337bf9b 100644 --- a/src/main/java/com/nvlad/tinypng/diagnostic/ErrorReportHandler.java +++ b/src/main/java/com/nvlad/tinypng/diagnostic/ErrorReportHandler.java @@ -18,13 +18,12 @@ public String getReportActionText() { } @Override - public boolean submit(@NotNull IdeaLoggingEvent[] events, @Nullable String additionalInfo, @NotNull Component parentComponent, @NotNull Consumer consumer) { + public boolean submit(IdeaLoggingEvent @NotNull [] events, @Nullable String additionalInfo, @NotNull Component parentComponent, @NotNull Consumer consumer) { for (IdeaLoggingEvent event : events) { Throwable throwable = event.getThrowable(); if (event.getData() instanceof AbstractMessage) { throwable = ((AbstractMessage) event.getData()).getThrowable(); } - SentryErrorReporter.submitErrorReport(throwable, additionalInfo, consumer); } diff --git a/src/main/java/com/nvlad/tinypng/diagnostic/SentryErrorReporter.java b/src/main/java/com/nvlad/tinypng/diagnostic/SentryErrorReporter.java index 4357023..44ac4b1 100644 --- a/src/main/java/com/nvlad/tinypng/diagnostic/SentryErrorReporter.java +++ b/src/main/java/com/nvlad/tinypng/diagnostic/SentryErrorReporter.java @@ -24,7 +24,7 @@ import java.util.Map; class SentryErrorReporter { - static void submitErrorReport(Throwable error, String description, Consumer consumer) { + static void submitErrorReport(Throwable error, String description, Consumer consumer) { final SentryClient sentry = SentryClientFactory.sentryClient("https://f6b3a5fb9f11461ab70f481eb68ed237@sentry.nvlad.com/6"); sentry.addEventSendCallback(new EventSendCallback() { @Override diff --git a/src/main/java/com/nvlad/tinypng/ui/dialogs/ProcessImageDialog.java b/src/main/java/com/nvlad/tinypng/ui/dialogs/ProcessImageDialog.java index 533f602..76b4c03 100644 --- a/src/main/java/com/nvlad/tinypng/ui/dialogs/ProcessImageDialog.java +++ b/src/main/java/com/nvlad/tinypng/ui/dialogs/ProcessImageDialog.java @@ -4,6 +4,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.CheckboxTree; import com.intellij.ui.JBColor; +import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeUtil; import com.nvlad.tinypng.Constants; @@ -68,6 +69,7 @@ public ProcessImageDialog(Project project, List files, List com.intellij.modules.lang -