redhat-developer / intellij-quarkus

IntelliJ Quarkus Tools
Eclipse Public License 2.0
119 stars 51 forks source link

New Feature: outline extension `BuildItem`s #1094

Open gastaldi opened 1 year ago

gastaldi commented 1 year ago

When writing a Quarkus extension, it would be nice if the developer had a list of the existing BuildItems they can use.

For example, if I want to deploy a ServletContainerInitializer, I'd use a ServletContainerInitializerBuildItem. Finding the exact build item is a hard task and it would be nice to have a search mechanism to find this information

We have a page generated at https://quarkus.io/guides/all-builditems however it's a bit annoying to find what you need there. It would be nice if we had a list of potential builditems in an IDE tool window (bonus points if including those that are not available in the project)

angelozerr commented 1 year ago

I think we can use LSP workpsace symbols (we need to implement the LSP support workspace symbol for IJ)

For instance our MicroProfile LS support LSP workspace symbols to retrieve Rest services. vscode use this workspace symbols like this https://github.com/redhat-developer/vscode-microprofile/blob/master/docs/JavaFeatures.md#workspace-symbols-support.

We plan to support workspace symbols in IJ https://github.com/redhat-developer/lsp4ij/issues/22

My idea is to add a new Tab like Workspace Symbols in the popup window used to retrieve a class

image

Is it make senses?

gastaldi commented 1 year ago

Ah, that makes sense, yes.

Another feature is that the @BuildSteps in an extension processor are considered unused methods in IJ, which is not true, but I am not sure if this should be in a separate issue

angelozerr commented 1 year ago

Ah, that makes sense, yes.

Great!

Another feature is that the @BuildSteps in an extension processor are considered unused methods in IJ, which is not true, but I am not sure if this should be in a separate issue

Yes please create an issue for that. @fbricon did that for rest services.