diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f272c6..4726873 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,13 @@ ### Fixed +## 4.2.2 - Jun 21, 2026 + +### Changed + +- replaced deprecated function ReadAction.compute(ThrowableComputable) +- replaced internal function PluginManagerCore.getPlugin(PluginId) + ## 4.2.1 - May 24, 2026 ### Fixed diff --git a/gradle.properties b/gradle.properties index 2021a44..1232e4e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ pluginName=CSV Editor pluginId=net.seesharpsoft.intellij.plugins.csv -pluginVersion=4.2.1 +pluginVersion=4.2.2 pluginSinceBuild=242 diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvPluginManager.java b/src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvPluginManager.java index 4eb3d2c..880bcb6 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvPluginManager.java +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvPluginManager.java @@ -2,7 +2,7 @@ import com.intellij.DynamicBundle; import com.intellij.ide.plugins.IdeaPluginDescriptor; -import com.intellij.ide.plugins.PluginManagerCore; +import com.intellij.ide.plugins.PluginManager; import com.intellij.openapi.extensions.PluginId; import java.util.ResourceBundle; @@ -22,7 +22,7 @@ public static String getLocalizedText(String token) { } public static IdeaPluginDescriptor getPluginDescriptor() { - return PluginManagerCore.getPlugin(PluginId.getId("net.seesharpsoft.intellij.plugins.csv")); + return PluginManager.getInstance().findEnabledPlugin(PluginId.getId("net.seesharpsoft.intellij.plugins.csv")); } public static String getVersion() { diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java index 9faad37..b070038 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java @@ -227,14 +227,14 @@ public final CsvFile getCsvFile() { } } else { // Off EDT it is safe to resolve PSI - this.psiFile = ReadAction.compute(() -> { + this.psiFile = ReadAction.nonBlocking(() -> { if (this.document == null) { this.document = FileDocumentManager.getInstance().getDocument(this.file); } if (this.document == null) return null; PsiDocumentManager documentManager = PsiDocumentManager.getInstance(project); return documentManager.getPsiFile(this.document); - }); + }).executeSynchronously(); } if (this.psiFile != null) { diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvCodeStyleSettingsProvider.java b/src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvCodeStyleSettingsProvider.java index 23175f0..d33fb81 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvCodeStyleSettingsProvider.java +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvCodeStyleSettingsProvider.java @@ -97,7 +97,7 @@ public LanguageCodeStyleSettingsProvider.SettingsType getSettingsType() { // Defensive: PSI might be invalidated by the time the settings UI triggers reformat. // Guard against invalid files and run inside a read action to avoid race conditions. try { - return com.intellij.openapi.application.ReadAction.compute(() -> { + return com.intellij.openapi.application.ReadAction.nonBlocking(() -> { if (!psiFile.isValid()) { return psiFile; } @@ -110,7 +110,9 @@ public LanguageCodeStyleSettingsProvider.SettingsType getSettingsType() { } CodeStyleManager.getInstance(project).reformatText(psiFile, 0, endOffset); return psiFile; - }); + }).executeSynchronously(); + } catch (com.intellij.openapi.progress.ProcessCanceledException e) { + throw e; } catch (Throwable ignored) { // As a last resort, do nothing to avoid PluginException surfacing to users. return psiFile;