spring-projects / sts4

The next generation of tooling for Spring Boot, including support for Cloud Foundry manifest files, Concourse CI pipeline definitions, BOSH deployment manifests, and more... - Available for Eclipse, Visual Studio Code, and Theia
https://spring.io/tools
Eclipse Public License 1.0
882 stars 206 forks source link

Semantic Token Lost with Lombok Annotations in Enum Due to Conflict with Eclipse Java Plugin in VS Code #1383

Closed Skyxim closed 1 month ago

Skyxim commented 1 month ago

Describe the bug When using Lombok annotations with an enum in VS Code, the semantic token is lost, leading to missing syntax highlighting and unresolved identifiers. This issue occurs when the Spring Boot Tools plugin is enabled. The issue does not occur when the plugin is disabled or when Lombok annotations are not used with the enum.

To Reproduce Steps to reproduce the behavior:

  1. Install VS Code and enable both the Spring Boot Tools plugin and the Lombok plugin.

  2. Create a new Java project and add an enum class with a Lombok annotation.

import lombok.Getter;

public enum Status {

    ACTIVE,

    INACTIVE;

    @Getter

    private final String description = "status";

}
  1. Open this project in VS Code. You will notice the semantic token (e.g., syntax highlighting, identifier resolution) is not functioning properly.

  2. Disable the Spring Boot Tools plugin and restart VS Code. Semantic tokens should now work as expected.

  3. If you remove the Lombok annotations from the enum, the issue does not occur, even with the Spring Boot Tools plugin enabled.

martinlippert commented 1 month ago

As a quick workaround, you can disable the syntax highlighting for embedded languages in the preferences Spring Boot Tools -> Features -> Embedded Syntax Highlighting. That should bring back the old behavior and you can continue to use all the other Spring Boot Tools features - instead of disabling the extension altogether.

Skyxim commented 1 month ago

As a quick workaround, you can disable the syntax highlighting for embedded languages in the preferences Spring Boot Tools -> Features -> Embedded Syntax Highlighting. That should bring back the old behavior and you can continue to use all the other Spring Boot Tools features - instead of disabling the extension altogether.

Thank you for the help, this method has indeed temporarily resolved the issue.

BoykoAlex commented 1 month ago

Fixed via b6cb5d0690cc38e9d930c54a113e4b02f304b864