espressif / idf-eclipse-plugin

Espressif-IDE (based on Eclipse CDT) for ESP-IDF CMake based projects 4.x and above
Eclipse Public License 2.0
302 stars 121 forks source link

IEP-1121: build/ide/idf_components: Avoid showing error markers on the project #865

Closed alirana01 closed 8 months ago

alirana01 commented 9 months ago

Description

The ide/esp_idf_components contained derived files and due to cdt indexer issues they showed invalid errors and which was not good UX. The following PR creates a Listener for the markers that are added in the problems view. A preference checkbox is also added to enable or disable this

image

Fixes # (IEP-1121)

Type of change

Please delete options that are not relevant.

How has this been tested?

Build a project and then go into build/ide/esp_idf_components and try to open the source files from the components their must not be any errors in that @AndriiFilippov also test by enabling and disabling the added setting

Test Configuration:

Checklist

Summary by CodeRabbit

coderabbitai[bot] commented 9 months ago

Walkthrough

The update enhances the Espressif IDF plugin for Eclipse by improving error handling and user preferences. New imports and a listener for editor events have been added to manage error markers more effectively. A constant for hiding errors and messages for user preferences have been included, and the user experience has been refined by filtering out irrelevant errors.

Changes

File Path Changes
.../idf/core/IDFCorePlugin.java Added imports, a new field for editor listener, and modified methods for error marker management.
.../idf/core/IDFCorePreferenceConstants.java Added a constant for hiding IDF component errors.
.../idf/core/build/ErrorMarkerListener.java Added a new class for error marker listening.
.../idf/core/build/MarkerCleanupJob.java Modified to enhance user experience by cleaning up unwanted errors.
.../idf/core/build/Messages.java
.../idf/core/build/messages.properties
Added static strings and preferences for user messages and job names.

🐇✨ In the code where errors did play, A clever rabbit found a way. To clear the clutter, refine the view, Now Eclipse shines, feels just like new! 🌟 🐇✨

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: - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit-tests for this file.` - 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 tests 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 from git and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit tests.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` 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) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - The JSON schema for the configuration file is available [here](https://coderabbit.ai/integrations/coderabbit-overrides.v2.json). - 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/coderabbit-overrides.v2.json` ### CodeRabbit Discord Community Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback.
kolipakakondal commented 9 months ago

Hi @alirana01 Can you please check this, I have opened flash_mmap.c file from the spi_flash component and the below errors reported on the project and problems view.

Screenshot 2023-12-26 at 1 39 14 PM
kolipakakondal commented 9 months ago

Here is one more example.

Screenshot 2023-12-26 at 1 45 31 PM
AndriiFilippov commented 8 months ago

@alirana01 hi !

Checked ALL source files under build/ide/esp_idf_components - do not see any errors

But if you leave source file opened in editor -> close Eclipse -> open Eclipse -> the errors appear in the opened source file. If you build project -> it does not fix this issue.

image

kolipakakondal commented 8 months ago

@alirana01 hi !

LGTM 👍

Hi @AndriiFilippov For the reference, please make sure the steps you have taken to verify the PR and mention what are the dependent components you have verified (we could do this for every PR).

kolipakakondal commented 8 months ago

Thanks @alirana01 for quickly implementing this!

AndriiFilippov commented 8 months ago

@alirana01 hi !

when the option is disabled - it seams to be working as enabled caz I still can't see errors image

AndriiFilippov commented 8 months ago

@alirana01 hi !

Still see some warning using this scenario:

create project -> disable "Hide errors on derived ESP-IDF component files" in "Window -> Preferences" -> build project -> open build -> ide > spi_flash -> flash_mmap.c - see errors -> leave source file opened in editor -> close eclipse -> open eclipse -> enable "Hide errors on derived ESP-IDF component files" in "Window -> Preferences" -> errors disappear only warnings still left image

warnings disappear only after project refresh.