espressif / idf-eclipse-plugin

Espressif-IDE (based on Eclipse CDT) for ESP-IDF CMake based projects 4.x and above
https://docs.espressif.com/projects/espressif-ide/en/latest/index.html
Eclipse Public License 2.0
313 stars 121 forks source link

IEP-1297 Consolidate information about the target and board in one place #1027

Closed sigmaaa closed 1 month ago

sigmaaa commented 3 months ago

Description

Updated the target editing page with the flash option and the board selection. Updated launch configuration and debug configuration

Fixes # (IEP-1297)

Type of change

Please delete options that are not relevant.

How has this been tested?

Test Configuration:

Dependent components impacted by this PR:

Checklist

Summary by CodeRabbit

Summary by CodeRabbit

coderabbitai[bot] commented 3 months ago

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?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `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 `@coderabbitai` in 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 `@coderabbitai` in 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 pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) 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](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
alirana01 commented 3 months ago

Hi @sigmaaa I am getting this error when trying to flash with JTAG image

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. image

sigmaaa commented 3 months ago

Hi @sigmaaa I am getting this error when trying to flash with JTAG image

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. image

Hi @alirana01, thanks for noticing that. I forgot to change the DEFAULT_ARGUMENT_PREFIX after refactoring. Fixed in the latest commit

alirana01 commented 2 months ago

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

sigmaaa commented 2 months ago

tested dfu, seems to be working fine

AndriiFilippov commented 2 months ago

@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 image

but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears

sigmaaa commented 2 months ago

@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 image

but if you repeat actions -> go "Edit" target again -> click "Finish" -> pop-up appears

Hi @AndriiFilippov, fixed in the latest commit

kolipakakondal commented 2 months ago

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)
kolipakakondal commented 2 months ago

serial_port variable value has not shown

image

AndriiFilippov commented 2 months ago

@sigmaaa hi !

Tested under: OS - Windows 11

small UI fix: when window is minimized - no port info visible. image

AndriiFilippov commented 2 months ago

@sigmaaa hi !

shouldn't it be "read only" ? image

kolipakakondal commented 2 months ago

@sigmaaa hi !

shouldn't it be "read only" ? image

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.

kolipakakondal commented 2 months ago

@sigmaaa hi !

Tested under: OS - Windows 11

small UI fix: when window is minimized - no port info visible. ![image](https://private-user-i

I wish we could provide a fix, but that’s the case with every window, it’s not specific to Eclipse.

sigmaaa commented 2 months ago

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)

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

sigmaaa commented 2 months ago

serial_port variable value has not shown

image

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

sigmaaa commented 2 months ago

serial_port variable value has not shown image

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

kolipakakondal commented 2 months ago

@AndriiFilippov FYI

AndriiFilippov commented 2 months ago

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)
sigmaaa commented 2 months ago

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

AndriiFilippov commented 2 months ago

@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 πŸ‘