pmd/pmd#2118 introduces a mechanism to add extension points for the designer.
Goal
Let language implementations provide language-specific insights to the designer without needing the designer to know about them
Mechanism
Adding an extension point
- Publish an interface in pmd-core. The interface should be the smallest possible, different interfaces should be used for orthogonal services
- Add it to
DesignerBindings, which is provided by a LanguageVersionHandler
- Implement the feature in the designer by using instances of the interface provided by the language modules
Implementing an extension point
- Implement the interface somewhere
- Return an instance of it in the correct method of the DesignerBindings for the language
Candidates for being extension points
Non-candidates
- The scopes view. Doing that would require an API in pmd-core to represent tree items somehow, and it feels like too much work for something that ultimately should be internal to the language implementation. I think it should be removed entirely at some point.
pmd/pmd#2118 introduces a mechanism to add extension points for the designer.
Goal
Let language implementations provide language-specific insights to the designer without needing the designer to know about them
Mechanism
Adding an extension point
DesignerBindings, which is provided by a LanguageVersionHandlerImplementing an extension point
Candidates for being extension points
getImage, this will be deprecated in 7.0)Non-candidates