diff --git a/src/main/java/com/odoo/odools/forms/CrashReportForm.java b/src/main/java/com/odoo/odools/forms/CrashReportForm.java index 52677af..b663db5 100644 --- a/src/main/java/com/odoo/odools/forms/CrashReportForm.java +++ b/src/main/java/com/odoo/odools/forms/CrashReportForm.java @@ -42,8 +42,9 @@ public class CrashReportForm extends DialogWrapper { private String logContent; private String crashInfo; private String currentConfig; + private final String recentMessages; - public CrashReportForm(Project project, VirtualFile currentFile, String crash_info, String currentConfig, String logs_path) { + public CrashReportForm(Project project, VirtualFile currentFile, String crash_info, String currentConfig, String logs_path, String recentMessages) { super(project); this.currentFile = currentFile; this.logsPath = logs_path; @@ -52,6 +53,7 @@ public CrashReportForm(Project project, VirtualFile currentFile, String crash_in if (currentConfig == null) { this.currentConfig = "Config not found"; } + this.recentMessages = recentMessages; setTitle("OdooLS Crash Report"); init(); // required! } @@ -107,7 +109,7 @@ public void actionPerformed(ActionEvent e) { } private void sendReport(VirtualFile currentFile, String currentFileContent, String logsPath) { - String url = "https://iap-services.odoo.com/api/odools/vscode/2/crash_report"; + String url = "https://iap-services.odoo.com/api/odools/vscode/3/crash_report"; String json = buildJson(currentFile, currentFileContent, logsPath); try (HttpClient client = HttpClient.newHttpClient()) { HttpRequest request = HttpRequest.newBuilder() @@ -155,7 +157,8 @@ private String buildJson(VirtualFile currentFile, String currentFileContent, Str "additional_info": "%s", "version": "%s", "python_version": "%s", - "configuration": "%s" + "configuration": "%s", + "recent_messages": "%s" } } """.formatted( @@ -168,7 +171,8 @@ private String buildJson(VirtualFile currentFile, String currentFileContent, Str escapeForJson(this.tDescr.getText()), pluginVersion, "See configuration", - escapeForJson(this.currentConfig) + escapeForJson(this.currentConfig), + escapeForJson(this.recentMessages) ); } diff --git a/src/main/kotlin/com/odoo/odools/OdooCustomLsp4jClient.kt b/src/main/kotlin/com/odoo/odools/OdooCustomLsp4jClient.kt index 1edee5b..77fbc98 100644 --- a/src/main/kotlin/com/odoo/odools/OdooCustomLsp4jClient.kt +++ b/src/main/kotlin/com/odoo/odools/OdooCustomLsp4jClient.kt @@ -80,7 +80,8 @@ class OdooCustomLsp4jClient(val project: Project, handler: LspServerNotification val widget = statusBar?.getWidget("OdooLspStatusWidget") as? OdooLspStatusWidget val currentConfig = widget?.getCurrentConfiguration()?.second if (logs != null) { - CrashReportForm(project, currentFile, params.getCrashInfo(), currentConfig, logs).show() + CrashReportForm(project, currentFile, params.getCrashInfo(), currentConfig, + logs, params.getRecentMessages()).show() } } }) diff --git a/src/main/kotlin/com/odoo/odools/OdooLSPathConfigurable.kt b/src/main/kotlin/com/odoo/odools/OdooLSPathConfigurable.kt index d935358..a7c5e9f 100644 --- a/src/main/kotlin/com/odoo/odools/OdooLSPathConfigurable.kt +++ b/src/main/kotlin/com/odoo/odools/OdooLSPathConfigurable.kt @@ -1,9 +1,11 @@ package com.odoo.odools +import com.intellij.ide.BrowserUtil import com.intellij.openapi.fileChooser.FileChooserDescriptor import com.intellij.openapi.options.Configurable import com.intellij.openapi.ui.TextFieldWithBrowseButton import com.intellij.ui.JBColor +import com.intellij.ui.components.ActionLink import com.intellij.ui.components.JBLabel import javax.swing.JComponent import javax.swing.JPanel @@ -44,6 +46,7 @@ class OdooLSPathConfigurable : Configurable { The plugin will use this path to install needed resources and logs.
+ OdooLS is configures through configuration files. To create one, please refer to our wiki: """.trimIndent() @@ -51,6 +54,13 @@ class OdooLSPathConfigurable : Configurable { description.font = description.font.deriveFont(description.font.size2D - 1f) description.foreground = JBColor.GRAY container.add(description, gbc) + val externalLink = ActionLink("The configuration wiki") { + BrowserUtil.browse("https://github.com/odoo/odoo-ls/wiki/3.-Configuration-files") + }.apply { + setContextHelpIcon() + } + gbc.gridy = 3 + container.add(externalLink, gbc) //outerPanel to keep everything at top of the window val outerPanel = JPanel(BorderLayout()) diff --git a/src/main/kotlin/com/odoo/odools/params/DisplayCrashNotificationParams.kt b/src/main/kotlin/com/odoo/odools/params/DisplayCrashNotificationParams.kt index 9a20aef..b7e0dca 100644 --- a/src/main/kotlin/com/odoo/odools/params/DisplayCrashNotificationParams.kt +++ b/src/main/kotlin/com/odoo/odools/params/DisplayCrashNotificationParams.kt @@ -8,15 +8,18 @@ class DisplayCrashNotificationParams { private var crashInfo: String private var pid: Long + private var recentMessages: String constructor() { crashInfo = String() pid = 0 + recentMessages = String() } - constructor(@NonNull crashInfo: String, @NonNull pid: Long) { + constructor(@NonNull crashInfo: String, @NonNull pid: Long, @NonNull recentMessages: String) { this.crashInfo = Preconditions.checkNotNull(crashInfo, "crashInfo") this.pid = Preconditions.checkNotNull(pid, "pid") + this.recentMessages = Preconditions.checkNotNull(crashInfo, "recentMessages") } @NonNull @@ -33,10 +36,19 @@ class DisplayCrashNotificationParams { return this.crashInfo } - fun setCrashInfo(@NonNull configFile: List>) { + fun setCrashInfo(@NonNull crashInfo: String) { this.crashInfo = Preconditions.checkNotNull(crashInfo, "crashInfo") } + @NonNull + fun getRecentMessages(): String { + return this.recentMessages + } + + fun setRecentMessages(@NonNull recentMessages: String) { + this.recentMessages = Preconditions.checkNotNull(recentMessages, "recentMessages") + } + override fun toString(): String { val b = ToStringBuilder(this) b.add("configFile", this.crashInfo)