IEP-1297 Consolidate information about the target and board in one place
Description
Updated the target editing page with the flash option and the board selection. Updated launch configuration and debug configuration
Fixes # (IEP-XXX)
Type of change
Please delete options that are not relevant.
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
How has this been tested?
- the changes affect the build and flash/debug functionality, so need to test these functionalities carefully under different circumstances. For example -> importing configuration from the older version.
Test Configuration:
- ESP-IDF Version:
- OS (Windows,Linux and macOS):
Dependent components impacted by this PR:
- Launch configuration
- Debug Configuration
- Target editing page
Checklist
- [ ] PR Self Reviewed
- [ ] Applied Code formatting
- [ ] Added Documentation
- [ ] Added Unit Test
- [ ] Verified on all platforms - Windows,Linux and macOS
Summary by CodeRabbit
-
New Features
- Introduced new configuration files for Eclipse projects to streamline Java development.
- Added custom UI components for enhanced user interactions in the GDB debugger settings.
- Implemented new constants for launch bar target configurations.
- Enhanced localization support with new message strings for improved user interface clarity.
- Introduced a new class to resolve dynamic variables related to JTAG configurations.
-
Bug Fixes
- Improved handling of dynamic variables related to JTAG and GDB operations, enhancing documentation clarity.
-
Documentation
- Updated properties files to include new key-value pairs for better guidance on settings.
-
Chores
- Added .gitignore and project configuration files to support efficient project management.
Walkthrough
This update introduces configuration files for Java SE 17 in the Eclipse-based Java project, optimizing classpath settings and enhancing dynamic variable management for JTAG and GDB operations. Additionally, new user interface components and utility classes improve the Espressif IDF environment, streamlining the development process and expanding functionality for users.
Changes
| File(s) | Summary |
|---|---|
bundles/.classpath, bundles/.settings/org.eclipse.jdt.core.prefs, bundles/.settings/org.eclipse.pde.core.prefs |
Created new configuration files for classpath setup and Eclipse IDE preferences for Java SE 17. |
bundles/com.espressif.idf.core/OSGI-INF/l10n/bundle.properties, bundles/com.espressif.idf.core/plugin.xml |
Enhanced documentation and updated variable definitions for improved clarity in plugin configuration. |
bundles/com.espressif.idf.core/src/com/espressif/idf/core/DefaultBoardProvider.java, bundles/com.espressif.idf.core/src/com/espressif/idf/core/LaunchBarTargetConstants.java |
Introduced new classes and methods for managing board configurations and dynamic variables. |
bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/IDFBuildConfiguration.java, bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFLaunchConstants.java |
Refactored code to utilize updated constant references for launch configurations. |
bundles/com.espressif.idf.core/src/com/espressif/idf/core/variable/*.java |
Added new enums and resolvers for managing dynamic variables related to JTAG and GDB. |
bundles/com.espressif.idf.swt.custom/build.properties |
Introduced a new build properties file for managing source and output directories. |
bundles/com.espressif.idf.debug.gdbjtag.openocd/* |
Enhanced GDB JTAG integration through UI changes and new message properties. |
bundles/com.espressif.idf.launch.serial.core/src/com/espressif/idf/launch/serial/util/ESPFlashUtil.java |
Updated constant DEFAULT_ARGUMENT_PREFIX for improved clarity regarding OpenOCD executable naming. |
bundles/com.espressif.idf.launch.serial.core/* |
Updated serial launch configurations by removing deprecated constants. |
tests/com.espressif.idf.core.test/* |
Modified test classes to reflect changes in constants and method updates. |
bundles/pom.xml, features/com.espressif.idf.feature/feature.xml |
Added module and plugin declarations to support the new SWT custom widgets. |
bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/NewSerialFlashTargetWizardPage.java |
Enhanced functionality for serial port management and configuration settings for ESP32. |
Sequence Diagram(s)
sequenceDiagram
participant User
participant IDE
participant CorePlugin
participant SWTPackage
User->>IDE: Configure Project
IDE->>CorePlugin: Update Board Configurations
CorePlugin->>SWTPackage: Initialize Custom Widgets
SWTPackage-->>IDE: Load UI Components
IDE-->>User: Display Enhanced Configuration UI
π° In a world of code, I hop and play,
With new tools and features brightening my day.
JTAG and GDB dance in the light,
Espressif's magic makes coding feel right!
So letβs celebrate with carrots and fun,
Hopping through changes, oh what a run! π₯β¨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Tips
Chat
There are 3 ways to chat with CodeRabbit:
- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
I pushed a fix in commit <commit_id>.Generate unit testing code for this file.Open a follow-up GitHub issue for this discussion.
- Files and specific lines of code (under the "Files changed" tab): Tag
@coderabbitaiin a new review comment at the desired location with your query. Examples:@coderabbitai generate unit testing code for this file.@coderabbitai modularize this function.
- PR comments: Tag
@coderabbitaiin a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:@coderabbitai generate interesting stats about this repository and render them as a table.@coderabbitai show all the console.log statements in this repository.@coderabbitai read src/utils.ts and generate unit testing code.@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.@coderabbitai help me debug CodeRabbit configuration file.
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.
CodeRabbit Commands (Invoked using PR comments)
@coderabbitai pauseto pause the reviews on a PR.@coderabbitai resumeto resume the paused reviews.@coderabbitai reviewto trigger an incremental review. This is useful when automatic reviews are disabled for the repository.@coderabbitai full reviewto do a full review from scratch and review all the files again.@coderabbitai summaryto regenerate the summary of the PR.@coderabbitai resolveresolve all the CodeRabbit review comments.@coderabbitai configurationto show the current CodeRabbit configuration for the repository.@coderabbitai helpto get help.
Other keywords and placeholders
- Add
@coderabbitai ignoreanywhere in the PR description to prevent this PR from being reviewed. - Add
@coderabbitai summaryto generate the high-level summary at a specific location in the PR description. - Add
@coderabbitaianywhere in the PR title to generate the title automatically.
CodeRabbit Configuration File (.coderabbit.yaml)
- You can programmatically configure CodeRabbit by adding a
.coderabbit.yamlfile to the root of your repository. - Please see the configuration documentation for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation:
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
Documentation and Community
- Visit our Documentation for detailed information on how to use CodeRabbit.
- Join our Discord Community to get help, request features, and share feedback.
- Follow us on X/Twitter for updates and announcements.
Hi @sigmaaa
I am getting this error when trying to flash with JTAG
Just on a side note I was able to flash and debug with all the default options fine.
This occurred when I made a very minor change in the main file and compiled and tried changing the option from UART to JTAG in the launch configuration.
Hi @sigmaaa I am getting this error when trying to flash with JTAG
Just on a side note I was able to flash and debug with all the default options fine. This occurred when I made a very minor change in the main file and compiled and tried changing the option from UART to JTAG in the launch configuration.
Hi @alirana01, thanks for noticing that. I forgot to change the DEFAULT_ARGUMENT_PREFIX after refactoring. Fixed in the latest commit
Hi @alirana01, thanks for noticing that. I forgot to change the DEFAULT_ARGUMENT_PREFIX after refactoring. Fixed in the latest commit
Hi @sigmaaa tested it with basic build flash and debug seems to be working fine Please see if you can verify DFU I currently dont have the board with me to verify that.
Also when switching from to this branch from an other branch's workspace the launch configs seems to be working fine.
All tests done on windows
tested dfu, seems to be working fine
@sigmaaa hi !
Tested under: OS - Windows 11 ESP-IDF: v5.3
create project -> build ESP32 target -> edit target -> change target to any -> click "Finish" -> no pop-up to delete "build" folder
but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears
@sigmaaa hi !
Tested under: OS - Windows 11 ESP-IDF: v5.3
create project -> build ESP32 target -> edit target -> change target to any -> click "Finish" -> no pop-up to delete "build" folder
but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears
Hi @AndriiFilippov, fixed in the latest commit
I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.
STACK 0
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
at org.eclipse.jface.window.Window.open(Window.java:788)
at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
at org.eclipse.equinox.launcher.Main.main(Main.java:1454)
Caused by: java.io.IOException
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)
serial_port variable value has not shown
@sigmaaa hi !
Tested under: OS - Windows 11
small UI fix:
when window is minimized - no port info visible.
@sigmaaa hi !
shouldn't it be "read only" ?
@sigmaaa hi !
shouldn't it be "read only" ?
This was added to support creating a new target that is not yet available in the IDE. For example, the esp32p4 target is still not available in the IDE, but users can manually add it and build projects.
@sigmaaa hi !
Tested under: OS - Windows 11
small UI fix: when window is minimized - no port info visible.  at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744) at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637) at org.eclipse.jface.window.Window.create(Window.java:431) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092) at org.eclipse.jface.window.Window.open(Window.java:788) at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133) at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154) at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605) at org.eclipse.equinox.launcher.Main.run(Main.java:1481) at org.eclipse.equinox.launcher.Main.main(Main.java:1454) Caused by: java.io.IOException at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)
Hi @kolipakakondal, I'm not able to reproduce this one. Probably it's not related to the PR since the serial port part hasn't been touched
serial_port variable value has not shown
we're having this because the ${serial_port} is not a real dynamic variable and we are manually replacing it with a port during the flash. I'll introduce it now. Thanks for noticing it
serial_port variable value has not shown
we're having this because the ${serial_port} is not a real dynamic variable and we are manually replacing it with a port during the flash. I'll introduce it now. Thanks for noticing it
fixed in the last commit
@AndriiFilippov FYI
I see the following error in the console when I try to click on the launch target gear icon and no prompt dialog appeared.
STACK 0 com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbmodem2101 at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192) at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744) at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637) at org.eclipse.jface.window.Window.create(Window.java:431) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092) at org.eclipse.jface.window.Window.open(Window.java:788) at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133) at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154) at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:639) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:546) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605) at org.eclipse.equinox.launcher.Main.run(Main.java:1481) at org.eclipse.equinox.launcher.Main.main(Main.java:1454) Caused by: java.io.IOException at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:407)
@sigmaaa hi ! able to reproduce it. MacOS
create project - connect board - go to Edit Launch Target - select port - click "Finish" - disconnect board - click Edit Launch Target -> it stuck. Error logs same as @kolipakakondal :
com.fazecast.jSerialComm.SerialPortInvalidPortException: Unable to create a serial port object from the invalid port descriptor: /dev/cu.usbserial-120
at com.fazecast.jSerialComm.SerialPort.getCommPort(SerialPort.java:410)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaultSerialPort(NewSerialFlashTargetWizardPage.java:238)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.setDefaults(NewSerialFlashTargetWizardPage.java:192)
at com.espressif.idf.launch.serial.ui.internal.NewSerialFlashTargetWizardPage.createControl(NewSerialFlashTargetWizardPage.java:181)
at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:637)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1092)
at org.eclipse.jface.window.Window.open(Window.java:788)
at org.eclipse.launchbar.ui.internal.target.LaunchTargetUIManager.editLaunchTarget(LaunchTargetUIManager.java:133)
at org.eclipse.launchbar.ui.controls.internal.TargetSelector.handleEdit(TargetSelector.java:154)
at org.eclipse.launchbar.ui.controls.internal.CSelector$5.lambda$0(CSelector.java:265)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4382)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4005)
Hi @AndriiFilippov,
thanks for finding a way to reproduce it. Fixed in the latest commit. Also added new icons for dynamic variables to hide and show
@sigmaaa hi !
Tested under: OS - Windows 11 / MacOS / Linux Ubuntu
able to create new target β able to delete target β able to flash / monitor β able to debug β able to erase flash β switch from old workspace without problems β
LGTM π




