redhat-developer / quarkus-ls

Language server for Quarkus tooling
Eclipse Public License 2.0
44 stars 15 forks source link

Qute support for multi module project #940

Closed angelozerr closed 9 months ago

angelozerr commented 9 months ago

Qute support for multi module project

Fixes #930

angelozerr commented 9 months ago

This PR requires vscode-quarkus https://github.com/redhat-developer/vscode-quarkus/pull/627 PR if you wish to test it in vscode-quarkus

angelozerr commented 9 months ago

To test this PR, open https://github.com/gbourant/multi-module-template-test. The use case is that index.html from project-b include the template root.html from the project-a (where project-b have a dependency to project-a).

With this PR:

image

Here a demo:

QuteMultiProjectInclude

Here the limitation of the current worl:

@fbricon could we see those limitations in separate PR because it requires to improve the data model change event to be have more information like the new project dependencies, if teh changes comes from a java sources and dependencies, etc

angelozerr commented 9 months ago

I need to clean my code and write tests but @fbricon you can play with the PR (please see the limitations that I have listed)

fbricon commented 9 months ago

seems to work for for includes, but not for user tags. If you create a https://github.com/gbourant/multi-module-template-test/tree/master/project-a/src/main/resources/templates /tags/link.html, then you have no completion, nor navigation for {#link} in https://github.com/gbourant/multi-module-template-test/blob/master/project-b/src/main/resources/templates/index.html

fbricon commented 9 months ago

actually if you put any user tags in project a, then all user tags in project b disappear from rendering. @mkouba is that intended? I then don't understand how Renarde works, since it also contributes user tags

angelozerr commented 9 months ago

actually if you put any user tags in project a, then all user tags in project b disappear from rendering. @mkouba is that intended? I then don't understand how Renarde works, since it also contributes user tags

@gbourant we are using your sample (thanks for that), have you tried this usecase?

gbourant commented 9 months ago

actually if you put any user tags in project a, then all user tags in project b disappear from rendering. @mkouba is that intended? I then don't understand how Renarde works, since it also contributes user tags

@gbourant we are using your sample (thanks for that), have you tried this usecase?

I can confirm that this happened to me too.

That's why i moved the tags to project-b when i reported the Properties should be available recursively #939

angelozerr commented 9 months ago

The PR contains now tests and the code should be cleaned, @fbricon please review it.

fbricon commented 9 months ago

thanks @angelozerr