User: rednesto Date: 28 Apr 23 14:19 Revision: 52adcdb2dc3acdd55968ad0d4ac6d265a9224b1c Summary: Properly handle translation sorting errors Fixes minecraft-dev/mcdev-error-report#628 TeamCity URL: http://ci.mcdev.io:80/viewModification.html?tab=vcsModificationFiles&modId=8458&personal=false Index: src/main/kotlin/translations/TranslationEditorNotificationProvider.kt =================================================================== --- src/main/kotlin/translations/TranslationEditorNotificationProvider.kt (revision 7be7c38ddcdb1e9368546340b0680dfdedf2e82e) +++ src/main/kotlin/translations/TranslationEditorNotificationProvider.kt (revision 52adcdb2dc3acdd55968ad0d4ac6d265a9224b1c) @@ -16,6 +16,8 @@ import com.demonwav.mcdev.util.applyWriteAction import com.demonwav.mcdev.util.findMcpModule import com.demonwav.mcdev.util.mcDomain +import com.intellij.notification.Notification +import com.intellij.notification.NotificationType import com.intellij.openapi.editor.colors.EditorColors import com.intellij.openapi.editor.colors.EditorColorsManager import com.intellij.openapi.fileEditor.FileEditor @@ -73,9 +75,18 @@ Messages.getQuestionIcon(), ) if (sort == Messages.YES) { + try { - TranslationSorter.query(project, psi, Ordering.LIKE_DEFAULT) + TranslationSorter.query(project, psi, Ordering.LIKE_DEFAULT) + } catch (e: Exception) { + Notification( + "Translations sorting error", + "Error sorting translations", + e.message ?: e.stackTraceToString(), + NotificationType.WARNING, + ).notify(project) - } - } + } + } + } panel.createActionLabel("Hide notification") { panel.isVisible = false show = false Index: src/main/kotlin/translations/actions/SortTranslationsAction.kt =================================================================== --- src/main/kotlin/translations/actions/SortTranslationsAction.kt (revision 7be7c38ddcdb1e9368546340b0680dfdedf2e82e) +++ src/main/kotlin/translations/actions/SortTranslationsAction.kt (revision 52adcdb2dc3acdd55968ad0d4ac6d265a9224b1c) @@ -12,6 +12,8 @@ import com.demonwav.mcdev.translations.TranslationFiles import com.demonwav.mcdev.translations.sorting.TranslationSorter +import com.intellij.notification.Notification +import com.intellij.notification.NotificationType import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.LangDataKeys @@ -20,8 +22,18 @@ class SortTranslationsAction : AnAction() { override fun actionPerformed(e: AnActionEvent) { val file = e.getData(LangDataKeys.PSI_FILE) ?: return + + try { - TranslationSorter.query(file.project, file) + TranslationSorter.query(file.project, file) + } catch (e: Exception) { + Notification( + "Translations sorting error", + "Error sorting translations", + e.message ?: e.stackTraceToString(), + NotificationType.WARNING, + ).notify(file.project) - } + } + } override fun update(e: AnActionEvent) { val file = e.getData(LangDataKeys.VIRTUAL_FILE) Index: src/main/resources/META-INF/plugin.xml =================================================================== --- src/main/resources/META-INF/plugin.xml (revision 7be7c38ddcdb1e9368546340b0680dfdedf2e82e) +++ src/main/resources/META-INF/plugin.xml (revision 52adcdb2dc3acdd55968ad0d4ac6d265a9224b1c) @@ -219,6 +219,7 @@ +