-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Error during new lauchconfig when there are no projects #917
Conversation
WalkthroughThe update focuses on refining the user interface and functionality of the ESP-IDF Eclipse plugin, specifically within the serial flash launch configuration. It encompasses a series of method signature adjustments and UI enhancements across two primary files, aimed at improving the development experience for ESP32 projects. The changes streamline project setup, flash configuration, and debugging processes, making it easier for developers to manage their ESP-IDF projects within Eclipse. Changes
Related issues
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? TipsChatThere are 3 ways to chat with CodeRabbit:
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 as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
Logger.log(e); | ||
} | ||
|
||
return projectList.get(0); | ||
return !projectList.isEmpty() ? projectList.get(0) : null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Return null when there are no projects
{ | ||
IResource[] resources = configuration.getMappedResources(); | ||
if (resources != null) | ||
{ | ||
super.initializeFrom(configuration); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initalize UI only when there are projets
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (2)
- bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/CMakeMainTab2.java (27 hunks)
- bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/SerialFlashLaunchConfigTabGroup.java (1 hunks)
Additional comments: 3
bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/SerialFlashLaunchConfigTabGroup.java (3)
- 19-21: The addition of imports for
IResource
,CoreException
, andILaunchConfiguration
is appropriate given their usage in theinitializeFrom
method.- 32-32: The class declaration and use of
@SuppressWarnings("restriction")
are appropriate for Eclipse plugin development.- 51-65: The
initializeFrom
method correctly initializes resources and handles exceptions. However, consider providing user feedback, such as a dialog, in case of exceptions to improve the user experience.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review Status
Actionable comments generated: 0
Configuration used: CodeRabbit UI
Files selected for processing (1)
- bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/CMakeMainTab2.java (28 hunks)
Additional comments: 14
bundles/com.espressif.idf.launch.serial.ui/src/com/espressif/idf/launch/serial/ui/internal/CMakeMainTab2.java (14)
- 18-18: The addition of
import java.net.URI;
is noted. Ensure that the new functionality using URIs properly handles input validation and security considerations.- 81-82: The formatting change with the newline after the class declaration extends clause improves readability.
- 106-111: The reformatting of the
FlashInterface
enum enhances code readability without altering functionality.- 118-119: Adjustments to method signatures throughout the file enhance readability. Verify that these changes maintain consistent method behavior and do not introduce any functional discrepancies.
- 103-122: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [118-144]
The
createControl
method has been significantly modified. Ensure that the dispose listener properly cleans up resources and that the UI components are initialized correctly. The method's structure appears to be well-organized, enhancing maintainability.
- 144-146: The
updateArgument
method override indicates that the default argument field is not needed. Confirm that this decision aligns with the overall functionality and that any necessary argument handling is performed elsewhere.- 165-172: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [154-199]
Significant changes in
createArgumentComponent
andhandleVariablesButtonSelected
methods improve the UI component setup and variable handling. Ensure that UI components are correctly laid out and that variable insertion into text fields is secure and error-free.
- 282-312: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [213-325]
The addition of
createUartComposite
,createJtagflashComposite
, andcreateDfuTargetComposite
methods enhances the modularity of UI component creation. Review these methods for correct UI setup, especially ensuring that event listeners are properly attached and handled.
- 369-390: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [351-383]
The
createProjectGroup
andchooseProject
methods focus on project selection UI. Verify that the project selection dialog is correctly populated and that selected projects are properly handled.
- 424-439: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [417-457]
The
createJtagFlashButton
method introduces a UI component for selecting the flash interface. Ensure that the selection logic correctly updates the UI and that the method properly handles the case when JTAG flashing is not available.
- 468-487: The
setDefaults
andgetSelectedProject
methods are crucial for initializing launch configuration defaults and selecting a project, respectively. Confirm that these methods correctly handle default values and project selection, especially in edge cases.- 465-522: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [509-528]
The
initializeCProject
andswitchUI
methods are important for setting up the C project in the launch configuration and switching the UI based on the selected flash interface. Ensure that project initialization is correctly performed and that the UI switching logic is robust.
- 538-583: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [541-589]
The
isValid
,performApply
,updateProjetFromConfig
,updateFlashOverStatus
, andupdateArgumentsWithDefaultFlashCommand
methods contain logic for validating the launch configuration, applying changes, and updating the UI based on the configuration. Review these methods for correct logic and error handling, particularly in the validation logic to prevent incorrect configurations.
- 831-919: > 📝 NOTE
This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [632-915]
The
saveLaunchTargetName
,initializeFrom
,updateProjetFromConfig
,updateFlashOverStatus
,updateArgumentsWithDefaultFlashCommand
,initializeJtagComboFields
,createOpenOcdSetupComponent
,updateArgumentsField
,newVariableExpression
,getLaunchTarget
,updateLocation
,updateWorkingDirectory
, andscheduleApplyTargetJob
methods introduce or modify significant functionality related to launch configuration handling and UI updates. Ensure that these methods are thoroughly reviewed for correctness, security considerations, and adherence to best practices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* fix: Error during new lauchconfig when there are no projects * fix: exception when deleting project without deleting configurations --------- Co-authored-by: Denys Almazov <almazovdenys@gmail.com>
Description
Exception while creating a new lauchconfig when there are no projects
Fixes # (IEP-1186)
Type of change
How has this been tested?
Test Configuration:
Dependent components impacted by this PR:
Checklist
Summary by CodeRabbit