Skip to content

Improve the handling of Gradle DSL Elements #3089

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

marchermans
Copy link

@marchermans marchermans commented Jun 7, 2025

TLDR:

  • Handle gradle extensions natively, both in navigational actions, as well as during typing previews
  • Introduce support for navigating to all kinds of elements of the gradle project classpath (including plugins and gradle itself, as well as provide native support for sources if those exist)

Changes:

  • Support for properly handling a configure block in typing suggestions
  • Properly order the extensions and the configure block
  • Abstract away how individual extension providers provider their Psi meta information of what extensions are available
  • Provide an extension contributor which can provide Psi meta information of extensions which are not on the root, but at least one level in
  • Provide support for browsing and navigating in NamedDomainObjectCollection, however there are some restrictions when it comes to property mode vs configuration mode, see the comment in GradleNamedDomainCollectionContributor
  • Rework the project extension provider to use the new abstract extension system
  • Expose the required information from the Gradle plugin.

TODO:

  • Potentially work on tests, I tried writing several but the current testing setup does not suit it very much, and this area of the code seems poorly to not covered.
  • Further research UX improvements that can be made to provide a better experience.

@BartvHelvert BartvHelvert requested a review from nskvortsov June 9, 2025 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant