Description
Bug description
I have the following list of extensions to be loaded for a spring-boot project that is using Lombok, so needs pre-processing before Java compilation.
vscode:
extensions:
- gabrielbb.vscode-lombok
- vscjava.vscode-java-pack
- vscjava.vscode-java-debug
- vscjava.vscode-java-dependency
- vscjava.vscode-java-test
- vscjava.vscode-maven
- pivotal.vscode-boot-dev-pack
- rangav.vscode-thunder-client
- ms-azuretools.vscode-docker
The experience seems quite random, depending on whether the Lombok extension was loaded before / after the vscode-java-pack extension, it sometimes prompts the user twice with the following popups:
- Java Extension Contributions changed, reloading Gitpod Code is required for the changes to take effect. Source: Language Support for Java(TM) by Red Hat (Extension) - User needs to click "Reload"
- Java Language Server configuration changed, please restart Gitpod Code. - User needs to click "Restart Now
However, sometimes these popups do not appear, but the loaded java projects have many errors due to the missing Lombok pre-processing step. Since the popup was not shown (same if the users misses them), the only way to resolve is by refreshing the entire page.
It looks to me that the problem itself may not be with this particular extension (that hooks up to other extensions' events, config etc), but how Gitpod loads and initializes the VSCode extensions in general (I found similar random timing / order / side-effect issues with other extensions too).
If that is the case, I believe there could be further improvements made in order to provide a stable, dependable experience, like allowing users to specify:
- ordering for the listed extensions (if the YAML sequence order is not preserved)
- a certain delay or dependencies on other extension(s) - so that extensions can be loaded in parallel by default, but those having dependencies must be loaded strictly after the deps are fully loaded
- actions to be performed between extensions [like restarting a component OR run a shell cmd]
Please let me know what you think is the best solution for these problems.
Steps to reproduce
described in description
Workspace affected
No response
Expected behavior
No response
Example repository
No response
Anything else?
No response