diff --git a/CHANGELOG.md b/CHANGELOG.md index 97c8a70..a6b2367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ ### Fixed - AlreadyDisposedException on FileChangeListener after project dispose +- Request-URL limit for error reports ## [3.2.0] ### Added diff --git a/src/main/java/de/marhali/easyi18n/service/ErrorReportHandler.java b/src/main/java/de/marhali/easyi18n/service/ErrorReportHandler.java index c5aa416..a050102 100644 --- a/src/main/java/de/marhali/easyi18n/service/ErrorReportHandler.java +++ b/src/main/java/de/marhali/easyi18n/service/ErrorReportHandler.java @@ -2,12 +2,15 @@ package de.marhali.easyi18n.service; import com.intellij.ide.BrowserUtil; import com.intellij.ide.DataManager; +import com.intellij.ide.plugins.IdeaPluginDescriptor; +import com.intellij.ide.plugins.PluginManagerCore; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.ErrorReportSubmitter; import com.intellij.openapi.diagnostic.IdeaLoggingEvent; import com.intellij.openapi.diagnostic.SubmittedReportInfo; +import com.intellij.openapi.extensions.PluginId; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.progress.Task; import com.intellij.openapi.project.Project; @@ -45,7 +48,14 @@ public class ErrorReportHandler extends ErrorReportSubmitter { DataContext context = mgr.getDataContext(parentComponent); Project project = CommonDataKeys.PROJECT.getData(context); - String title = "IDE Error Report"; + if(additionalInfo == null) { + additionalInfo = "/"; + } + + IdeaPluginDescriptor plugin = PluginManagerCore.getPlugin(PluginId.getId("de.marhali.easyi18n")); + String version = plugin != null ? plugin.getVersion() : "???"; + + String title = "IDE Error Report (v" + version + ")"; String labels = "ide report"; String body = "# Additional information\n" + additionalInfo + "\n" @@ -58,10 +68,16 @@ public class ErrorReportHandler extends ErrorReportSubmitter { String url = "https://github.com/marhali/easy-i18n/issues/new?title=" + encodeParam(title) + "&labels=" + encodeParam(labels) + "&body=" + encodeParam(body); + if(url.length() > 8201) { // Consider github request url limit + url = url.substring(0, 8201); + } + + String finalUrl = url; + new Task.Backgroundable(project, "Sending error report") { @Override public void run(@NotNull ProgressIndicator indicator) { - BrowserUtil.browse(url); + BrowserUtil.browse(finalUrl); ApplicationManager.getApplication().invokeLater(() -> consumer.consume(new SubmittedReportInfo(SubmittedReportInfo.SubmissionStatus.NEW_ISSUE)));