diff --git a/README.md b/README.md index f3f74e9..7189ca4 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,25 @@ -# wokwi-intellij +# Intellij Wokwi Simulator Plugin -![Build](https://github.com/Jozott00/wokwi-intellij/workflows/Build/badge.svg) -[![Version](https://img.shields.io/jetbrains/plugin/v/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID) -[![Downloads](https://img.shields.io/jetbrains/plugin/d/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID) +Integrates the [Wokwi](https://wokwi.com/) simulator for ESP32 devices in Intellij based IDEs by Jetbrains. -## Template ToDo list -- [x] Create a new [IntelliJ Platform Plugin Template][template] project. -- [ ] Get familiar with the [template documentation][template]. -- [ ] Adjust the [pluginGroup](./gradle.properties), [plugin ID](./src/main/resources/META-INF/plugin.xml) and [sources package](./src/main/kotlin). -- [ ] Adjust the plugin description in `README` (see [Tips][docs:plugin-description]) -- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html?from=IJPluginTemplate). -- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time. -- [ ] Set the `PLUGIN_ID` in the above README badges. -- [ ] Set the [Plugin Signing](https://plugins.jetbrains.com/docs/intellij/plugin-signing.html?from=IJPluginTemplate) related [secrets](https://github.com/JetBrains/intellij-platform-plugin-template#environment-variables). -- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html?from=IJPluginTemplate). -- [ ] Click the Watch button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes. +The project is in early stage and not yet published on Jetbrains' marketplace. - -This Fancy IntelliJ Platform Plugin is going to be your implementation of the brilliant ideas that you have. +# Roadmap -This specific section is a source for the [plugin.xml](/src/main/resources/META-INF/plugin.xml) file which will be extracted by the [Gradle](/build.gradle.kts) during the build process. +- [x] Run simulation on specified binary +- [x] Auto restart simulation on new build +- [ ] Custom partition table support +- [ ] Custom bootloader support +- [ ] Custom Wokwi diagram support +- [ ] Support GDB debugging with IDE integration +- [ ] IDE native logging window +- [ ] Automatic binary detection -To keep everything working, do not remove `` sections. - +# Current State -## Installation +Currently it is possible to specify and run a binary on the Wokwi simulator within +the IDE. By enabling the binary watch, the simulation restarts on every new binary build. -- Using the IDE built-in plugin system: - - Settings/Preferences > Plugins > Marketplace > Search for "wokwi-intellij" > - Install - -- Manually: +![Simulation Configuration](https://github.com/Jozott00/wokwi-intellij/blob/main/blob/imgs/sim_screenshot0.png) - Download the [latest release](https://github.com/Jozott00/wokwi-intellij/releases/latest) and install it manually using - Settings/Preferences > Plugins > ⚙️ > Install plugin from disk... - - ---- -Plugin based on the [IntelliJ Platform Plugin Template][template]. - -[template]: https://github.com/JetBrains/intellij-platform-plugin-template -[docs:plugin-description]: https://plugins.jetbrains.com/docs/intellij/plugin-user-experience.html#plugin-description-and-presentation +![Running Simulation](https://github.com/Jozott00/wokwi-intellij/blob/main/blob/imgs/sim_screenshot1.png) \ No newline at end of file diff --git a/blob/imgs/sim_screenshot0.png b/blob/imgs/sim_screenshot0.png new file mode 100644 index 0000000..ee9c655 Binary files /dev/null and b/blob/imgs/sim_screenshot0.png differ diff --git a/blob/imgs/sim_screenshot1.png b/blob/imgs/sim_screenshot1.png new file mode 100644 index 0000000..65a71e4 Binary files /dev/null and b/blob/imgs/sim_screenshot1.png differ diff --git a/src/main/kotlin/com/github/jozott00/wokwiintellij/services/WokwiProjectService.kt b/src/main/kotlin/com/github/jozott00/wokwiintellij/services/WokwiProjectService.kt index 2fc3145..859113a 100644 --- a/src/main/kotlin/com/github/jozott00/wokwiintellij/services/WokwiProjectService.kt +++ b/src/main/kotlin/com/github/jozott00/wokwiintellij/services/WokwiProjectService.kt @@ -2,6 +2,7 @@ package com.github.jozott00.wokwiintellij.services import com.github.jozott00.wokwiintellij.listeners.WokwiElfFileListener import com.github.jozott00.wokwiintellij.states.WokwiConfigState +import com.github.jozott00.wokwiintellij.utils.WokwiNotifier import com.github.jozott00.wokwiintellij.wokwiServer.WokwiServer import com.intellij.openapi.Disposable import com.intellij.openapi.components.Service @@ -56,6 +57,7 @@ class WokwiProjectService(val project: Project) : Disposable { fun elfFileUpdate() { println("FILE UPDATED ... restart") + WokwiNotifier.notifyBalloon("New build available, restarting simulation...", project) simulationService.restartAll() } diff --git a/src/main/kotlin/com/github/jozott00/wokwiintellij/toolWindow/WokwiToolWindow.kt b/src/main/kotlin/com/github/jozott00/wokwiintellij/toolWindow/WokwiToolWindow.kt index fcf83a3..45b066c 100644 --- a/src/main/kotlin/com/github/jozott00/wokwiintellij/toolWindow/WokwiToolWindow.kt +++ b/src/main/kotlin/com/github/jozott00/wokwiintellij/toolWindow/WokwiToolWindow.kt @@ -19,6 +19,7 @@ class WokwiToolWindow(private val configPanel: DialogPanel, private val simulati panel.add(simulationPanel) simulationPanel.loadSimulator() panel.revalidate() + panel.repaint() } fun showConfig() { @@ -27,6 +28,7 @@ class WokwiToolWindow(private val configPanel: DialogPanel, private val simulati panel.add(configPanel) simulationPanel.stopSimulator() panel.revalidate() + panel.repaint() } diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index e7ac195..e93bcfe 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -1,7 +1,7 @@ com.github.jozott00.wokwiintellij - wokwi-intellij Template + Wokwi Simulator jozott00 com.intellij.modules.platform @@ -11,6 +11,7 @@ diff --git a/src/main/resources/META-INF/pluginIcon.svg b/src/main/resources/META-INF/pluginIcon.svg new file mode 100644 index 0000000..7f3b453 --- /dev/null +++ b/src/main/resources/META-INF/pluginIcon.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/src/main/resources/META-INF/pluginIcon_dark.svg b/src/main/resources/META-INF/pluginIcon_dark.svg new file mode 100644 index 0000000..f1ca467 --- /dev/null +++ b/src/main/resources/META-INF/pluginIcon_dark.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/icons/pluginIcon.svg b/src/main/resources/icons/pluginIcon.svg new file mode 100644 index 0000000..7f3b453 --- /dev/null +++ b/src/main/resources/icons/pluginIcon.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/src/main/resources/icons/pluginIcon_dark.svg b/src/main/resources/icons/pluginIcon_dark.svg new file mode 100644 index 0000000..f1ca467 --- /dev/null +++ b/src/main/resources/icons/pluginIcon_dark.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file